java.lang.Object
software.amazon.jsii.JsiiObject
All Implemented Interfaces:
IConstruct, IDependable, IInspectable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct

@Generated(value="jsii-pacmak/1.84.0 (build 5404dcf)", date="2023-06-19T16:30:00.599Z") @Stability(Stable) public class CfnLayer extends CfnResource implements IInspectable
A CloudFormation AWS::OpsWorks::Layer.

Creates a layer. For more information, see How to Create a Layer .

You should use CreateLayer for noncustom layer types such as PHP App Server only if the stack does not have an existing layer of that type. A stack can have at most one instance of each noncustom layer; if you attempt to create a second instance, CreateLayer fails. A stack can have an arbitrary number of custom layers, so you can call CreateLayer as many times as you like for that layer type.

Required Permissions : To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions .

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.opsworks.*;
 Object customJson;
 CfnLayer cfnLayer = CfnLayer.Builder.create(this, "MyCfnLayer")
         .autoAssignElasticIps(false)
         .autoAssignPublicIps(false)
         .enableAutoHealing(false)
         .name("name")
         .shortname("shortname")
         .stackId("stackId")
         .type("type")
         // the properties below are optional
         .attributes(Map.of(
                 "attributesKey", "attributes"))
         .customInstanceProfileArn("customInstanceProfileArn")
         .customJson(customJson)
         .customRecipes(RecipesProperty.builder()
                 .configure(List.of("configure"))
                 .deploy(List.of("deploy"))
                 .setup(List.of("setup"))
                 .shutdown(List.of("shutdown"))
                 .undeploy(List.of("undeploy"))
                 .build())
         .customSecurityGroupIds(List.of("customSecurityGroupIds"))
         .installUpdatesOnBoot(false)
         .lifecycleEventConfiguration(LifecycleEventConfigurationProperty.builder()
                 .shutdownEventConfiguration(ShutdownEventConfigurationProperty.builder()
                         .delayUntilElbConnectionsDrained(false)
                         .executionTimeout(123)
                         .build())
                 .build())
         .loadBasedAutoScaling(LoadBasedAutoScalingProperty.builder()
                 .downScaling(AutoScalingThresholdsProperty.builder()
                         .cpuThreshold(123)
                         .ignoreMetricsTime(123)
                         .instanceCount(123)
                         .loadThreshold(123)
                         .memoryThreshold(123)
                         .thresholdsWaitTime(123)
                         .build())
                 .enable(false)
                 .upScaling(AutoScalingThresholdsProperty.builder()
                         .cpuThreshold(123)
                         .ignoreMetricsTime(123)
                         .instanceCount(123)
                         .loadThreshold(123)
                         .memoryThreshold(123)
                         .thresholdsWaitTime(123)
                         .build())
                 .build())
         .packages(List.of("packages"))
         .tags(List.of(CfnTag.builder()
                 .key("key")
                 .value("value")
                 .build()))
         .useEbsOptimizedInstances(false)
         .volumeConfigurations(List.of(VolumeConfigurationProperty.builder()
                 .encrypted(false)
                 .iops(123)
                 .mountPoint("mountPoint")
                 .numberOfDisks(123)
                 .raidLevel(123)
                 .size(123)
                 .volumeType("volumeType")
                 .build()))
         .build();
 
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnLayer

      protected CfnLayer(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnLayer

      protected CfnLayer(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnLayer

      @Stability(Stable) public CfnLayer(@NotNull Construct scope, @NotNull String id, @NotNull CfnLayerProps props)
      Create a new AWS::OpsWorks::Layer.

      Parameters:
      scope -
      • scope in which this resource is defined.
      This parameter is required.
      id -
      • scoped id of the resource.
      This parameter is required.
      props -
      • resource properties.
      This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector -
      • tree inspector to collect and process attributes.
      This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      Specifies one or more sets of tags (key–value pairs) to associate with this AWS OpsWorks layer.

      Use tags to manage your resources.

    • getAutoAssignElasticIps

      @Stability(Stable) @NotNull public Object getAutoAssignElasticIps()
      Whether to automatically assign an Elastic IP address to the layer's instances. For more information, see How to Edit a Layer .
    • setAutoAssignElasticIps

      @Stability(Stable) public void setAutoAssignElasticIps(@NotNull Boolean value)
      Whether to automatically assign an Elastic IP address to the layer's instances. For more information, see How to Edit a Layer .
    • setAutoAssignElasticIps

      @Stability(Stable) public void setAutoAssignElasticIps(@NotNull IResolvable value)
      Whether to automatically assign an Elastic IP address to the layer's instances. For more information, see How to Edit a Layer .
    • getAutoAssignPublicIps

      @Stability(Stable) @NotNull public Object getAutoAssignPublicIps()
      For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances.

      For more information, see How to Edit a Layer .

    • setAutoAssignPublicIps

      @Stability(Stable) public void setAutoAssignPublicIps(@NotNull Boolean value)
      For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances.

      For more information, see How to Edit a Layer .

    • setAutoAssignPublicIps

      @Stability(Stable) public void setAutoAssignPublicIps(@NotNull IResolvable value)
      For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances.

      For more information, see How to Edit a Layer .

    • getCustomJson

      @Stability(Stable) @NotNull public Object getCustomJson()
      A JSON-formatted string containing custom stack configuration and deployment attributes to be installed on the layer's instances.

      For more information, see Using Custom JSON . This feature is supported as of version 1.7.42 of the AWS CLI .

    • setCustomJson

      @Stability(Stable) public void setCustomJson(@NotNull Object value)
      A JSON-formatted string containing custom stack configuration and deployment attributes to be installed on the layer's instances.

      For more information, see Using Custom JSON . This feature is supported as of version 1.7.42 of the AWS CLI .

    • getEnableAutoHealing

      @Stability(Stable) @NotNull public Object getEnableAutoHealing()
      Whether to disable auto healing for the layer.
    • setEnableAutoHealing

      @Stability(Stable) public void setEnableAutoHealing(@NotNull Boolean value)
      Whether to disable auto healing for the layer.
    • setEnableAutoHealing

      @Stability(Stable) public void setEnableAutoHealing(@NotNull IResolvable value)
      Whether to disable auto healing for the layer.
    • getName

      @Stability(Stable) @NotNull public String getName()
      The layer name, which is used by the console.

      Layer names can be a maximum of 32 characters.

    • setName

      @Stability(Stable) public void setName(@NotNull String value)
      The layer name, which is used by the console.

      Layer names can be a maximum of 32 characters.

    • getShortname

      @Stability(Stable) @NotNull public String getShortname()
      For custom layers only, use this parameter to specify the layer's short name, which is used internally by AWS OpsWorks Stacks and by Chef recipes.

      The short name is also used as the name for the directory where your app files are installed. It can have a maximum of 32 characters, which are limited to the alphanumeric characters, '-', '_', and '.'.

      Built-in layer short names are defined by AWS OpsWorks Stacks. For more information, see the Layer Reference .

    • setShortname

      @Stability(Stable) public void setShortname(@NotNull String value)
      For custom layers only, use this parameter to specify the layer's short name, which is used internally by AWS OpsWorks Stacks and by Chef recipes.

      The short name is also used as the name for the directory where your app files are installed. It can have a maximum of 32 characters, which are limited to the alphanumeric characters, '-', '_', and '.'.

      Built-in layer short names are defined by AWS OpsWorks Stacks. For more information, see the Layer Reference .

    • getStackId

      @Stability(Stable) @NotNull public String getStackId()
      The layer stack ID.
    • setStackId

      @Stability(Stable) public void setStackId(@NotNull String value)
      The layer stack ID.
    • getType

      @Stability(Stable) @NotNull public String getType()
      The layer type.

      A stack cannot have more than one built-in layer of the same type. It can have any number of custom layers. Built-in layers are not available in Chef 12 stacks.

    • setType

      @Stability(Stable) public void setType(@NotNull String value)
      The layer type.

      A stack cannot have more than one built-in layer of the same type. It can have any number of custom layers. Built-in layers are not available in Chef 12 stacks.

    • getAttributes

      @Stability(Stable) @Nullable public Object getAttributes()
      One or more user-defined key-value pairs to be added to the stack attributes.

      To create a cluster layer, set the EcsClusterArn attribute to the cluster's ARN.

    • setAttributes

      @Stability(Stable) public void setAttributes(@Nullable IResolvable value)
      One or more user-defined key-value pairs to be added to the stack attributes.

      To create a cluster layer, set the EcsClusterArn attribute to the cluster's ARN.

    • setAttributes

      @Stability(Stable) public void setAttributes(@Nullable Map<String,String> value)
      One or more user-defined key-value pairs to be added to the stack attributes.

      To create a cluster layer, set the EcsClusterArn attribute to the cluster's ARN.

    • getCustomInstanceProfileArn

      @Stability(Stable) @Nullable public String getCustomInstanceProfileArn()
      The ARN of an IAM profile to be used for the layer's EC2 instances.

      For more information about IAM ARNs, see Using Identifiers .

    • setCustomInstanceProfileArn

      @Stability(Stable) public void setCustomInstanceProfileArn(@Nullable String value)
      The ARN of an IAM profile to be used for the layer's EC2 instances.

      For more information about IAM ARNs, see Using Identifiers .

    • getCustomRecipes

      @Stability(Stable) @Nullable public Object getCustomRecipes()
      A LayerCustomRecipes object that specifies the layer custom recipes.
    • setCustomRecipes

      @Stability(Stable) public void setCustomRecipes(@Nullable IResolvable value)
      A LayerCustomRecipes object that specifies the layer custom recipes.
    • setCustomRecipes

      @Stability(Stable) public void setCustomRecipes(@Nullable CfnLayer.RecipesProperty value)
      A LayerCustomRecipes object that specifies the layer custom recipes.
    • getCustomSecurityGroupIds

      @Stability(Stable) @Nullable public List<String> getCustomSecurityGroupIds()
      An array containing the layer custom security group IDs.
    • setCustomSecurityGroupIds

      @Stability(Stable) public void setCustomSecurityGroupIds(@Nullable List<String> value)
      An array containing the layer custom security group IDs.
    • getInstallUpdatesOnBoot

      @Stability(Stable) @Nullable public Object getInstallUpdatesOnBoot()
      Whether to install operating system and package updates when the instance boots.

      The default value is true . To control when updates are installed, set this value to false . You must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or by manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

      To ensure that your instances have the latest security updates, we strongly recommend using the default value of true .

    • setInstallUpdatesOnBoot

      @Stability(Stable) public void setInstallUpdatesOnBoot(@Nullable Boolean value)
      Whether to install operating system and package updates when the instance boots.

      The default value is true . To control when updates are installed, set this value to false . You must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or by manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

      To ensure that your instances have the latest security updates, we strongly recommend using the default value of true .

    • setInstallUpdatesOnBoot

      @Stability(Stable) public void setInstallUpdatesOnBoot(@Nullable IResolvable value)
      Whether to install operating system and package updates when the instance boots.

      The default value is true . To control when updates are installed, set this value to false . You must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or by manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

      To ensure that your instances have the latest security updates, we strongly recommend using the default value of true .

    • getLifecycleEventConfiguration

      @Stability(Stable) @Nullable public Object getLifecycleEventConfiguration()
      A LifeCycleEventConfiguration object that you can use to configure the Shutdown event to specify an execution timeout and enable or disable Elastic Load Balancer connection draining.
    • setLifecycleEventConfiguration

      @Stability(Stable) public void setLifecycleEventConfiguration(@Nullable IResolvable value)
      A LifeCycleEventConfiguration object that you can use to configure the Shutdown event to specify an execution timeout and enable or disable Elastic Load Balancer connection draining.
    • setLifecycleEventConfiguration

      @Stability(Stable) public void setLifecycleEventConfiguration(@Nullable CfnLayer.LifecycleEventConfigurationProperty value)
      A LifeCycleEventConfiguration object that you can use to configure the Shutdown event to specify an execution timeout and enable or disable Elastic Load Balancer connection draining.
    • getLoadBasedAutoScaling

      @Stability(Stable) @Nullable public Object getLoadBasedAutoScaling()
      The load-based scaling configuration for the AWS OpsWorks layer.
    • setLoadBasedAutoScaling

      @Stability(Stable) public void setLoadBasedAutoScaling(@Nullable IResolvable value)
      The load-based scaling configuration for the AWS OpsWorks layer.
    • setLoadBasedAutoScaling

      @Stability(Stable) public void setLoadBasedAutoScaling(@Nullable CfnLayer.LoadBasedAutoScalingProperty value)
      The load-based scaling configuration for the AWS OpsWorks layer.
    • getPackages

      @Stability(Stable) @Nullable public List<String> getPackages()
      An array of Package objects that describes the layer packages.
    • setPackages

      @Stability(Stable) public void setPackages(@Nullable List<String> value)
      An array of Package objects that describes the layer packages.
    • getUseEbsOptimizedInstances

      @Stability(Stable) @Nullable public Object getUseEbsOptimizedInstances()
      Whether to use Amazon EBS-optimized instances.
    • setUseEbsOptimizedInstances

      @Stability(Stable) public void setUseEbsOptimizedInstances(@Nullable Boolean value)
      Whether to use Amazon EBS-optimized instances.
    • setUseEbsOptimizedInstances

      @Stability(Stable) public void setUseEbsOptimizedInstances(@Nullable IResolvable value)
      Whether to use Amazon EBS-optimized instances.
    • getVolumeConfigurations

      @Stability(Stable) @Nullable public Object getVolumeConfigurations()
      A VolumeConfigurations object that describes the layer's Amazon EBS volumes.
    • setVolumeConfigurations

      @Stability(Stable) public void setVolumeConfigurations(@Nullable IResolvable value)
      A VolumeConfigurations object that describes the layer's Amazon EBS volumes.
    • setVolumeConfigurations

      @Stability(Stable) public void setVolumeConfigurations(@Nullable List<Object> value)
      A VolumeConfigurations object that describes the layer's Amazon EBS volumes.