Class: AWSCDK::EVS::CfnEnvironmentProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
evs/cfn_environment_props.rb

Overview

Properties for defining a CfnEnvironment.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connectivity_info:, license_info:, service_access_subnet_id:, site_id:, terms_accepted:, vcf_hostnames:, vcf_version:, vpc_id:, environment_name: nil, hosts: nil, initial_vlans: nil, kms_key_id: nil, service_access_security_groups: nil, tags: nil) ⇒ CfnEnvironmentProps

Returns a new instance of CfnEnvironmentProps.

Parameters:



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'evs/cfn_environment_props.rb', line 23

def initialize(connectivity_info:, license_info:, service_access_subnet_id:, site_id:, terms_accepted:, vcf_hostnames:, vcf_version:, vpc_id:, environment_name: nil, hosts: nil, initial_vlans: nil, kms_key_id: nil, service_access_security_groups: nil, tags: nil)
  @connectivity_info = connectivity_info.is_a?(Hash) ? ::AWSCDK::EVS::CfnEnvironment::ConnectivityInfoProperty.new(**connectivity_info.transform_keys(&:to_sym)) : connectivity_info
  Jsii::Type.check_type(@connectivity_info, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19ldnMuQ2ZuRW52aXJvbm1lbnQuQ29ubmVjdGl2aXR5SW5mb1Byb3BlcnR5In1dfX0=")), "connectivityInfo")
  @license_info = license_info.is_a?(Hash) ? ::AWSCDK::EVS::CfnEnvironment::LicenseInfoProperty.new(**license_info.transform_keys(&:to_sym)) : license_info
  Jsii::Type.check_type(@license_info, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19ldnMuQ2ZuRW52aXJvbm1lbnQuTGljZW5zZUluZm9Qcm9wZXJ0eSJ9XX19")), "licenseInfo")
  @service_access_subnet_id = service_access_subnet_id
  Jsii::Type.check_type(@service_access_subnet_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serviceAccessSubnetId")
  @site_id = site_id
  Jsii::Type.check_type(@site_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "siteId")
  @terms_accepted = terms_accepted
  Jsii::Type.check_type(@terms_accepted, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "termsAccepted")
  @vcf_hostnames = vcf_hostnames.is_a?(Hash) ? ::AWSCDK::EVS::CfnEnvironment::VcfHostnamesProperty.new(**vcf_hostnames.transform_keys(&:to_sym)) : vcf_hostnames
  Jsii::Type.check_type(@vcf_hostnames, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19ldnMuQ2ZuRW52aXJvbm1lbnQuVmNmSG9zdG5hbWVzUHJvcGVydHkifV19fQ==")), "vcfHostnames")
  @vcf_version = vcf_version
  Jsii::Type.check_type(@vcf_version, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "vcfVersion")
  @vpc_id = vpc_id
  Jsii::Type.check_type(@vpc_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "vpcId")
  @environment_name = environment_name
  Jsii::Type.check_type(@environment_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "environmentName") unless @environment_name.nil?
  @hosts = hosts
  Jsii::Type.check_type(@hosts, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZXZzLkNmbkVudmlyb25tZW50Lkhvc3RJbmZvRm9yQ3JlYXRlUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "hosts") unless @hosts.nil?
  @initial_vlans = initial_vlans.is_a?(Hash) ? ::AWSCDK::EVS::CfnEnvironment::InitialVlansProperty.new(**initial_vlans.transform_keys(&:to_sym)) : initial_vlans
  Jsii::Type.check_type(@initial_vlans, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19ldnMuQ2ZuRW52aXJvbm1lbnQuSW5pdGlhbFZsYW5zUHJvcGVydHkifV19fQ==")), "initialVlans") unless @initial_vlans.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?
  @service_access_security_groups = service_access_security_groups.is_a?(Hash) ? ::AWSCDK::EVS::CfnEnvironment::ServiceAccessSecurityGroupsProperty.new(**service_access_security_groups.transform_keys(&:to_sym)) : service_access_security_groups
  Jsii::Type.check_type(@service_access_security_groups, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19ldnMuQ2ZuRW52aXJvbm1lbnQuU2VydmljZUFjY2Vzc1NlY3VyaXR5R3JvdXBzUHJvcGVydHkifV19fQ==")), "serviceAccessSecurityGroups") unless @service_access_security_groups.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
end

Instance Attribute Details

#connectivity_infoAWSCDK::IResolvable, AWSCDK::EVS::CfnEnvironment::ConnectivityInfoProperty (readonly)

The connectivity configuration for the environment.

Amazon EVS requires that you specify two route server peer IDs. During environment creation, the route server endpoints peer with the NSX uplink VLAN for connectivity to the NSX overlay network.



60
61
62
# File 'evs/cfn_environment_props.rb', line 60

def connectivity_info
  @connectivity_info
end

#environment_nameString? (readonly)

The name of the environment.



110
111
112
# File 'evs/cfn_environment_props.rb', line 110

def environment_name
  @environment_name
end

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

Required for environment resource creation.



115
116
117
# File 'evs/cfn_environment_props.rb', line 115

def hosts
  @hosts
end

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

Amazon EVS is in public preview release and is subject to change.

The initial VLAN subnets for the environment. Amazon EVS VLAN subnets have a minimum CIDR block size of /28 and a maximum size of /24. Amazon EVS VLAN subnet CIDR blocks must not overlap with other subnets in the VPC.

Required for environment resource creation.



124
125
126
# File 'evs/cfn_environment_props.rb', line 124

def initial_vlans
  @initial_vlans
end

#kms_key_idString? (readonly)

The AWS KMS key ID that AWS Secrets Manager uses to encrypt secrets that are associated with the environment.

These secrets contain the VCF credentials that are needed to install vCenter Server, NSX, and SDDC Manager.

By default, Amazon EVS use the AWS Secrets Manager managed key aws/secretsmanager . You can also specify a customer managed key.



133
134
135
# File 'evs/cfn_environment_props.rb', line 133

def kms_key_id
  @kms_key_id
end

#license_infoAWSCDK::IResolvable, AWSCDK::EVS::CfnEnvironment::LicenseInfoProperty (readonly)

The license information that Amazon EVS requires to create an environment.

Amazon EVS requires two license keys: a VCF solution key and a vSAN license key. The VCF solution key must cover a minimum of 256 cores. The vSAN license key must provide at least 110 TiB of vSAN capacity.



67
68
69
# File 'evs/cfn_environment_props.rb', line 67

def license_info
  @license_info
end

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

The security groups that allow traffic between the Amazon EVS control plane and your VPC for service access.

If a security group is not specified, Amazon EVS uses the default security group in your account for service access.



140
141
142
# File 'evs/cfn_environment_props.rb', line 140

def service_access_security_groups
  @service_access_security_groups
end

#service_access_subnet_idString (readonly)

The subnet that is used to establish connectivity between the Amazon EVS control plane and VPC.

Amazon EVS uses this subnet to perform validations and create the environment.



74
75
76
# File 'evs/cfn_environment_props.rb', line 74

def service_access_subnet_id
  @service_access_subnet_id
end

#site_idString (readonly)

The Broadcom Site ID that is associated with your Amazon EVS environment.

Amazon EVS uses the Broadcom Site ID that you provide to meet Broadcom VCF license usage reporting requirements for Amazon EVS.



81
82
83
# File 'evs/cfn_environment_props.rb', line 81

def site_id
  @site_id
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

Metadata that assists with categorization and organization.

Each tag consists of a key and an optional value. You define both. Tags don't propagate to any other cluster or AWS resources.



147
148
149
# File 'evs/cfn_environment_props.rb', line 147

def tags
  @tags
end

#terms_acceptedBoolean, AWSCDK::IResolvable (readonly)

Customer confirmation that the customer has purchased and will continue to maintain the required number of VCF software licenses to cover all physical processor cores in the Amazon EVS environment.

Information about your VCF software in Amazon EVS will be shared with Broadcom to verify license compliance. Amazon EVS does not validate license keys. To validate license keys, visit the Broadcom support portal.



88
89
90
# File 'evs/cfn_environment_props.rb', line 88

def terms_accepted
  @terms_accepted
end

#vcf_hostnamesAWSCDK::IResolvable, AWSCDK::EVS::CfnEnvironment::VcfHostnamesProperty (readonly)

The DNS hostnames to be used by the VCF management appliances in your environment.

For environment creation to be successful, each hostname entry must resolve to a domain name that you've registered in your DNS service of choice and configured in the DHCP option set of your VPC. DNS hostnames cannot be changed after environment creation has started.



95
96
97
# File 'evs/cfn_environment_props.rb', line 95

def vcf_hostnames
  @vcf_hostnames
end

#vcf_versionString (readonly)

The VCF version of the environment.



100
101
102
# File 'evs/cfn_environment_props.rb', line 100

def vcf_version
  @vcf_version
end

#vpc_idString (readonly)

The VPC associated with the environment.



105
106
107
# File 'evs/cfn_environment_props.rb', line 105

def vpc_id
  @vpc_id
end

Class Method Details

.jsii_propertiesObject



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'evs/cfn_environment_props.rb', line 149

def self.jsii_properties
  {
    :connectivity_info => "connectivityInfo",
    :license_info => "licenseInfo",
    :service_access_subnet_id => "serviceAccessSubnetId",
    :site_id => "siteId",
    :terms_accepted => "termsAccepted",
    :vcf_hostnames => "vcfHostnames",
    :vcf_version => "vcfVersion",
    :vpc_id => "vpcId",
    :environment_name => "environmentName",
    :hosts => "hosts",
    :initial_vlans => "initialVlans",
    :kms_key_id => "kmsKeyId",
    :service_access_security_groups => "serviceAccessSecurityGroups",
    :tags => "tags",
  }
end

Instance Method Details

#to_jsiiObject



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# File 'evs/cfn_environment_props.rb', line 168

def to_jsii
  result = {}
  result.merge!({
    "connectivityInfo" => @connectivity_info,
    "licenseInfo" => @license_info,
    "serviceAccessSubnetId" => @service_access_subnet_id,
    "siteId" => @site_id,
    "termsAccepted" => @terms_accepted,
    "vcfHostnames" => @vcf_hostnames,
    "vcfVersion" => @vcf_version,
    "vpcId" => @vpc_id,
    "environmentName" => @environment_name,
    "hosts" => @hosts,
    "initialVlans" => @initial_vlans,
    "kmsKeyId" => @kms_key_id,
    "serviceAccessSecurityGroups" => @service_access_security_groups,
    "tags" => @tags,
  })
  result.compact
end