Class CustomResourceProps.Jsii$Proxy

java.lang.Object
software.amazon.jsii.JsiiObject
software.amazon.awscdk.CustomResourceProps.Jsii$Proxy
All Implemented Interfaces:
CustomResourceProps, software.amazon.jsii.JsiiSerializable
Enclosing interface:
CustomResourceProps

@Stability(Stable) @Internal public static final class CustomResourceProps.Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CustomResourceProps
An implementation for CustomResourceProps
  • Constructor Details

    • Jsii$Proxy

      protected Jsii$Proxy(software.amazon.jsii.JsiiObjectRef objRef)
      Constructor that initializes the object based on values retrieved from the JsiiObject.
      Parameters:
      objRef - Reference to the JSII managed object.
    • Jsii$Proxy

      protected Jsii$Proxy(CustomResourceProps.Builder builder)
      Constructor that initializes the object based on literal property values passed by the CustomResourceProps.Builder.
  • Method Details

    • getServiceToken

      public final String getServiceToken()
      Description copied from interface: CustomResourceProps
      The ARN of the provider which implements this custom resource type.

      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 (not recommended to use AWS Lambda Functions directly, see the module README):

       // 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 (not recommended to use AWS Lambda Functions directly, see the module README):

       // publish lifecycle events to an SNS topic:
       // publish lifecycle events to an SNS topic:
       CustomResource.Builder.create(this, "MyResource")
               .serviceToken(myTopic.getTopicArn())
               .build();
       
      Specified by:
      getServiceToken in interface CustomResourceProps
    • getPascalCaseProperties

      public final Boolean getPascalCaseProperties()
      Description copied from interface: CustomResourceProps
      Convert all property keys to pascal case.

      Default: false

      Specified by:
      getPascalCaseProperties in interface CustomResourceProps
    • getProperties

      public final Map<String,Object> getProperties()
      Description copied from interface: CustomResourceProps
      Properties to pass to the Lambda.

      Default: - No properties.

      Specified by:
      getProperties in interface CustomResourceProps
    • getRemovalPolicy

      public final RemovalPolicy getRemovalPolicy()
      Description copied from interface: CustomResourceProps
      The policy to apply when this resource is removed from the application.

      Default: cdk.RemovalPolicy.Destroy

      Specified by:
      getRemovalPolicy in interface CustomResourceProps
    • getResourceType

      public final String getResourceType()
      Description copied from interface: CustomResourceProps
      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).

      Default: - AWS::CloudFormation::CustomResource

      Specified by:
      getResourceType in interface CustomResourceProps
      See Also:
    • $jsii$toJson

      @Internal public com.fasterxml.jackson.databind.JsonNode $jsii$toJson()
      Specified by:
      $jsii$toJson in interface software.amazon.jsii.JsiiSerializable
    • equals

      public final boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object