Class: AWSCDK::ImageBuilder::CfnDistributionConfiguration::AmiDistributionConfigurationProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
image_builder/cfn_distribution_configuration.rb

Overview

Define and configure the output AMIs of the pipeline.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ami_tags: nil, description: nil, kms_key_id: nil, launch_permission_configuration: nil, name: nil, target_account_ids: nil) ⇒ AmiDistributionConfigurationProperty

Returns a new instance of AmiDistributionConfigurationProperty.

Parameters:

  • ami_tags (AWSCDK::IResolvable, Hash{String => String}, nil) (defaults to: nil)

    The tags to apply to AMIs distributed to this Region.

  • description (String, nil) (defaults to: nil)

    The description of the AMI distribution configuration.

  • kms_key_id (String, nil) (defaults to: nil)

    The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt the distributed image.

  • launch_permission_configuration (AWSCDK::IResolvable, AWSCDK::ImageBuilder::CfnDistributionConfiguration::LaunchPermissionConfigurationProperty, nil) (defaults to: nil)

    Launch permissions can be used to configure which AWS account s can use the AMI to launch instances.

  • name (String, nil) (defaults to: nil)

    The name of the output AMI.

  • target_account_ids (Array<String>, nil) (defaults to: nil)

    The ID of an account to which you want to distribute an image.



572
573
574
575
576
577
578
579
580
581
582
583
584
585
# File 'image_builder/cfn_distribution_configuration.rb', line 572

def initialize(ami_tags: nil, description: nil, kms_key_id: nil, launch_permission_configuration: nil, name: nil, target_account_ids: nil)
  @ami_tags = ami_tags
  Jsii::Type.check_type(@ami_tags, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsicHJpbWl0aXZlIjoic3RyaW5nIn0sImtpbmQiOiJtYXAifX1dfX0=")), "amiTags") unless @ami_tags.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @kms_key_id = kms_key_id
  Jsii::Type.check_type(@kms_key_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "kmsKeyId") unless @kms_key_id.nil?
  @launch_permission_configuration = launch_permission_configuration.is_a?(Hash) ? ::AWSCDK::ImageBuilder::CfnDistributionConfiguration::LaunchPermissionConfigurationProperty.new(**launch_permission_configuration.transform_keys(&:to_sym)) : launch_permission_configuration
  Jsii::Type.check_type(@launch_permission_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pbWFnZWJ1aWxkZXIuQ2ZuRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbi5MYXVuY2hQZXJtaXNzaW9uQ29uZmlndXJhdGlvblByb3BlcnR5In1dfX0=")), "launchPermissionConfiguration") unless @launch_permission_configuration.nil?
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name") unless @name.nil?
  @target_account_ids = 
  Jsii::Type.check_type(@target_account_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "targetAccountIds") unless @target_account_ids.nil?
end

Instance Attribute Details

#ami_tagsAWSCDK::IResolvable, ... (readonly)

The tags to apply to AMIs distributed to this Region.



591
592
593
# File 'image_builder/cfn_distribution_configuration.rb', line 591

def ami_tags
  @ami_tags
end

#descriptionString? (readonly)

The description of the AMI distribution configuration.

Minimum and maximum length are in characters.



598
599
600
# File 'image_builder/cfn_distribution_configuration.rb', line 598

def description
  @description
end

#kms_key_idString? (readonly)

The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt the distributed image.

This can be either the Key ARN or the Alias ARN. For more information, see Key identifiers (KeyId) in the AWS Key Management Service Developer Guide .



605
606
607
# File 'image_builder/cfn_distribution_configuration.rb', line 605

def kms_key_id
  @kms_key_id
end

#launch_permission_configurationAWSCDK::IResolvable, ... (readonly)

Launch permissions can be used to configure which AWS account s can use the AMI to launch instances.



610
611
612
# File 'image_builder/cfn_distribution_configuration.rb', line 610

def launch_permission_configuration
  @launch_permission_configuration
end

#nameString? (readonly)

The name of the output AMI.



615
616
617
# File 'image_builder/cfn_distribution_configuration.rb', line 615

def name
  @name
end

#target_account_idsArray<String>? (readonly)

The ID of an account to which you want to distribute an image.



620
621
622
# File 'image_builder/cfn_distribution_configuration.rb', line 620

def 
  @target_account_ids
end

Class Method Details

.jsii_propertiesObject



622
623
624
625
626
627
628
629
630
631
# File 'image_builder/cfn_distribution_configuration.rb', line 622

def self.jsii_properties
  {
    :ami_tags => "amiTags",
    :description => "description",
    :kms_key_id => "kmsKeyId",
    :launch_permission_configuration => "launchPermissionConfiguration",
    :name => "name",
    :target_account_ids => "targetAccountIds",
  }
end

Instance Method Details

#to_jsiiObject



633
634
635
636
637
638
639
640
641
642
643
644
# File 'image_builder/cfn_distribution_configuration.rb', line 633

def to_jsii
  result = {}
  result.merge!({
    "amiTags" => @ami_tags,
    "description" => @description,
    "kmsKeyId" => @kms_key_id,
    "launchPermissionConfiguration" => @launch_permission_configuration,
    "name" => @name,
    "targetAccountIds" => @target_account_ids,
  })
  result.compact
end