All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.cloudshiftdev.awscdk.services.servicediscovery.CfnInstanceProps.kt Maven / Gradle / Ivy

The newest version!
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")

package io.cloudshiftdev.awscdk.services.servicediscovery

import io.cloudshiftdev.awscdk.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Any
import kotlin.String
import kotlin.Unit

/**
 * Properties for defining a `CfnInstance`.
 *
 * Example:
 *
 * ```
 * // The code below shows an example of how to instantiate this type.
 * // The values are placeholders you should change.
 * import io.cloudshiftdev.awscdk.services.servicediscovery.*;
 * Object instanceAttributes;
 * CfnInstanceProps cfnInstanceProps = CfnInstanceProps.builder()
 * .instanceAttributes(instanceAttributes)
 * .serviceId("serviceId")
 * // the properties below are optional
 * .instanceId("instanceId")
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)
 */
public interface CfnInstanceProps {
  /**
   * A string map that contains the following information for the service that you specify in
   * `ServiceId` :.
   *
   * * The attributes that apply to the records that are defined in the service.
   * * For each attribute, the applicable value.
   *
   * Supported attribute keys include the following:
   *
   * * **AWS_ALIAS_DNS_NAME** - If you want AWS Cloud Map to create a Route 53 alias record that
   * routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated
   * with the load balancer. For information about how to get the DNS name, see
   * [AliasTarget->DNSName](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-DNSName)
   * in the *Route 53 API Reference* .
   *
   * Note the following:
   *
   * * The configuration for the service that is specified by `ServiceId` must include settings for
   * an `A` record, an `AAAA` record, or both.
   * * In the service that is specified by `ServiceId` , the value of `RoutingPolicy` must be
   * `WEIGHTED` .
   * * If the service that is specified by `ServiceId` includes `HealthCheckConfig` settings, AWS
   * Cloud Map will create the health check, but it won't associate the health check with the alias
   * record.
   * * Auto naming currently doesn't support creating alias records that route traffic to AWS
   * resources other than ELB load balancers.
   * * If you specify a value for `AWS_ALIAS_DNS_NAME` , don't specify values for any of the
   * `AWS_INSTANCE` attributes.
   * * **AWS_EC2_INSTANCE_ID** - *HTTP namespaces only.* The Amazon EC2 instance ID for the
   * instance. The `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address. When
   * creating resources with a type of
   * [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)
   * , if the `AWS_EC2_INSTANCE_ID` attribute is specified, the only other attribute that can be
   * specified is `AWS_INIT_HEALTH_STATUS` . After the resource has been created, the
   * `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address.
   * * **AWS_INIT_HEALTH_STATUS** - If the service configuration includes `HealthCheckCustomConfig`
   * , when creating resources with a type of
   * [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)
   * you can optionally use `AWS_INIT_HEALTH_STATUS` to specify the initial status of the custom health
   * check, `HEALTHY` or `UNHEALTHY` . If you don't specify a value for `AWS_INIT_HEALTH_STATUS` , the
   * initial status is `HEALTHY` . This attribute can only be used when creating resources and will not
   * be seen on existing resources.
   * * **AWS_INSTANCE_CNAME** - If the service configuration includes a `CNAME` record, the domain
   * name that you want Route 53 to return in response to DNS queries, for example, `example.com` .
   *
   * This value is required if the service specified by `ServiceId` includes settings for an `CNAME`
   * record.
   *
   * * **AWS_INSTANCE_IPV4** - If the service configuration includes an `A` record, the IPv4 address
   * that you want Route 53 to return in response to DNS queries, for example, `192.0.2.44` .
   *
   * This value is required if the service specified by `ServiceId` includes settings for an `A`
   * record. If the service includes settings for an `SRV` record, you must specify a value for
   * `AWS_INSTANCE_IPV4` , `AWS_INSTANCE_IPV6` , or both.
   *
   * * **AWS_INSTANCE_IPV6** - If the service configuration includes an `AAAA` record, the IPv6
   * address that you want Route 53 to return in response to DNS queries, for example,
   * `2001:0db8:85a3:0000:0000:abcd:0001:2345` .
   *
   * This value is required if the service specified by `ServiceId` includes settings for an `AAAA`
   * record. If the service includes settings for an `SRV` record, you must specify a value for
   * `AWS_INSTANCE_IPV4` , `AWS_INSTANCE_IPV6` , or both.
   *
   * * **AWS_INSTANCE_PORT** - If the service includes an `SRV` record, the value that you want
   * Route 53 to return for the port.
   *
   * If the service includes `HealthCheckConfig` , the port on the endpoint that you want Route 53
   * to send requests to.
   *
   * This value is required if you specified settings for an `SRV` record or a Route 53 health check
   * when you created the service.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceattributes)
   */
  public fun instanceAttributes(): Any

  /**
   * An identifier that you want to associate with the instance. Note the following:.
   *
   * * If the service that's specified by `ServiceId` includes settings for an `SRV` record, the
   * value of `InstanceId` is automatically included as part of the value for the `SRV` record. For
   * more information, see [DnsRecord >
   * Type](https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type)
   * .
   * * You can use this value to update an existing instance.
   * * To register a new instance, you must specify a value that's unique among instances that you
   * register by using the same service.
   * * If you specify an existing `InstanceId` and `ServiceId` , AWS Cloud Map updates the existing
   * DNS records, if any. If there's also an existing health check, AWS Cloud Map deletes the old
   * health check and creates a new one.
   *
   *
   * The health check isn't deleted immediately, so it will still appear for a while if you submit a
   * `ListHealthChecks` request, for example.
   *
   *
   *
   * Do not include sensitive information in `InstanceId` if the namespace is discoverable by public
   * DNS queries and any `Type` member of `DnsRecord` for the service contains `SRV` because the
   * `InstanceId` is discoverable by public DNS queries.
   *
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceid)
   */
  public fun instanceId(): String? = unwrap(this).getInstanceId()

  /**
   * The ID of the service that you want to use for settings for the instance.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-serviceid)
   */
  public fun serviceId(): String

  /**
   * A builder for [CfnInstanceProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param instanceAttributes A string map that contains the following information for the
     * service that you specify in `ServiceId` :. 
     * * The attributes that apply to the records that are defined in the service.
     * * For each attribute, the applicable value.
     *
     * Supported attribute keys include the following:
     *
     * * **AWS_ALIAS_DNS_NAME** - If you want AWS Cloud Map to create a Route 53 alias record that
     * routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is
     * associated with the load balancer. For information about how to get the DNS name, see
     * [AliasTarget->DNSName](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-DNSName)
     * in the *Route 53 API Reference* .
     *
     * Note the following:
     *
     * * The configuration for the service that is specified by `ServiceId` must include settings
     * for an `A` record, an `AAAA` record, or both.
     * * In the service that is specified by `ServiceId` , the value of `RoutingPolicy` must be
     * `WEIGHTED` .
     * * If the service that is specified by `ServiceId` includes `HealthCheckConfig` settings, AWS
     * Cloud Map will create the health check, but it won't associate the health check with the alias
     * record.
     * * Auto naming currently doesn't support creating alias records that route traffic to AWS
     * resources other than ELB load balancers.
     * * If you specify a value for `AWS_ALIAS_DNS_NAME` , don't specify values for any of the
     * `AWS_INSTANCE` attributes.
     * * **AWS_EC2_INSTANCE_ID** - *HTTP namespaces only.* The Amazon EC2 instance ID for the
     * instance. The `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address. When
     * creating resources with a type of
     * [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)
     * , if the `AWS_EC2_INSTANCE_ID` attribute is specified, the only other attribute that can be
     * specified is `AWS_INIT_HEALTH_STATUS` . After the resource has been created, the
     * `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address.
     * * **AWS_INIT_HEALTH_STATUS** - If the service configuration includes
     * `HealthCheckCustomConfig` , when creating resources with a type of
     * [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)
     * you can optionally use `AWS_INIT_HEALTH_STATUS` to specify the initial status of the custom
     * health check, `HEALTHY` or `UNHEALTHY` . If you don't specify a value for
     * `AWS_INIT_HEALTH_STATUS` , the initial status is `HEALTHY` . This attribute can only be used
     * when creating resources and will not be seen on existing resources.
     * * **AWS_INSTANCE_CNAME** - If the service configuration includes a `CNAME` record, the domain
     * name that you want Route 53 to return in response to DNS queries, for example, `example.com` .
     *
     * This value is required if the service specified by `ServiceId` includes settings for an
     * `CNAME` record.
     *
     * * **AWS_INSTANCE_IPV4** - If the service configuration includes an `A` record, the IPv4
     * address that you want Route 53 to return in response to DNS queries, for example, `192.0.2.44` .
     *
     * This value is required if the service specified by `ServiceId` includes settings for an `A`
     * record. If the service includes settings for an `SRV` record, you must specify a value for
     * `AWS_INSTANCE_IPV4` , `AWS_INSTANCE_IPV6` , or both.
     *
     * * **AWS_INSTANCE_IPV6** - If the service configuration includes an `AAAA` record, the IPv6
     * address that you want Route 53 to return in response to DNS queries, for example,
     * `2001:0db8:85a3:0000:0000:abcd:0001:2345` .
     *
     * This value is required if the service specified by `ServiceId` includes settings for an
     * `AAAA` record. If the service includes settings for an `SRV` record, you must specify a value
     * for `AWS_INSTANCE_IPV4` , `AWS_INSTANCE_IPV6` , or both.
     *
     * * **AWS_INSTANCE_PORT** - If the service includes an `SRV` record, the value that you want
     * Route 53 to return for the port.
     *
     * If the service includes `HealthCheckConfig` , the port on the endpoint that you want Route 53
     * to send requests to.
     *
     * This value is required if you specified settings for an `SRV` record or a Route 53 health
     * check when you created the service.
     */
    public fun instanceAttributes(instanceAttributes: Any)

    /**
     * @param instanceId An identifier that you want to associate with the instance. Note the
     * following:.
     * * If the service that's specified by `ServiceId` includes settings for an `SRV` record, the
     * value of `InstanceId` is automatically included as part of the value for the `SRV` record. For
     * more information, see [DnsRecord >
     * Type](https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type)
     * .
     * * You can use this value to update an existing instance.
     * * To register a new instance, you must specify a value that's unique among instances that you
     * register by using the same service.
     * * If you specify an existing `InstanceId` and `ServiceId` , AWS Cloud Map updates the
     * existing DNS records, if any. If there's also an existing health check, AWS Cloud Map deletes
     * the old health check and creates a new one.
     *
     *
     * The health check isn't deleted immediately, so it will still appear for a while if you submit
     * a `ListHealthChecks` request, for example.
     *
     *
     *
     * Do not include sensitive information in `InstanceId` if the namespace is discoverable by
     * public DNS queries and any `Type` member of `DnsRecord` for the service contains `SRV` because
     * the `InstanceId` is discoverable by public DNS queries.
     */
    public fun instanceId(instanceId: String)

    /**
     * @param serviceId The ID of the service that you want to use for settings for the instance. 
     */
    public fun serviceId(serviceId: String)
  }

  private class BuilderImpl : Builder {
    private val cdkBuilder:
        software.amazon.awscdk.services.servicediscovery.CfnInstanceProps.Builder =
        software.amazon.awscdk.services.servicediscovery.CfnInstanceProps.builder()

    /**
     * @param instanceAttributes A string map that contains the following information for the
     * service that you specify in `ServiceId` :. 
     * * The attributes that apply to the records that are defined in the service.
     * * For each attribute, the applicable value.
     *
     * Supported attribute keys include the following:
     *
     * * **AWS_ALIAS_DNS_NAME** - If you want AWS Cloud Map to create a Route 53 alias record that
     * routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is
     * associated with the load balancer. For information about how to get the DNS name, see
     * [AliasTarget->DNSName](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-DNSName)
     * in the *Route 53 API Reference* .
     *
     * Note the following:
     *
     * * The configuration for the service that is specified by `ServiceId` must include settings
     * for an `A` record, an `AAAA` record, or both.
     * * In the service that is specified by `ServiceId` , the value of `RoutingPolicy` must be
     * `WEIGHTED` .
     * * If the service that is specified by `ServiceId` includes `HealthCheckConfig` settings, AWS
     * Cloud Map will create the health check, but it won't associate the health check with the alias
     * record.
     * * Auto naming currently doesn't support creating alias records that route traffic to AWS
     * resources other than ELB load balancers.
     * * If you specify a value for `AWS_ALIAS_DNS_NAME` , don't specify values for any of the
     * `AWS_INSTANCE` attributes.
     * * **AWS_EC2_INSTANCE_ID** - *HTTP namespaces only.* The Amazon EC2 instance ID for the
     * instance. The `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address. When
     * creating resources with a type of
     * [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)
     * , if the `AWS_EC2_INSTANCE_ID` attribute is specified, the only other attribute that can be
     * specified is `AWS_INIT_HEALTH_STATUS` . After the resource has been created, the
     * `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address.
     * * **AWS_INIT_HEALTH_STATUS** - If the service configuration includes
     * `HealthCheckCustomConfig` , when creating resources with a type of
     * [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)
     * you can optionally use `AWS_INIT_HEALTH_STATUS` to specify the initial status of the custom
     * health check, `HEALTHY` or `UNHEALTHY` . If you don't specify a value for
     * `AWS_INIT_HEALTH_STATUS` , the initial status is `HEALTHY` . This attribute can only be used
     * when creating resources and will not be seen on existing resources.
     * * **AWS_INSTANCE_CNAME** - If the service configuration includes a `CNAME` record, the domain
     * name that you want Route 53 to return in response to DNS queries, for example, `example.com` .
     *
     * This value is required if the service specified by `ServiceId` includes settings for an
     * `CNAME` record.
     *
     * * **AWS_INSTANCE_IPV4** - If the service configuration includes an `A` record, the IPv4
     * address that you want Route 53 to return in response to DNS queries, for example, `192.0.2.44` .
     *
     * This value is required if the service specified by `ServiceId` includes settings for an `A`
     * record. If the service includes settings for an `SRV` record, you must specify a value for
     * `AWS_INSTANCE_IPV4` , `AWS_INSTANCE_IPV6` , or both.
     *
     * * **AWS_INSTANCE_IPV6** - If the service configuration includes an `AAAA` record, the IPv6
     * address that you want Route 53 to return in response to DNS queries, for example,
     * `2001:0db8:85a3:0000:0000:abcd:0001:2345` .
     *
     * This value is required if the service specified by `ServiceId` includes settings for an
     * `AAAA` record. If the service includes settings for an `SRV` record, you must specify a value
     * for `AWS_INSTANCE_IPV4` , `AWS_INSTANCE_IPV6` , or both.
     *
     * * **AWS_INSTANCE_PORT** - If the service includes an `SRV` record, the value that you want
     * Route 53 to return for the port.
     *
     * If the service includes `HealthCheckConfig` , the port on the endpoint that you want Route 53
     * to send requests to.
     *
     * This value is required if you specified settings for an `SRV` record or a Route 53 health
     * check when you created the service.
     */
    override fun instanceAttributes(instanceAttributes: Any) {
      cdkBuilder.instanceAttributes(instanceAttributes)
    }

    /**
     * @param instanceId An identifier that you want to associate with the instance. Note the
     * following:.
     * * If the service that's specified by `ServiceId` includes settings for an `SRV` record, the
     * value of `InstanceId` is automatically included as part of the value for the `SRV` record. For
     * more information, see [DnsRecord >
     * Type](https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type)
     * .
     * * You can use this value to update an existing instance.
     * * To register a new instance, you must specify a value that's unique among instances that you
     * register by using the same service.
     * * If you specify an existing `InstanceId` and `ServiceId` , AWS Cloud Map updates the
     * existing DNS records, if any. If there's also an existing health check, AWS Cloud Map deletes
     * the old health check and creates a new one.
     *
     *
     * The health check isn't deleted immediately, so it will still appear for a while if you submit
     * a `ListHealthChecks` request, for example.
     *
     *
     *
     * Do not include sensitive information in `InstanceId` if the namespace is discoverable by
     * public DNS queries and any `Type` member of `DnsRecord` for the service contains `SRV` because
     * the `InstanceId` is discoverable by public DNS queries.
     */
    override fun instanceId(instanceId: String) {
      cdkBuilder.instanceId(instanceId)
    }

    /**
     * @param serviceId The ID of the service that you want to use for settings for the instance. 
     */
    override fun serviceId(serviceId: String) {
      cdkBuilder.serviceId(serviceId)
    }

    public fun build(): software.amazon.awscdk.services.servicediscovery.CfnInstanceProps =
        cdkBuilder.build()
  }

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.servicediscovery.CfnInstanceProps,
  ) : CdkObject(cdkObject),
      CfnInstanceProps {
    /**
     * A string map that contains the following information for the service that you specify in
     * `ServiceId` :.
     *
     * * The attributes that apply to the records that are defined in the service.
     * * For each attribute, the applicable value.
     *
     * Supported attribute keys include the following:
     *
     * * **AWS_ALIAS_DNS_NAME** - If you want AWS Cloud Map to create a Route 53 alias record that
     * routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is
     * associated with the load balancer. For information about how to get the DNS name, see
     * [AliasTarget->DNSName](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-DNSName)
     * in the *Route 53 API Reference* .
     *
     * Note the following:
     *
     * * The configuration for the service that is specified by `ServiceId` must include settings
     * for an `A` record, an `AAAA` record, or both.
     * * In the service that is specified by `ServiceId` , the value of `RoutingPolicy` must be
     * `WEIGHTED` .
     * * If the service that is specified by `ServiceId` includes `HealthCheckConfig` settings, AWS
     * Cloud Map will create the health check, but it won't associate the health check with the alias
     * record.
     * * Auto naming currently doesn't support creating alias records that route traffic to AWS
     * resources other than ELB load balancers.
     * * If you specify a value for `AWS_ALIAS_DNS_NAME` , don't specify values for any of the
     * `AWS_INSTANCE` attributes.
     * * **AWS_EC2_INSTANCE_ID** - *HTTP namespaces only.* The Amazon EC2 instance ID for the
     * instance. The `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address. When
     * creating resources with a type of
     * [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)
     * , if the `AWS_EC2_INSTANCE_ID` attribute is specified, the only other attribute that can be
     * specified is `AWS_INIT_HEALTH_STATUS` . After the resource has been created, the
     * `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address.
     * * **AWS_INIT_HEALTH_STATUS** - If the service configuration includes
     * `HealthCheckCustomConfig` , when creating resources with a type of
     * [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html)
     * you can optionally use `AWS_INIT_HEALTH_STATUS` to specify the initial status of the custom
     * health check, `HEALTHY` or `UNHEALTHY` . If you don't specify a value for
     * `AWS_INIT_HEALTH_STATUS` , the initial status is `HEALTHY` . This attribute can only be used
     * when creating resources and will not be seen on existing resources.
     * * **AWS_INSTANCE_CNAME** - If the service configuration includes a `CNAME` record, the domain
     * name that you want Route 53 to return in response to DNS queries, for example, `example.com` .
     *
     * This value is required if the service specified by `ServiceId` includes settings for an
     * `CNAME` record.
     *
     * * **AWS_INSTANCE_IPV4** - If the service configuration includes an `A` record, the IPv4
     * address that you want Route 53 to return in response to DNS queries, for example, `192.0.2.44` .
     *
     * This value is required if the service specified by `ServiceId` includes settings for an `A`
     * record. If the service includes settings for an `SRV` record, you must specify a value for
     * `AWS_INSTANCE_IPV4` , `AWS_INSTANCE_IPV6` , or both.
     *
     * * **AWS_INSTANCE_IPV6** - If the service configuration includes an `AAAA` record, the IPv6
     * address that you want Route 53 to return in response to DNS queries, for example,
     * `2001:0db8:85a3:0000:0000:abcd:0001:2345` .
     *
     * This value is required if the service specified by `ServiceId` includes settings for an
     * `AAAA` record. If the service includes settings for an `SRV` record, you must specify a value
     * for `AWS_INSTANCE_IPV4` , `AWS_INSTANCE_IPV6` , or both.
     *
     * * **AWS_INSTANCE_PORT** - If the service includes an `SRV` record, the value that you want
     * Route 53 to return for the port.
     *
     * If the service includes `HealthCheckConfig` , the port on the endpoint that you want Route 53
     * to send requests to.
     *
     * This value is required if you specified settings for an `SRV` record or a Route 53 health
     * check when you created the service.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceattributes)
     */
    override fun instanceAttributes(): Any = unwrap(this).getInstanceAttributes()

    /**
     * An identifier that you want to associate with the instance. Note the following:.
     *
     * * If the service that's specified by `ServiceId` includes settings for an `SRV` record, the
     * value of `InstanceId` is automatically included as part of the value for the `SRV` record. For
     * more information, see [DnsRecord >
     * Type](https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type)
     * .
     * * You can use this value to update an existing instance.
     * * To register a new instance, you must specify a value that's unique among instances that you
     * register by using the same service.
     * * If you specify an existing `InstanceId` and `ServiceId` , AWS Cloud Map updates the
     * existing DNS records, if any. If there's also an existing health check, AWS Cloud Map deletes
     * the old health check and creates a new one.
     *
     *
     * The health check isn't deleted immediately, so it will still appear for a while if you submit
     * a `ListHealthChecks` request, for example.
     *
     *
     *
     * Do not include sensitive information in `InstanceId` if the namespace is discoverable by
     * public DNS queries and any `Type` member of `DnsRecord` for the service contains `SRV` because
     * the `InstanceId` is discoverable by public DNS queries.
     *
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceid)
     */
    override fun instanceId(): String? = unwrap(this).getInstanceId()

    /**
     * The ID of the service that you want to use for settings for the instance.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-serviceid)
     */
    override fun serviceId(): String = unwrap(this).getServiceId()
  }

  public companion object {
    public operator fun invoke(block: Builder.() -> Unit = {}): CfnInstanceProps {
      val builderImpl = BuilderImpl()
      return Wrapper(builderImpl.apply(block).build())
    }

    internal fun wrap(cdkObject: software.amazon.awscdk.services.servicediscovery.CfnInstanceProps):
        CfnInstanceProps = CdkObjectWrappers.wrap(cdkObject) as? CfnInstanceProps ?:
        Wrapper(cdkObject)

    internal fun unwrap(wrapped: CfnInstanceProps):
        software.amazon.awscdk.services.servicediscovery.CfnInstanceProps = (wrapped as
        CdkObject).cdkObject as software.amazon.awscdk.services.servicediscovery.CfnInstanceProps
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy