@Generated(value="jsii-pacmak/1.46.0 (build cd08c55)", date="2021-11-25T20:11:05.913Z") @Stability(value=Stable) public class CfnInstance extends CfnResource implements IInspectable
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.ec2.*;
CfnInstance cfnInstance = CfnInstance.Builder.create(this, "MyCfnInstance")
.additionalInfo("additionalInfo")
.affinity("affinity")
.availabilityZone("availabilityZone")
.blockDeviceMappings(List.of(BlockDeviceMappingProperty.builder()
.deviceName("deviceName")
// the properties below are optional
.ebs(EbsProperty.builder()
.deleteOnTermination(false)
.encrypted(false)
.iops(123)
.kmsKeyId("kmsKeyId")
.snapshotId("snapshotId")
.volumeSize(123)
.volumeType("volumeType")
.build())
.noDevice(NoDeviceProperty.builder().build())
.virtualName("virtualName")
.build()))
.cpuOptions(CpuOptionsProperty.builder()
.coreCount(123)
.threadsPerCore(123)
.build())
.creditSpecification(CreditSpecificationProperty.builder()
.cpuCredits("cpuCredits")
.build())
.disableApiTermination(false)
.ebsOptimized(false)
.elasticGpuSpecifications(List.of(ElasticGpuSpecificationProperty.builder()
.type("type")
.build()))
.elasticInferenceAccelerators(List.of(ElasticInferenceAcceleratorProperty.builder()
.type("type")
// the properties below are optional
.count(123)
.build()))
.enclaveOptions(EnclaveOptionsProperty.builder()
.enabled(false)
.build())
.hibernationOptions(HibernationOptionsProperty.builder()
.configured(false)
.build())
.hostId("hostId")
.hostResourceGroupArn("hostResourceGroupArn")
.iamInstanceProfile("iamInstanceProfile")
.imageId("imageId")
.instanceInitiatedShutdownBehavior("instanceInitiatedShutdownBehavior")
.instanceType("instanceType")
.ipv6AddressCount(123)
.ipv6Addresses(List.of(InstanceIpv6AddressProperty.builder()
.ipv6Address("ipv6Address")
.build()))
.kernelId("kernelId")
.keyName("keyName")
.launchTemplate(LaunchTemplateSpecificationProperty.builder()
.version("version")
// the properties below are optional
.launchTemplateId("launchTemplateId")
.launchTemplateName("launchTemplateName")
.build())
.licenseSpecifications(List.of(LicenseSpecificationProperty.builder()
.licenseConfigurationArn("licenseConfigurationArn")
.build()))
.monitoring(false)
.networkInterfaces(List.of(NetworkInterfaceProperty.builder()
.deviceIndex("deviceIndex")
// the properties below are optional
.associatePublicIpAddress(false)
.deleteOnTermination(false)
.description("description")
.groupSet(List.of("groupSet"))
.ipv6AddressCount(123)
.ipv6Addresses(List.of(InstanceIpv6AddressProperty.builder()
.ipv6Address("ipv6Address")
.build()))
.networkInterfaceId("networkInterfaceId")
.privateIpAddress("privateIpAddress")
.privateIpAddresses(List.of(PrivateIpAddressSpecificationProperty.builder()
.primary(false)
.privateIpAddress("privateIpAddress")
.build()))
.secondaryPrivateIpAddressCount(123)
.subnetId("subnetId")
.build()))
.placementGroupName("placementGroupName")
.privateIpAddress("privateIpAddress")
.ramdiskId("ramdiskId")
.securityGroupIds(List.of("securityGroupIds"))
.securityGroups(List.of("securityGroups"))
.sourceDestCheck(false)
.ssmAssociations(List.of(SsmAssociationProperty.builder()
.documentName("documentName")
// the properties below are optional
.associationParameters(List.of(AssociationParameterProperty.builder()
.key("key")
.value(List.of("value"))
.build()))
.build()))
.subnetId("subnetId")
.tags(List.of(CfnTag.builder()
.key("key")
.value("value")
.build()))
.tenancy("tenancy")
.userData("userData")
.volumes(List.of(VolumeProperty.builder()
.device("device")
.volumeId("volumeId")
.build()))
.build();
software.amazon.jsii.JsiiObject.InitializationModeIInspectable.Jsii$Default, IInspectable.Jsii$Proxy| Modifier and Type | Field and Description |
|---|---|
static String |
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
|
| Modifier | Constructor and Description |
|---|---|
|
CfnInstance(software.constructs.Construct scope,
String id)
Create a new `AWS::EC2::Instance`.
|
|
CfnInstance(software.constructs.Construct scope,
String id,
CfnInstanceProps props)
Create a new `AWS::EC2::Instance`.
|
protected |
CfnInstance(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) |
protected |
CfnInstance(software.amazon.jsii.JsiiObjectRef objRef) |
| Modifier and Type | Method and Description |
|---|---|
String |
getAdditionalInfo()
`AWS::EC2::Instance.AdditionalInfo`.
|
String |
getAffinity()
`AWS::EC2::Instance.Affinity`.
|
String |
getAttrAvailabilityZone() |
String |
getAttrPrivateDnsName() |
String |
getAttrPrivateIp() |
String |
getAttrPublicDnsName() |
String |
getAttrPublicIp() |
String |
getAvailabilityZone()
`AWS::EC2::Instance.AvailabilityZone`.
|
Object |
getBlockDeviceMappings()
`AWS::EC2::Instance.BlockDeviceMappings`.
|
protected Map<String,Object> |
getCfnProperties() |
Object |
getCpuOptions()
`AWS::EC2::Instance.CpuOptions`.
|
Object |
getCreditSpecification()
`AWS::EC2::Instance.CreditSpecification`.
|
Object |
getDisableApiTermination()
`AWS::EC2::Instance.DisableApiTermination`.
|
Object |
getEbsOptimized()
`AWS::EC2::Instance.EbsOptimized`.
|
Object |
getElasticGpuSpecifications()
`AWS::EC2::Instance.ElasticGpuSpecifications`.
|
Object |
getElasticInferenceAccelerators()
`AWS::EC2::Instance.ElasticInferenceAccelerators`.
|
Object |
getEnclaveOptions()
`AWS::EC2::Instance.EnclaveOptions`.
|
Object |
getHibernationOptions()
`AWS::EC2::Instance.HibernationOptions`.
|
String |
getHostId()
`AWS::EC2::Instance.HostId`.
|
String |
getHostResourceGroupArn()
`AWS::EC2::Instance.HostResourceGroupArn`.
|
String |
getIamInstanceProfile()
`AWS::EC2::Instance.IamInstanceProfile`.
|
String |
getImageId()
`AWS::EC2::Instance.ImageId`.
|
String |
getInstanceInitiatedShutdownBehavior()
`AWS::EC2::Instance.InstanceInitiatedShutdownBehavior`.
|
String |
getInstanceType()
`AWS::EC2::Instance.InstanceType`.
|
Number |
getIpv6AddressCount()
`AWS::EC2::Instance.Ipv6AddressCount`.
|
Object |
getIpv6Addresses()
`AWS::EC2::Instance.Ipv6Addresses`.
|
String |
getKernelId()
`AWS::EC2::Instance.KernelId`.
|
String |
getKeyName()
`AWS::EC2::Instance.KeyName`.
|
Object |
getLaunchTemplate()
`AWS::EC2::Instance.LaunchTemplate`.
|
Object |
getLicenseSpecifications()
`AWS::EC2::Instance.LicenseSpecifications`.
|
Object |
getMonitoring()
`AWS::EC2::Instance.Monitoring`.
|
Object |
getNetworkInterfaces()
`AWS::EC2::Instance.NetworkInterfaces`.
|
String |
getPlacementGroupName()
`AWS::EC2::Instance.PlacementGroupName`.
|
String |
getPrivateIpAddress()
`AWS::EC2::Instance.PrivateIpAddress`.
|
String |
getRamdiskId()
`AWS::EC2::Instance.RamdiskId`.
|
List<String> |
getSecurityGroupIds()
`AWS::EC2::Instance.SecurityGroupIds`.
|
List<String> |
getSecurityGroups()
`AWS::EC2::Instance.SecurityGroups`.
|
Object |
getSourceDestCheck()
`AWS::EC2::Instance.SourceDestCheck`.
|
Object |
getSsmAssociations()
`AWS::EC2::Instance.SsmAssociations`.
|
String |
getSubnetId()
`AWS::EC2::Instance.SubnetId`.
|
TagManager |
getTags()
`AWS::EC2::Instance.Tags`.
|
String |
getTenancy()
`AWS::EC2::Instance.Tenancy`.
|
String |
getUserData()
`AWS::EC2::Instance.UserData`.
|
Object |
getVolumes()
`AWS::EC2::Instance.Volumes`.
|
void |
inspect(TreeInspector inspector)
Examines the CloudFormation resource and discloses attributes.
|
protected Map<String,Object> |
renderProperties(Map<String,Object> props) |
void |
setAdditionalInfo(String value)
`AWS::EC2::Instance.AdditionalInfo`.
|
void |
setAffinity(String value)
`AWS::EC2::Instance.Affinity`.
|
void |
setAvailabilityZone(String value)
`AWS::EC2::Instance.AvailabilityZone`.
|
void |
setBlockDeviceMappings(IResolvable value)
`AWS::EC2::Instance.BlockDeviceMappings`.
|
void |
setBlockDeviceMappings(List<Object> value)
`AWS::EC2::Instance.BlockDeviceMappings`.
|
void |
setCpuOptions(CfnInstance.CpuOptionsProperty value)
`AWS::EC2::Instance.CpuOptions`.
|
void |
setCpuOptions(IResolvable value)
`AWS::EC2::Instance.CpuOptions`.
|
void |
setCreditSpecification(CfnInstance.CreditSpecificationProperty value)
`AWS::EC2::Instance.CreditSpecification`.
|
void |
setCreditSpecification(IResolvable value)
`AWS::EC2::Instance.CreditSpecification`.
|
void |
setDisableApiTermination(Boolean value)
`AWS::EC2::Instance.DisableApiTermination`.
|
void |
setDisableApiTermination(IResolvable value)
`AWS::EC2::Instance.DisableApiTermination`.
|
void |
setEbsOptimized(Boolean value)
`AWS::EC2::Instance.EbsOptimized`.
|
void |
setEbsOptimized(IResolvable value)
`AWS::EC2::Instance.EbsOptimized`.
|
void |
setElasticGpuSpecifications(IResolvable value)
`AWS::EC2::Instance.ElasticGpuSpecifications`.
|
void |
setElasticGpuSpecifications(List<Object> value)
`AWS::EC2::Instance.ElasticGpuSpecifications`.
|
void |
setElasticInferenceAccelerators(IResolvable value)
`AWS::EC2::Instance.ElasticInferenceAccelerators`.
|
void |
setElasticInferenceAccelerators(List<Object> value)
`AWS::EC2::Instance.ElasticInferenceAccelerators`.
|
void |
setEnclaveOptions(CfnInstance.EnclaveOptionsProperty value)
`AWS::EC2::Instance.EnclaveOptions`.
|
void |
setEnclaveOptions(IResolvable value)
`AWS::EC2::Instance.EnclaveOptions`.
|
void |
setHibernationOptions(CfnInstance.HibernationOptionsProperty value)
`AWS::EC2::Instance.HibernationOptions`.
|
void |
setHibernationOptions(IResolvable value)
`AWS::EC2::Instance.HibernationOptions`.
|
void |
setHostId(String value)
`AWS::EC2::Instance.HostId`.
|
void |
setHostResourceGroupArn(String value)
`AWS::EC2::Instance.HostResourceGroupArn`.
|
void |
setIamInstanceProfile(String value)
`AWS::EC2::Instance.IamInstanceProfile`.
|
void |
setImageId(String value)
`AWS::EC2::Instance.ImageId`.
|
void |
setInstanceInitiatedShutdownBehavior(String value)
`AWS::EC2::Instance.InstanceInitiatedShutdownBehavior`.
|
void |
setInstanceType(String value)
`AWS::EC2::Instance.InstanceType`.
|
void |
setIpv6AddressCount(Number value)
`AWS::EC2::Instance.Ipv6AddressCount`.
|
void |
setIpv6Addresses(IResolvable value)
`AWS::EC2::Instance.Ipv6Addresses`.
|
void |
setIpv6Addresses(List<Object> value)
`AWS::EC2::Instance.Ipv6Addresses`.
|
void |
setKernelId(String value)
`AWS::EC2::Instance.KernelId`.
|
void |
setKeyName(String value)
`AWS::EC2::Instance.KeyName`.
|
void |
setLaunchTemplate(CfnInstance.LaunchTemplateSpecificationProperty value)
`AWS::EC2::Instance.LaunchTemplate`.
|
void |
setLaunchTemplate(IResolvable value)
`AWS::EC2::Instance.LaunchTemplate`.
|
void |
setLicenseSpecifications(IResolvable value)
`AWS::EC2::Instance.LicenseSpecifications`.
|
void |
setLicenseSpecifications(List<Object> value)
`AWS::EC2::Instance.LicenseSpecifications`.
|
void |
setMonitoring(Boolean value)
`AWS::EC2::Instance.Monitoring`.
|
void |
setMonitoring(IResolvable value)
`AWS::EC2::Instance.Monitoring`.
|
void |
setNetworkInterfaces(IResolvable value)
`AWS::EC2::Instance.NetworkInterfaces`.
|
void |
setNetworkInterfaces(List<Object> value)
`AWS::EC2::Instance.NetworkInterfaces`.
|
void |
setPlacementGroupName(String value)
`AWS::EC2::Instance.PlacementGroupName`.
|
void |
setPrivateIpAddress(String value)
`AWS::EC2::Instance.PrivateIpAddress`.
|
void |
setRamdiskId(String value)
`AWS::EC2::Instance.RamdiskId`.
|
void |
setSecurityGroupIds(List<String> value)
`AWS::EC2::Instance.SecurityGroupIds`.
|
void |
setSecurityGroups(List<String> value)
`AWS::EC2::Instance.SecurityGroups`.
|
void |
setSourceDestCheck(Boolean value)
`AWS::EC2::Instance.SourceDestCheck`.
|
void |
setSourceDestCheck(IResolvable value)
`AWS::EC2::Instance.SourceDestCheck`.
|
void |
setSsmAssociations(IResolvable value)
`AWS::EC2::Instance.SsmAssociations`.
|
void |
setSsmAssociations(List<Object> value)
`AWS::EC2::Instance.SsmAssociations`.
|
void |
setSubnetId(String value)
`AWS::EC2::Instance.SubnetId`.
|
void |
setTenancy(String value)
`AWS::EC2::Instance.Tenancy`.
|
void |
setUserData(String value)
`AWS::EC2::Instance.UserData`.
|
void |
setVolumes(IResolvable value)
`AWS::EC2::Instance.Volumes`.
|
void |
setVolumes(List<Object> value)
`AWS::EC2::Instance.Volumes`.
|
addDeletionOverride, addDependsOn, addMetadata, addOverride, addPropertyDeletionOverride, addPropertyOverride, applyRemovalPolicy, applyRemovalPolicy, applyRemovalPolicy, getAtt, getCfnOptions, getCfnResourceType, getMetadata, getUpdatedProperites, isCfnResource, shouldSynthesize, toString, validatePropertiesgetRefgetCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalIdjsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet@Stability(value=Stable) public static final String CFN_RESOURCE_TYPE_NAME
protected CfnInstance(software.amazon.jsii.JsiiObjectRef objRef)
protected CfnInstance(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
@Stability(value=Stable)
public CfnInstance(@NotNull
software.constructs.Construct scope,
@NotNull
String id,
@Nullable
CfnInstanceProps props)
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.@Stability(value=Stable)
public CfnInstance(@NotNull
software.constructs.Construct scope,
@NotNull
String id)
scope - - scope in which this resource is defined. This parameter is required.id - - scoped id of the resource. This parameter is required.@Stability(value=Stable)
public void inspect(@NotNull
TreeInspector inspector)
inspect in interface IInspectableinspector - - tree inspector to collect and process attributes. This parameter is required.@Stability(value=Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
renderProperties in class CfnResourceprops - This parameter is required.@Stability(value=Stable) @Nullable public String getAdditionalInfo()
@Stability(value=Stable)
public void setAdditionalInfo(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getAffinity()
@Stability(value=Stable)
public void setAffinity(@Nullable
String value)
@Stability(value=Stable) @NotNull public String getAttrAvailabilityZone()
@Stability(value=Stable) @NotNull public String getAttrPrivateDnsName()
@Stability(value=Stable) @NotNull public String getAttrPrivateIp()
@Stability(value=Stable) @NotNull public String getAttrPublicDnsName()
@Stability(value=Stable) @NotNull public String getAttrPublicIp()
@Stability(value=Stable) @Nullable public String getAvailabilityZone()
@Stability(value=Stable)
public void setAvailabilityZone(@Nullable
String value)
@Stability(value=Stable) @Nullable public Object getBlockDeviceMappings()
@Stability(value=Stable)
public void setBlockDeviceMappings(@Nullable
IResolvable value)
@Stability(value=Stable)
public void setBlockDeviceMappings(@Nullable
List<Object> value)
@Stability(value=Stable) @NotNull protected Map<String,Object> getCfnProperties()
getCfnProperties in class CfnResource@Stability(value=Stable) @Nullable public Object getCpuOptions()
@Stability(value=Stable)
public void setCpuOptions(@Nullable
CfnInstance.CpuOptionsProperty value)
@Stability(value=Stable)
public void setCpuOptions(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public Object getCreditSpecification()
@Stability(value=Stable)
public void setCreditSpecification(@Nullable
CfnInstance.CreditSpecificationProperty value)
@Stability(value=Stable)
public void setCreditSpecification(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public Object getDisableApiTermination()
@Stability(value=Stable)
public void setDisableApiTermination(@Nullable
Boolean value)
@Stability(value=Stable)
public void setDisableApiTermination(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public Object getEbsOptimized()
@Stability(value=Stable)
public void setEbsOptimized(@Nullable
Boolean value)
@Stability(value=Stable)
public void setEbsOptimized(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public Object getElasticGpuSpecifications()
@Stability(value=Stable)
public void setElasticGpuSpecifications(@Nullable
IResolvable value)
@Stability(value=Stable)
public void setElasticGpuSpecifications(@Nullable
List<Object> value)
@Stability(value=Stable) @Nullable public Object getElasticInferenceAccelerators()
@Stability(value=Stable)
public void setElasticInferenceAccelerators(@Nullable
IResolvable value)
@Stability(value=Stable)
public void setElasticInferenceAccelerators(@Nullable
List<Object> value)
@Stability(value=Stable) @Nullable public Object getEnclaveOptions()
@Stability(value=Stable)
public void setEnclaveOptions(@Nullable
CfnInstance.EnclaveOptionsProperty value)
@Stability(value=Stable)
public void setEnclaveOptions(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public Object getHibernationOptions()
@Stability(value=Stable)
public void setHibernationOptions(@Nullable
CfnInstance.HibernationOptionsProperty value)
@Stability(value=Stable)
public void setHibernationOptions(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public String getHostId()
@Stability(value=Stable)
public void setHostId(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getHostResourceGroupArn()
@Stability(value=Stable)
public void setHostResourceGroupArn(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getIamInstanceProfile()
@Stability(value=Stable)
public void setIamInstanceProfile(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getImageId()
@Stability(value=Stable)
public void setImageId(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getInstanceInitiatedShutdownBehavior()
@Stability(value=Stable)
public void setInstanceInitiatedShutdownBehavior(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getInstanceType()
@Stability(value=Stable)
public void setInstanceType(@Nullable
String value)
@Stability(value=Stable) @Nullable public Number getIpv6AddressCount()
@Stability(value=Stable)
public void setIpv6AddressCount(@Nullable
Number value)
@Stability(value=Stable) @Nullable public Object getIpv6Addresses()
@Stability(value=Stable)
public void setIpv6Addresses(@Nullable
IResolvable value)
@Stability(value=Stable)
public void setIpv6Addresses(@Nullable
List<Object> value)
@Stability(value=Stable) @Nullable public String getKernelId()
@Stability(value=Stable)
public void setKernelId(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getKeyName()
@Stability(value=Stable)
public void setKeyName(@Nullable
String value)
@Stability(value=Stable) @Nullable public Object getLaunchTemplate()
@Stability(value=Stable)
public void setLaunchTemplate(@Nullable
CfnInstance.LaunchTemplateSpecificationProperty value)
@Stability(value=Stable)
public void setLaunchTemplate(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public Object getLicenseSpecifications()
@Stability(value=Stable)
public void setLicenseSpecifications(@Nullable
IResolvable value)
@Stability(value=Stable)
public void setLicenseSpecifications(@Nullable
List<Object> value)
@Stability(value=Stable) @Nullable public Object getMonitoring()
@Stability(value=Stable)
public void setMonitoring(@Nullable
Boolean value)
@Stability(value=Stable)
public void setMonitoring(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public Object getNetworkInterfaces()
@Stability(value=Stable)
public void setNetworkInterfaces(@Nullable
IResolvable value)
@Stability(value=Stable)
public void setNetworkInterfaces(@Nullable
List<Object> value)
@Stability(value=Stable) @Nullable public String getPlacementGroupName()
@Stability(value=Stable)
public void setPlacementGroupName(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getPrivateIpAddress()
@Stability(value=Stable)
public void setPrivateIpAddress(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getRamdiskId()
@Stability(value=Stable)
public void setRamdiskId(@Nullable
String value)
@Stability(value=Stable) @Nullable public List<String> getSecurityGroupIds()
@Stability(value=Stable)
public void setSecurityGroupIds(@Nullable
List<String> value)
@Stability(value=Stable) @Nullable public List<String> getSecurityGroups()
@Stability(value=Stable)
public void setSecurityGroups(@Nullable
List<String> value)
@Stability(value=Stable) @Nullable public Object getSourceDestCheck()
@Stability(value=Stable)
public void setSourceDestCheck(@Nullable
Boolean value)
@Stability(value=Stable)
public void setSourceDestCheck(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public Object getSsmAssociations()
@Stability(value=Stable)
public void setSsmAssociations(@Nullable
IResolvable value)
@Stability(value=Stable)
public void setSsmAssociations(@Nullable
List<Object> value)
@Stability(value=Stable) @Nullable public String getSubnetId()
@Stability(value=Stable)
public void setSubnetId(@Nullable
String value)
@Stability(value=Stable) @NotNull public TagManager getTags()
@Stability(value=Stable) @Nullable public String getTenancy()
@Stability(value=Stable)
public void setTenancy(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getUserData()
@Stability(value=Stable)
public void setUserData(@Nullable
String value)
@Stability(value=Stable) @Nullable public Object getVolumes()
@Stability(value=Stable)
public void setVolumes(@Nullable
IResolvable value)
Copyright © 2021. All rights reserved.