List of usage examples for com.amazonaws.services.apigateway.model CreateResourceRequest setRestApiId
public void setRestApiId(String restApiId)
[Required] The string identifier of the associated RestApi.
From source file:squash.deployment.lambdas.ApiGatewayCustomResourceLambda.java
License:Apache License
CreateResourceResult createTopLevelResourceOnApi(String resourceName, String restApiId, AmazonApiGateway client,
LambdaLogger logger) {/*from w w w. java 2s.co m*/
logger.log("Creating top-level resource: " + resourceName);
// Short sleep - this avoids the Too Many Requests error in this
// custom resource when creating the cloudformation stack.
pause(logger);
CreateResourceRequest createResourceRequest = new CreateResourceRequest();
createResourceRequest.setRestApiId(restApiId);
if (resourceName.equals("bookings")) {
createResourceRequest.setPathPart("bookings");
} else if (resourceName.equals("bookingrules")) {
createResourceRequest.setPathPart("bookingrules");
} else if (resourceName.equals("validdates")) {
createResourceRequest.setPathPart("validdates");
} else if (resourceName.equals("reservationform")) {
createResourceRequest.setPathPart("reservationform");
} else if (resourceName.equals("cancellationform")) {
createResourceRequest.setPathPart("cancellationform");
} else {
throw new InvalidParameterException("Invalid resource name: " + resourceName);
}
// Get the id of the parent resource
GetResourcesRequest getResourcesRequest = new GetResourcesRequest();
// High enough limit for now
getResourcesRequest.setLimit(10);
getResourcesRequest.setRestApiId(restApiId);
GetResourcesResult resourcesResult = client.getResources(getResourcesRequest);
String rootResourceId = resourcesResult.getItems().stream()
.filter(resource -> resource.getPath().equals("/")).findFirst().get().getId();
logger.log("Parent(root) resource id: " + rootResourceId);
createResourceRequest.setParentId(rootResourceId);
return client.createResource(createResourceRequest);
}