Class CustomResourceProps.Builder
- All Implemented Interfaces:
software.amazon.jsii.Builder<CustomResourceProps>
- Enclosing interface:
CustomResourceProps
CustomResourceProps
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionbuild()
Builds the configured instance.pascalCaseProperties
(Boolean pascalCaseProperties) Sets the value ofCustomResourceProps.getPascalCaseProperties()
properties
(Map<String, ? extends Object> properties) Sets the value ofCustomResourceProps.getProperties()
removalPolicy
(RemovalPolicy removalPolicy) Sets the value ofCustomResourceProps.getRemovalPolicy()
resourceType
(String resourceType) Sets the value ofCustomResourceProps.getResourceType()
serviceToken
(String serviceToken) Sets the value ofCustomResourceProps.getServiceToken()
-
Constructor Details
-
Builder
public Builder()
-
-
Method Details
-
serviceToken
Sets the value ofCustomResourceProps.getServiceToken()
- Parameters:
serviceToken
- The ARN of the provider which implements this custom resource type. This parameter is required. You can implement a provider by listening to raw AWS CloudFormation events and specify the ARN of an SNS topic (topic.topicArn
) or the ARN of an AWS Lambda function (lambda.functionArn
) or use the CDK's custom resource provider framework which makes it easier to implement robust providers.Provider framework:
// use the provider framework from aws-cdk/custom-resources: Provider provider = Provider.Builder.create(this, "ResourceProvider") .onEventHandler(onEventHandler) .isCompleteHandler(isCompleteHandler) .build(); CustomResource.Builder.create(this, "MyResource") .serviceToken(provider.getServiceToken()) .build();
AWS Lambda function:
// invoke an AWS Lambda function when a lifecycle event occurs: // invoke an AWS Lambda function when a lifecycle event occurs: CustomResource.Builder.create(this, "MyResource") .serviceToken(myFunction.getFunctionArn()) .build();
SNS topic:
// publish lifecycle events to an SNS topic: // publish lifecycle events to an SNS topic: CustomResource.Builder.create(this, "MyResource") .serviceToken(myTopic.getTopicArn()) .build();
- Returns:
this
-
pascalCaseProperties
@Stability(Stable) public CustomResourceProps.Builder pascalCaseProperties(Boolean pascalCaseProperties) Sets the value ofCustomResourceProps.getPascalCaseProperties()
- Parameters:
pascalCaseProperties
- Convert all property keys to pascal case.- Returns:
this
-
properties
@Stability(Stable) public CustomResourceProps.Builder properties(Map<String, ? extends Object> properties) Sets the value ofCustomResourceProps.getProperties()
- Parameters:
properties
- Properties to pass to the Lambda.- Returns:
this
-
removalPolicy
Sets the value ofCustomResourceProps.getRemovalPolicy()
- Parameters:
removalPolicy
- The policy to apply when this resource is removed from the application.- Returns:
this
-
resourceType
Sets the value ofCustomResourceProps.getResourceType()
- Parameters:
resourceType
- For custom resources, you can specify AWS::CloudFormation::CustomResource (the default) as the resource type, or you can specify your own resource type name. For example, you can use "Custom::MyCustomResourceTypeName".Custom resource type names must begin with "Custom::" and can include alphanumeric characters and the following characters: _@-. You can specify a custom resource type name up to a maximum length of 60 characters. You cannot change the type during an update.
Using your own resource type names helps you quickly differentiate the types of custom resources in your stack. For example, if you had two custom resources that conduct two different ping tests, you could name their type as Custom::PingTester to make them easily identifiable as ping testers (instead of using AWS::CloudFormation::CustomResource).
- Returns:
this
-
build
Builds the configured instance.- Specified by:
build
in interfacesoftware.amazon.jsii.Builder<CustomResourceProps>
- Returns:
- a new instance of
CustomResourceProps
- Throws:
NullPointerException
- if any required attribute was not provided
-