awsservicediscovery

package
v2.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 29, 2022 License: Apache-2.0 Imports: 8 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AliasTargetInstance_IsConstruct

func AliasTargetInstance_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func AliasTargetInstance_IsResource

func AliasTargetInstance_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func CfnHttpNamespace_CFN_RESOURCE_TYPE_NAME

func CfnHttpNamespace_CFN_RESOURCE_TYPE_NAME() *string

func CfnHttpNamespace_IsCfnElement

func CfnHttpNamespace_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnHttpNamespace_IsCfnResource

func CfnHttpNamespace_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnHttpNamespace_IsConstruct

func CfnHttpNamespace_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnInstance_CFN_RESOURCE_TYPE_NAME

func CfnInstance_CFN_RESOURCE_TYPE_NAME() *string

func CfnInstance_IsCfnElement

func CfnInstance_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnInstance_IsCfnResource

func CfnInstance_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnInstance_IsConstruct

func CfnInstance_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnPrivateDnsNamespace_CFN_RESOURCE_TYPE_NAME

func CfnPrivateDnsNamespace_CFN_RESOURCE_TYPE_NAME() *string

func CfnPrivateDnsNamespace_IsCfnElement

func CfnPrivateDnsNamespace_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnPrivateDnsNamespace_IsCfnResource

func CfnPrivateDnsNamespace_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnPrivateDnsNamespace_IsConstruct

func CfnPrivateDnsNamespace_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnPublicDnsNamespace_CFN_RESOURCE_TYPE_NAME

func CfnPublicDnsNamespace_CFN_RESOURCE_TYPE_NAME() *string

func CfnPublicDnsNamespace_IsCfnElement

func CfnPublicDnsNamespace_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnPublicDnsNamespace_IsCfnResource

func CfnPublicDnsNamespace_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnPublicDnsNamespace_IsConstruct

func CfnPublicDnsNamespace_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnService_CFN_RESOURCE_TYPE_NAME

func CfnService_CFN_RESOURCE_TYPE_NAME() *string

func CfnService_IsCfnElement

func CfnService_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnService_IsCfnResource

func CfnService_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnService_IsConstruct

func CfnService_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CnameInstance_IsConstruct

func CnameInstance_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CnameInstance_IsResource

func CnameInstance_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func HttpNamespace_IsConstruct

func HttpNamespace_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func HttpNamespace_IsResource

func HttpNamespace_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func InstanceBase_IsConstruct

func InstanceBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func InstanceBase_IsResource

func InstanceBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func IpInstance_IsConstruct

func IpInstance_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func IpInstance_IsResource

func IpInstance_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func NewAliasTargetInstance_Override

func NewAliasTargetInstance_Override(a AliasTargetInstance, scope constructs.Construct, id *string, props *AliasTargetInstanceProps)

func NewCfnHttpNamespace_Override

func NewCfnHttpNamespace_Override(c CfnHttpNamespace, scope constructs.Construct, id *string, props *CfnHttpNamespaceProps)

Create a new `AWS::ServiceDiscovery::HttpNamespace`.

func NewCfnInstance_Override

func NewCfnInstance_Override(c CfnInstance, scope constructs.Construct, id *string, props *CfnInstanceProps)

Create a new `AWS::ServiceDiscovery::Instance`.

func NewCfnPrivateDnsNamespace_Override

func NewCfnPrivateDnsNamespace_Override(c CfnPrivateDnsNamespace, scope constructs.Construct, id *string, props *CfnPrivateDnsNamespaceProps)

Create a new `AWS::ServiceDiscovery::PrivateDnsNamespace`.

func NewCfnPublicDnsNamespace_Override

func NewCfnPublicDnsNamespace_Override(c CfnPublicDnsNamespace, scope constructs.Construct, id *string, props *CfnPublicDnsNamespaceProps)

Create a new `AWS::ServiceDiscovery::PublicDnsNamespace`.

func NewCfnService_Override

func NewCfnService_Override(c CfnService, scope constructs.Construct, id *string, props *CfnServiceProps)

Create a new `AWS::ServiceDiscovery::Service`.

func NewCnameInstance_Override

func NewCnameInstance_Override(c CnameInstance, scope constructs.Construct, id *string, props *CnameInstanceProps)

func NewHttpNamespace_Override

func NewHttpNamespace_Override(h HttpNamespace, scope constructs.Construct, id *string, props *HttpNamespaceProps)

func NewInstanceBase_Override

func NewInstanceBase_Override(i InstanceBase, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

func NewIpInstance_Override

func NewIpInstance_Override(i IpInstance, scope constructs.Construct, id *string, props *IpInstanceProps)

func NewNonIpInstance_Override

func NewNonIpInstance_Override(n NonIpInstance, scope constructs.Construct, id *string, props *NonIpInstanceProps)

func NewPrivateDnsNamespace_Override

func NewPrivateDnsNamespace_Override(p PrivateDnsNamespace, scope constructs.Construct, id *string, props *PrivateDnsNamespaceProps)

func NewPublicDnsNamespace_Override

func NewPublicDnsNamespace_Override(p PublicDnsNamespace, scope constructs.Construct, id *string, props *PublicDnsNamespaceProps)

func NewService_Override

func NewService_Override(s Service, scope constructs.Construct, id *string, props *ServiceProps)

func NonIpInstance_IsConstruct

func NonIpInstance_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func NonIpInstance_IsResource

func NonIpInstance_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func PrivateDnsNamespace_IsConstruct

func PrivateDnsNamespace_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func PrivateDnsNamespace_IsResource

func PrivateDnsNamespace_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func PublicDnsNamespace_IsConstruct

func PublicDnsNamespace_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func PublicDnsNamespace_IsResource

func PublicDnsNamespace_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Service_IsConstruct

func Service_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func Service_IsResource

func Service_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

Types

type AliasTargetInstance

type AliasTargetInstance interface {
	InstanceBase
	DnsName() *string
	Env() *awscdk.ResourceEnvironment
	InstanceId() *string
	Node() constructs.Node
	PhysicalName() *string
	Service() IService
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
	UniqueInstanceId() *string
}

Instance that uses Route 53 Alias record type.

Currently, the only resource types supported are Elastic Load Balancers.

TODO: EXAMPLE

func NewAliasTargetInstance

func NewAliasTargetInstance(scope constructs.Construct, id *string, props *AliasTargetInstanceProps) AliasTargetInstance

type AliasTargetInstanceProps

type AliasTargetInstanceProps struct {
	// Custom attributes of the instance.
	CustomAttributes *map[string]*string `json:"customAttributes" yaml:"customAttributes"`
	// The id of the instance resource.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// DNS name of the target.
	DnsName *string `json:"dnsName" yaml:"dnsName"`
	// The Cloudmap service this resource is registered to.
	Service IService `json:"service" yaml:"service"`
}

TODO: EXAMPLE

type BaseInstanceProps

type BaseInstanceProps struct {
	// Custom attributes of the instance.
	CustomAttributes *map[string]*string `json:"customAttributes" yaml:"customAttributes"`
	// The id of the instance resource.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
}

Used when the resource that's associated with the service instance is accessible using values other than an IP address or a domain name (CNAME), i.e. for non-ip-instances.

TODO: EXAMPLE

type BaseNamespaceProps

type BaseNamespaceProps struct {
	// A name for the Namespace.
	Name *string `json:"name" yaml:"name"`
	// A description of the Namespace.
	Description *string `json:"description" yaml:"description"`
}

TODO: EXAMPLE

type BaseServiceProps

type BaseServiceProps struct {
	// Structure containing failure threshold for a custom health checker.
	//
	// Only one of healthCheckConfig or healthCheckCustomConfig can be specified.
	// See: https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html
	CustomHealthCheck *HealthCheckCustomConfig `json:"customHealthCheck" yaml:"customHealthCheck"`
	// A description of the service.
	Description *string `json:"description" yaml:"description"`
	// Settings for an optional health check.
	//
	// If you specify health check settings, AWS Cloud Map associates the health
	// check with the records that you specify in DnsConfig. Only one of healthCheckConfig or healthCheckCustomConfig can
	// be specified. Not valid for PrivateDnsNamespaces. If you use healthCheck, you can only register IP instances to
	// this service.
	HealthCheck *HealthCheckConfig `json:"healthCheck" yaml:"healthCheck"`
	// A name for the Service.
	Name *string `json:"name" yaml:"name"`
}

Basic props needed to create a service in a given namespace.

Used by HttpNamespace.createService

TODO: EXAMPLE

type CfnHttpNamespace

type CfnHttpNamespace interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrArn() *string
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ServiceDiscovery::HttpNamespace`.

The `HttpNamespace` resource is an AWS Cloud Map resource type that contains information about an HTTP namespace. Service instances that you register using an HTTP namespace can be discovered using a `DiscoverInstances` request but can't be discovered using DNS.

For the current quota on the number of namespaces that you can create using the same AWS account, see [AWS Cloud Map quotas](https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html) in the ** .

TODO: EXAMPLE

func NewCfnHttpNamespace

func NewCfnHttpNamespace(scope constructs.Construct, id *string, props *CfnHttpNamespaceProps) CfnHttpNamespace

Create a new `AWS::ServiceDiscovery::HttpNamespace`.

type CfnHttpNamespaceProps

type CfnHttpNamespaceProps struct {
	// The name that you want to assign to this namespace.
	Name *string `json:"name" yaml:"name"`
	// A description for the namespace.
	Description *string `json:"description" yaml:"description"`
	// The tags for the namespace.
	//
	// Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnHttpNamespace`.

TODO: EXAMPLE

type CfnInstance

type CfnInstance interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	InstanceAttributes() interface{}
	SetInstanceAttributes(val interface{})
	InstanceId() *string
	SetInstanceId(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	ServiceId() *string
	SetServiceId(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ServiceDiscovery::Instance`.

A complex type that contains information about an instance that AWS Cloud Map creates when you submit a `RegisterInstance` request.

TODO: EXAMPLE

func NewCfnInstance

func NewCfnInstance(scope constructs.Construct, id *string, props *CfnInstanceProps) CfnInstance

Create a new `AWS::ServiceDiscovery::Instance`.

type CfnInstanceProps

type CfnInstanceProps struct {
	// 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.
	InstanceAttributes interface{} `json:"instanceAttributes" yaml:"instanceAttributes"`
	// The ID of the service that you want to use for settings for the instance.
	ServiceId *string `json:"serviceId" yaml:"serviceId"`
	// 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.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
}

Properties for defining a `CfnInstance`.

TODO: EXAMPLE

type CfnPrivateDnsNamespace

type CfnPrivateDnsNamespace interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrArn() *string
	AttrHostedZoneId() *string
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Properties() interface{}
	SetProperties(val interface{})
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	Vpc() *string
	SetVpc(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ServiceDiscovery::PrivateDnsNamespace`.

Creates a private namespace based on DNS, which is visible only inside a specified Amazon VPC. The namespace defines your service naming scheme. For example, if you name your namespace `example.com` and name your service `backend` , the resulting DNS name for the service is `backend.example.com` . Service instances that are registered using a private DNS namespace can be discovered using either a `DiscoverInstances` request or using DNS. For the current quota on the number of namespaces that you can create using the same AWS account , see [AWS Cloud Map quotas](https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html) in the *AWS Cloud Map Developer Guide* .

TODO: EXAMPLE

func NewCfnPrivateDnsNamespace

func NewCfnPrivateDnsNamespace(scope constructs.Construct, id *string, props *CfnPrivateDnsNamespaceProps) CfnPrivateDnsNamespace

Create a new `AWS::ServiceDiscovery::PrivateDnsNamespace`.

type CfnPrivateDnsNamespaceProps

type CfnPrivateDnsNamespaceProps struct {
	// The name that you want to assign to this namespace.
	//
	// When you create a private DNS namespace, AWS Cloud Map automatically creates an Amazon Route 53 private hosted zone that has the same name as the namespace.
	Name *string `json:"name" yaml:"name"`
	// The ID of the Amazon VPC that you want to associate the namespace with.
	Vpc *string `json:"vpc" yaml:"vpc"`
	// A description for the namespace.
	Description *string `json:"description" yaml:"description"`
	// Properties for the private DNS namespace.
	Properties interface{} `json:"properties" yaml:"properties"`
	// The tags for the namespace.
	//
	// Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnPrivateDnsNamespace`.

TODO: EXAMPLE

type CfnPrivateDnsNamespace_PrivateDnsPropertiesMutableProperty

type CfnPrivateDnsNamespace_PrivateDnsPropertiesMutableProperty struct {
	// Fields for the Start of Authority (SOA) record for the hosted zone for the private DNS namespace.
	Soa interface{} `json:"soa" yaml:"soa"`
}

DNS properties for the private DNS namespace.

TODO: EXAMPLE

type CfnPrivateDnsNamespace_PropertiesProperty

type CfnPrivateDnsNamespace_PropertiesProperty struct {
	// DNS properties for the private DNS namespace.
	DnsProperties interface{} `json:"dnsProperties" yaml:"dnsProperties"`
}

Properties for the private DNS namespace.

TODO: EXAMPLE

type CfnPrivateDnsNamespace_SOAProperty

type CfnPrivateDnsNamespace_SOAProperty struct {
	// The time to live (TTL) for purposes of negative caching.
	Ttl *float64 `json:"ttl" yaml:"ttl"`
}

Start of Authority (SOA) properties for a public or private DNS namespace.

TODO: EXAMPLE

type CfnPublicDnsNamespace

type CfnPublicDnsNamespace interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrArn() *string
	AttrHostedZoneId() *string
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Properties() interface{}
	SetProperties(val interface{})
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ServiceDiscovery::PublicDnsNamespace`.

Creates a public namespace based on DNS, which is visible on the internet. The namespace defines your service naming scheme. For example, if you name your namespace `example.com` and name your service `backend` , the resulting DNS name for the service is `backend.example.com` . You can discover instances that were registered with a public DNS namespace by using either a `DiscoverInstances` request or using DNS. For the current quota on the number of namespaces that you can create using the same AWS account , see [AWS Cloud Map quotas](https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html) in the *AWS Cloud Map Developer Guide* .

> The `CreatePublicDnsNamespace` API operation is not supported in the AWS GovCloud (US) Regions.

TODO: EXAMPLE

func NewCfnPublicDnsNamespace

func NewCfnPublicDnsNamespace(scope constructs.Construct, id *string, props *CfnPublicDnsNamespaceProps) CfnPublicDnsNamespace

Create a new `AWS::ServiceDiscovery::PublicDnsNamespace`.

type CfnPublicDnsNamespaceProps

type CfnPublicDnsNamespaceProps struct {
	// The name that you want to assign to this namespace.
	Name *string `json:"name" yaml:"name"`
	// A description for the namespace.
	Description *string `json:"description" yaml:"description"`
	// Properties for the public DNS namespace.
	Properties interface{} `json:"properties" yaml:"properties"`
	// The tags for the namespace.
	//
	// Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnPublicDnsNamespace`.

TODO: EXAMPLE

type CfnPublicDnsNamespace_PropertiesProperty

type CfnPublicDnsNamespace_PropertiesProperty struct {
	// DNS properties for the public DNS namespace.
	DnsProperties interface{} `json:"dnsProperties" yaml:"dnsProperties"`
}

Properties for the public DNS namespace.

TODO: EXAMPLE

type CfnPublicDnsNamespace_PublicDnsPropertiesMutableProperty

type CfnPublicDnsNamespace_PublicDnsPropertiesMutableProperty struct {
	// Start of Authority (SOA) record for the hosted zone for the public DNS namespace.
	Soa interface{} `json:"soa" yaml:"soa"`
}

DNS properties for the public DNS namespace.

TODO: EXAMPLE

type CfnPublicDnsNamespace_SOAProperty

type CfnPublicDnsNamespace_SOAProperty struct {
	// The time to live (TTL) for purposes of negative caching.
	Ttl *float64 `json:"ttl" yaml:"ttl"`
}

Start of Authority (SOA) properties for a public or private DNS namespace.

TODO: EXAMPLE

type CfnService

type CfnService interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrArn() *string
	AttrId() *string
	AttrName() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	DnsConfig() interface{}
	SetDnsConfig(val interface{})
	HealthCheckConfig() interface{}
	SetHealthCheckConfig(val interface{})
	HealthCheckCustomConfig() interface{}
	SetHealthCheckCustomConfig(val interface{})
	LogicalId() *string
	Name() *string
	SetName(val *string)
	NamespaceId() *string
	SetNamespaceId(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	Type() *string
	SetType(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ServiceDiscovery::Service`.

A complex type that contains information about a service, which defines the configuration of the following entities:

- For public and private DNS namespaces, one of the following combinations of DNS records in Amazon Route 53:

- A - AAAA - A and AAAA - SRV - CNAME - Optionally, a health check

TODO: EXAMPLE

func NewCfnService

func NewCfnService(scope constructs.Construct, id *string, props *CfnServiceProps) CfnService

Create a new `AWS::ServiceDiscovery::Service`.

type CfnServiceProps

type CfnServiceProps struct {
	// The description of the service.
	Description *string `json:"description" yaml:"description"`
	// A complex type that contains information about the Route 53 DNS records that you want AWS Cloud Map to create when you register an instance.
	DnsConfig interface{} `json:"dnsConfig" yaml:"dnsConfig"`
	// *Public DNS and HTTP namespaces only.* A complex type that contains settings for an optional health check. If you specify settings for a health check, AWS Cloud Map associates the health check with the records that you specify in `DnsConfig` .
	//
	// For information about the charges for health checks, see [Amazon Route 53 Pricing](https://docs.aws.amazon.com/route53/pricing/) .
	HealthCheckConfig interface{} `json:"healthCheckConfig" yaml:"healthCheckConfig"`
	// A complex type that contains information about an optional custom health check.
	//
	// > If you specify a health check configuration, you can specify either `HealthCheckCustomConfig` or `HealthCheckConfig` but not both.
	HealthCheckCustomConfig interface{} `json:"healthCheckCustomConfig" yaml:"healthCheckCustomConfig"`
	// The name of the service.
	Name *string `json:"name" yaml:"name"`
	// The ID of the namespace that was used to create the service.
	//
	// > You must specify a value for `NamespaceId` either for the service properties or for [DnsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html) . Don't specify a value in both places.
	NamespaceId *string `json:"namespaceId" yaml:"namespaceId"`
	// The tags for the service.
	//
	// Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// If present, specifies that the service instances are only discoverable using the `DiscoverInstances` API operation.
	//
	// No DNS records is registered for the service instances. The only valid value is `HTTP` .
	Type *string `json:"type" yaml:"type"`
}

Properties for defining a `CfnService`.

TODO: EXAMPLE

type CfnService_DnsConfigProperty

type CfnService_DnsConfigProperty struct {
	// An array that contains one `DnsRecord` object for each Route 53 DNS record that you want AWS Cloud Map to create when you register an instance.
	DnsRecords interface{} `json:"dnsRecords" yaml:"dnsRecords"`
	// The ID of the namespace to use for DNS configuration.
	//
	// > You must specify a value for `NamespaceId` either for `DnsConfig` or for the [service properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html) . Don't specify a value in both places.
	NamespaceId *string `json:"namespaceId" yaml:"namespaceId"`
	// The routing policy that you want to apply to all Route 53 DNS records that AWS Cloud Map creates when you register an instance and specify this service.
	//
	// > If you want to use this service to register instances that create alias records, specify `WEIGHTED` for the routing policy.
	//
	// You can specify the following values:
	//
	// - **MULTIVALUE** - If you define a health check for the service and the health check is healthy, Route 53 returns the applicable value for up to eight instances.
	//
	// For example, suppose that the service includes configurations for one `A` record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with IP addresses for up to eight healthy instances. If fewer than eight instances are healthy, Route 53 responds to every DNS query with the IP addresses for all of the healthy instances.
	//
	// If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the values for up to eight instances.
	//
	// For more information about the multivalue routing policy, see [Multivalue Answer Routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue) in the *Route 53 Developer Guide* .
	// - **WEIGHTED** - Route 53 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service. Currently, all records have the same weight, so you can't route more or less traffic to any instances.
	//
	// For example, suppose that the service includes configurations for one `A` record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances. If no instances are healthy, Route 53 responds to DNS queries as if all of the instances were healthy.
	//
	// If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the applicable value for one randomly selected instance.
	//
	// For more information about the weighted routing policy, see [Weighted Routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted) in the *Route 53 Developer Guide* .
	RoutingPolicy *string `json:"routingPolicy" yaml:"routingPolicy"`
}

A complex type that contains information about the Amazon Route 53 DNS records that you want AWS Cloud Map to create when you register an instance.

TODO: EXAMPLE

type CfnService_DnsRecordProperty

type CfnService_DnsRecordProperty struct {
	// The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record.
	//
	// > Alias records don't include a TTL because Route 53 uses the TTL for the AWS resource that an alias record routes traffic to. If you include the `AWS_ALIAS_DNS_NAME` attribute when you submit a [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) request, the `TTL` value is ignored. Always specify a TTL for the service; you can use a service to register instances that create either alias or non-alias records.
	Ttl *float64 `json:"ttl" yaml:"ttl"`
	// The type of the resource, which indicates the type of value that Route 53 returns in response to DNS queries.
	//
	// You can specify values for `Type` in the following combinations:
	//
	// - `A`
	// - `AAAA`
	// - `A` and `AAAA`
	// - `SRV`
	// - `CNAME`
	//
	// If you want AWS Cloud Map to create a Route 53 alias record when you register an instance, specify `A` or `AAAA` for `Type` .
	//
	// You specify other settings, such as the IP address for `A` and `AAAA` records, when you register an instance. For more information, see [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) .
	//
	// The following values are supported:
	//
	// - **A** - Route 53 returns the IP address of the resource in IPv4 format, such as 192.0.2.44.
	// - **AAAA** - Route 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345.
	// - **CNAME** - Route 53 returns the domain name of the resource, such as www.example.com. Note the following:
	//
	// - You specify the domain name that you want to route traffic to when you register an instance. For more information, see [Attributes](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html#cloudmap-RegisterInstance-request-Attributes) in the topic [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) .
	// - You must specify `WEIGHTED` for the value of `RoutingPolicy` .
	// - You can't specify both `CNAME` for `Type` and settings for `HealthCheckConfig` . If you do, the request will fail with an `InvalidInput` error.
	// - **SRV** - Route 53 returns the value for an `SRV` record. The value for an `SRV` record uses the following values:
	//
	// `priority weight port service-hostname`
	//
	// Note the following about the values:
	//
	// - The values of `priority` and `weight` are both set to `1` and can't be changed.
	// - The value of `port` comes from the value that you specify for the `AWS_INSTANCE_PORT` attribute when you submit a [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) request.
	// - The value of `service-hostname` is a concatenation of the following values:
	//
	// - The value that you specify for `InstanceId` when you register an instance.
	// - The name of the service.
	// - The name of the namespace.
	//
	// For example, if the value of `InstanceId` is `test` , the name of the service is `backend` , and the name of the namespace is `example.com` , the value of `service-hostname` is:
	//
	// `test.backend.example.com`
	//
	// If you specify settings for an `SRV` record and if you specify values for `AWS_INSTANCE_IPV4` , `AWS_INSTANCE_IPV6` , or both in the `RegisterInstance` request, AWS Cloud Map automatically creates `A` and/or `AAAA` records that have the same name as the value of `service-hostname` in the `SRV` record. You can ignore these records.
	Type *string `json:"type" yaml:"type"`
}

A complex type that contains information about the Route 53 DNS records that you want AWS Cloud Map to create when you register an instance.

TODO: EXAMPLE

type CfnService_HealthCheckConfigProperty

type CfnService_HealthCheckConfigProperty struct {
	// The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy.
	//
	// > You can't change the value of `Type` after you create a health check.
	//
	// You can create the following types of health checks:
	//
	// - *HTTP* : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400.
	// - *HTTPS* : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400.
	//
	// > If you specify HTTPS for the value of `Type` , the endpoint must support TLS v1.0 or later.
	// - *TCP* : Route 53 tries to establish a TCP connection.
	//
	// If you specify `TCP` for `Type` , don't specify a value for `ResourcePath` .
	//
	// For more information, see [How Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) in the *Route 53 Developer Guide* .
	Type *string `json:"type" yaml:"type"`
	// The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or the other way around.
	//
	// For more information, see [How Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) in the *Route 53 Developer Guide* .
	FailureThreshold *float64 `json:"failureThreshold" yaml:"failureThreshold"`
	// The path that you want Route 53 to request when performing health checks.
	//
	// The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy. An example file is `/docs/route53-health-check.html` . Route 53 automatically adds the DNS name for the service. If you don't specify a value for `ResourcePath` , the default value is `/` .
	//
	// If you specify `TCP` for `Type` , you must *not* specify a value for `ResourcePath` .
	ResourcePath *string `json:"resourcePath" yaml:"resourcePath"`
}

*Public DNS and HTTP namespaces only.* A complex type that contains settings for an optional health check. If you specify settings for a health check, AWS Cloud Map associates the health check with the records that you specify in `DnsConfig` .

> If you specify a health check configuration, you can specify either `HealthCheckCustomConfig` or `HealthCheckConfig` but not both.

Health checks are basic Route 53 health checks that monitor an AWS endpoint. For information about pricing for health checks, see [Amazon Route 53 Pricing](https://docs.aws.amazon.com/route53/pricing/) .

Note the following about configuring health checks.

- **A and AAAA records** - If `DnsConfig` includes configurations for both `A` and `AAAA` records, AWS Cloud Map creates a health check that uses the IPv4 address to check the health of the resource. If the endpoint tthat's specified by the IPv4 address is unhealthy, Route 53 considers both the `A` and `AAAA` records to be unhealthy. - **CNAME records** - You can't specify settings for `HealthCheckConfig` when the `DNSConfig` includes `CNAME` for the value of `Type` . If you do, the `CreateService` request will fail with an `InvalidInput` error. - **Request interval** - A Route 53 health checker in each health-checking AWS Region sends a health check request to an endpoint every 30 seconds. On average, your endpoint receives a health check request about every two seconds. However, health checkers don't coordinate with one another. Therefore, you might sometimes see several requests in one second that's followed by a few seconds with no health checks at all. - **Health checking regions** - Health checkers perform checks from all Route 53 health-checking Regions. For a list of the current Regions, see [Regions](https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions) . - **Alias records** - When you register an instance, if you include the `AWS_ALIAS_DNS_NAME` attribute, AWS Cloud Map creates a Route 53 alias record. Note the following:

- Route 53 automatically sets `EvaluateTargetHealth` to true for alias records. When `EvaluateTargetHealth` is true, the alias record inherits the health of the referenced AWS resource. such as an ELB load balancer. For more information, see [EvaluateTargetHealth](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-EvaluateTargetHealth) . - If you include `HealthCheckConfig` and then use the service to register an instance that creates an alias record, Route 53 doesn't create the health check. - **Charges for health checks** - Health checks are basic Route 53 health checks that monitor an AWS endpoint. For information about pricing for health checks, see [Amazon Route 53 Pricing](https://docs.aws.amazon.com/route53/pricing/) .

TODO: EXAMPLE

type CfnService_HealthCheckCustomConfigProperty

type CfnService_HealthCheckCustomConfigProperty struct {
	// > This parameter is no longer supported and is always set to 1.
	//
	// AWS Cloud Map waits for approximately 30 seconds after receiving an `UpdateInstanceCustomHealthStatus` request before changing the status of the service instance.
	//
	// The number of 30-second intervals that you want AWS Cloud Map to wait after receiving an `UpdateInstanceCustomHealthStatus` request before it changes the health status of a service instance.
	//
	// Sending a second or subsequent `UpdateInstanceCustomHealthStatus` request with the same value before 30 seconds has passed doesn't accelerate the change. AWS Cloud Map still waits `30` seconds after the first request to make the change.
	FailureThreshold *float64 `json:"failureThreshold" yaml:"failureThreshold"`
}

A complex type that contains information about an optional custom health check.

A custom health check, which requires that you use a third-party health checker to evaluate the health of your resources, is useful in the following circumstances:

- You can't use a health check that's defined by `HealthCheckConfig` because the resource isn't available over the internet. For example, you can use a custom health check when the instance is in an Amazon VPC. (To check the health of resources in a VPC, the health checker must also be in the VPC.) - You want to use a third-party health checker regardless of where your resources are located.

> If you specify a health check configuration, you can specify either `HealthCheckCustomConfig` or `HealthCheckConfig` but not both.

To change the status of a custom health check, submit an `UpdateInstanceCustomHealthStatus` request. AWS Cloud Map doesn't monitor the status of the resource, it just keeps a record of the status specified in the most recent `UpdateInstanceCustomHealthStatus` request.

Here's how custom health checks work:

- You create a service. - You register an instance. - You configure a third-party health checker to monitor the resource that's associated with the new instance.

> AWS Cloud Map doesn't check the health of the resource directly. - The third-party health-checker determines that the resource is unhealthy and notifies your application. - Your application submits an `UpdateInstanceCustomHealthStatus` request. - AWS Cloud Map waits for 30 seconds. - If another `UpdateInstanceCustomHealthStatus` request doesn't arrive during that time to change the status back to healthy, AWS Cloud Map stops routing traffic to the resource.

TODO: EXAMPLE

type CnameInstance

type CnameInstance interface {
	InstanceBase
	Cname() *string
	Env() *awscdk.ResourceEnvironment
	InstanceId() *string
	Node() constructs.Node
	PhysicalName() *string
	Service() IService
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
	UniqueInstanceId() *string
}

Instance that is accessible using a domain name (CNAME).

TODO: EXAMPLE

func NewCnameInstance

func NewCnameInstance(scope constructs.Construct, id *string, props *CnameInstanceProps) CnameInstance

type CnameInstanceBaseProps

type CnameInstanceBaseProps struct {
	// Custom attributes of the instance.
	CustomAttributes *map[string]*string `json:"customAttributes" yaml:"customAttributes"`
	// The id of the instance resource.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// 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.
	InstanceCname *string `json:"instanceCname" yaml:"instanceCname"`
}

TODO: EXAMPLE

type CnameInstanceProps

type CnameInstanceProps struct {
	// Custom attributes of the instance.
	CustomAttributes *map[string]*string `json:"customAttributes" yaml:"customAttributes"`
	// The id of the instance resource.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// 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.
	InstanceCname *string `json:"instanceCname" yaml:"instanceCname"`
	// The Cloudmap service this resource is registered to.
	Service IService `json:"service" yaml:"service"`
}

TODO: EXAMPLE

type DnsRecordType

type DnsRecordType string

TODO: EXAMPLE

const (
	DnsRecordType_A      DnsRecordType = "A"
	DnsRecordType_AAAA   DnsRecordType = "AAAA"
	DnsRecordType_A_AAAA DnsRecordType = "A_AAAA"
	DnsRecordType_SRV    DnsRecordType = "SRV"
	DnsRecordType_CNAME  DnsRecordType = "CNAME"
)

type DnsServiceProps

type DnsServiceProps struct {
	// Structure containing failure threshold for a custom health checker.
	//
	// Only one of healthCheckConfig or healthCheckCustomConfig can be specified.
	// See: https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html
	CustomHealthCheck *HealthCheckCustomConfig `json:"customHealthCheck" yaml:"customHealthCheck"`
	// A description of the service.
	Description *string `json:"description" yaml:"description"`
	// Settings for an optional health check.
	//
	// If you specify health check settings, AWS Cloud Map associates the health
	// check with the records that you specify in DnsConfig. Only one of healthCheckConfig or healthCheckCustomConfig can
	// be specified. Not valid for PrivateDnsNamespaces. If you use healthCheck, you can only register IP instances to
	// this service.
	HealthCheck *HealthCheckConfig `json:"healthCheck" yaml:"healthCheck"`
	// A name for the Service.
	Name *string `json:"name" yaml:"name"`
	// The DNS type of the record that you want AWS Cloud Map to create.
	//
	// Supported record types
	// include A, AAAA, A and AAAA (A_AAAA), CNAME, and SRV.
	DnsRecordType DnsRecordType `json:"dnsRecordType" yaml:"dnsRecordType"`
	// The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record.
	DnsTtl awscdk.Duration `json:"dnsTtl" yaml:"dnsTtl"`
	// Whether or not this service will have an Elastic LoadBalancer registered to it as an AliasTargetInstance.
	//
	// Setting this to `true` correctly configures the `routingPolicy`
	// and performs some additional validation.
	LoadBalancer *bool `json:"loadBalancer" yaml:"loadBalancer"`
	// The routing policy that you want to apply to all DNS records that AWS Cloud Map creates when you register an instance and specify this service.
	RoutingPolicy RoutingPolicy `json:"routingPolicy" yaml:"routingPolicy"`
}

Service props needed to create a service in a given namespace.

Used by createService() for PrivateDnsNamespace and PublicDnsNamespace

TODO: EXAMPLE

type HealthCheckConfig

type HealthCheckConfig struct {
	// The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa.
	FailureThreshold *float64 `json:"failureThreshold" yaml:"failureThreshold"`
	// The path that you want Route 53 to request when performing health checks.
	//
	// Do not use when health check type is TCP.
	ResourcePath *string `json:"resourcePath" yaml:"resourcePath"`
	// The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy.
	//
	// Cannot be modified once created. Supported values are HTTP, HTTPS, and TCP.
	Type HealthCheckType `json:"type" yaml:"type"`
}

Settings for an optional Amazon Route 53 health check.

If you specify settings for a health check, AWS Cloud Map associates the health check with all the records that you specify in DnsConfig. Only valid with a PublicDnsNamespace.

TODO: EXAMPLE

type HealthCheckCustomConfig

type HealthCheckCustomConfig struct {
	// The number of 30-second intervals that you want Cloud Map to wait after receiving an UpdateInstanceCustomHealthStatus request before it changes the health status of a service instance.
	FailureThreshold *float64 `json:"failureThreshold" yaml:"failureThreshold"`
}

Specifies information about an optional custom health check.

TODO: EXAMPLE

type HealthCheckType

type HealthCheckType string
const (
	HealthCheckType_HTTP  HealthCheckType = "HTTP"
	HealthCheckType_HTTPS HealthCheckType = "HTTPS"
	HealthCheckType_TCP   HealthCheckType = "TCP"
)

type HttpNamespace

type HttpNamespace interface {
	awscdk.Resource
	IHttpNamespace
	Env() *awscdk.ResourceEnvironment
	HttpNamespaceArn() *string
	HttpNamespaceId() *string
	HttpNamespaceName() *string
	NamespaceArn() *string
	NamespaceId() *string
	NamespaceName() *string
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	Type() NamespaceType
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	CreateService(id *string, props *BaseServiceProps) Service
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Define an HTTP Namespace.

TODO: EXAMPLE

func NewHttpNamespace

func NewHttpNamespace(scope constructs.Construct, id *string, props *HttpNamespaceProps) HttpNamespace

type HttpNamespaceAttributes

type HttpNamespaceAttributes struct {
	// Namespace ARN for the Namespace.
	NamespaceArn *string `json:"namespaceArn" yaml:"namespaceArn"`
	// Namespace Id for the Namespace.
	NamespaceId *string `json:"namespaceId" yaml:"namespaceId"`
	// A name for the Namespace.
	NamespaceName *string `json:"namespaceName" yaml:"namespaceName"`
}

TODO: EXAMPLE

type HttpNamespaceProps

type HttpNamespaceProps struct {
	// A name for the Namespace.
	Name *string `json:"name" yaml:"name"`
	// A description of the Namespace.
	Description *string `json:"description" yaml:"description"`
}

TODO: EXAMPLE

type IHttpNamespace

type IHttpNamespace interface {
	INamespace
}

func HttpNamespace_FromHttpNamespaceAttributes

func HttpNamespace_FromHttpNamespaceAttributes(scope constructs.Construct, id *string, attrs *HttpNamespaceAttributes) IHttpNamespace

type IInstance

type IInstance interface {
	awscdk.IResource
	// The id of the instance resource.
	InstanceId() *string
	// The Cloudmap service this resource is registered to.
	Service() IService
}

type INamespace

type INamespace interface {
	awscdk.IResource
	// Namespace ARN for the Namespace.
	NamespaceArn() *string
	// Namespace Id for the Namespace.
	NamespaceId() *string
	// A name for the Namespace.
	NamespaceName() *string
	// Type of Namespace.
	Type() NamespaceType
}

type IPrivateDnsNamespace

type IPrivateDnsNamespace interface {
	INamespace
}

func PrivateDnsNamespace_FromPrivateDnsNamespaceAttributes

func PrivateDnsNamespace_FromPrivateDnsNamespaceAttributes(scope constructs.Construct, id *string, attrs *PrivateDnsNamespaceAttributes) IPrivateDnsNamespace

type IPublicDnsNamespace

type IPublicDnsNamespace interface {
	INamespace
}

func PublicDnsNamespace_FromPublicDnsNamespaceAttributes

func PublicDnsNamespace_FromPublicDnsNamespaceAttributes(scope constructs.Construct, id *string, attrs *PublicDnsNamespaceAttributes) IPublicDnsNamespace

type IService

type IService interface {
	awscdk.IResource
	// The DnsRecordType used by the service.
	DnsRecordType() DnsRecordType
	// The namespace for the Cloudmap Service.
	Namespace() INamespace
	// The Routing Policy used by the service.
	RoutingPolicy() RoutingPolicy
	// The Arn of the namespace that you want to use for DNS configuration.
	ServiceArn() *string
	// The ID of the namespace that you want to use for DNS configuration.
	ServiceId() *string
	// A name for the Cloudmap Service.
	ServiceName() *string
}

func Service_FromServiceAttributes

func Service_FromServiceAttributes(scope constructs.Construct, id *string, attrs *ServiceAttributes) IService

type InstanceBase

type InstanceBase interface {
	awscdk.Resource
	IInstance
	Env() *awscdk.ResourceEnvironment
	InstanceId() *string
	Node() constructs.Node
	PhysicalName() *string
	Service() IService
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
	UniqueInstanceId() *string
}

type IpInstance

type IpInstance interface {
	InstanceBase
	Env() *awscdk.ResourceEnvironment
	InstanceId() *string
	Ipv4() *string
	Ipv6() *string
	Node() constructs.Node
	PhysicalName() *string
	Port() *float64
	Service() IService
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
	UniqueInstanceId() *string
}

Instance that is accessible using an IP address.

TODO: EXAMPLE

func NewIpInstance

func NewIpInstance(scope constructs.Construct, id *string, props *IpInstanceProps) IpInstance

type IpInstanceBaseProps

type IpInstanceBaseProps struct {
	// Custom attributes of the instance.
	CustomAttributes *map[string]*string `json:"customAttributes" yaml:"customAttributes"`
	// The id of the instance resource.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// If the service that you specify contains a template for an A record, the IPv4 address that you want AWS Cloud Map to use for the value of the A record.
	Ipv4 *string `json:"ipv4" yaml:"ipv4"`
	// If the service that you specify contains a template for an AAAA record, the IPv6 address that you want AWS Cloud Map to use for the value of the AAAA record.
	Ipv6 *string `json:"ipv6" yaml:"ipv6"`
	// The port on the endpoint that you want AWS Cloud Map to perform health checks on.
	//
	// This value is also used for
	// the port value in an SRV record if the service that you specify includes an SRV record. You can also specify a
	// default port that is applied to all instances in the Service configuration.
	Port *float64 `json:"port" yaml:"port"`
}

TODO: EXAMPLE

type IpInstanceProps

type IpInstanceProps struct {
	// Custom attributes of the instance.
	CustomAttributes *map[string]*string `json:"customAttributes" yaml:"customAttributes"`
	// The id of the instance resource.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// If the service that you specify contains a template for an A record, the IPv4 address that you want AWS Cloud Map to use for the value of the A record.
	Ipv4 *string `json:"ipv4" yaml:"ipv4"`
	// If the service that you specify contains a template for an AAAA record, the IPv6 address that you want AWS Cloud Map to use for the value of the AAAA record.
	Ipv6 *string `json:"ipv6" yaml:"ipv6"`
	// The port on the endpoint that you want AWS Cloud Map to perform health checks on.
	//
	// This value is also used for
	// the port value in an SRV record if the service that you specify includes an SRV record. You can also specify a
	// default port that is applied to all instances in the Service configuration.
	Port *float64 `json:"port" yaml:"port"`
	// The Cloudmap service this resource is registered to.
	Service IService `json:"service" yaml:"service"`
}

TODO: EXAMPLE

type NamespaceType

type NamespaceType string
const (
	NamespaceType_HTTP        NamespaceType = "HTTP"
	NamespaceType_DNS_PRIVATE NamespaceType = "DNS_PRIVATE"
	NamespaceType_DNS_PUBLIC  NamespaceType = "DNS_PUBLIC"
)

type NonIpInstance

type NonIpInstance interface {
	InstanceBase
	Env() *awscdk.ResourceEnvironment
	InstanceId() *string
	Node() constructs.Node
	PhysicalName() *string
	Service() IService
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
	UniqueInstanceId() *string
}

Instance accessible using values other than an IP address or a domain name (CNAME).

Specify the other values in Custom attributes.

TODO: EXAMPLE

func NewNonIpInstance

func NewNonIpInstance(scope constructs.Construct, id *string, props *NonIpInstanceProps) NonIpInstance

type NonIpInstanceBaseProps

type NonIpInstanceBaseProps struct {
	// Custom attributes of the instance.
	CustomAttributes *map[string]*string `json:"customAttributes" yaml:"customAttributes"`
	// The id of the instance resource.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
}

TODO: EXAMPLE

type NonIpInstanceProps

type NonIpInstanceProps struct {
	// Custom attributes of the instance.
	CustomAttributes *map[string]*string `json:"customAttributes" yaml:"customAttributes"`
	// The id of the instance resource.
	InstanceId *string `json:"instanceId" yaml:"instanceId"`
	// The Cloudmap service this resource is registered to.
	Service IService `json:"service" yaml:"service"`
}

TODO: EXAMPLE

type PrivateDnsNamespace

type PrivateDnsNamespace interface {
	awscdk.Resource
	IPrivateDnsNamespace
	Env() *awscdk.ResourceEnvironment
	NamespaceArn() *string
	NamespaceId() *string
	NamespaceName() *string
	Node() constructs.Node
	PhysicalName() *string
	PrivateDnsNamespaceArn() *string
	PrivateDnsNamespaceId() *string
	PrivateDnsNamespaceName() *string
	Stack() awscdk.Stack
	Type() NamespaceType
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	CreateService(id *string, props *DnsServiceProps) Service
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Define a Service Discovery HTTP Namespace.

TODO: EXAMPLE

func NewPrivateDnsNamespace

func NewPrivateDnsNamespace(scope constructs.Construct, id *string, props *PrivateDnsNamespaceProps) PrivateDnsNamespace

type PrivateDnsNamespaceAttributes

type PrivateDnsNamespaceAttributes struct {
	// Namespace ARN for the Namespace.
	NamespaceArn *string `json:"namespaceArn" yaml:"namespaceArn"`
	// Namespace Id for the Namespace.
	NamespaceId *string `json:"namespaceId" yaml:"namespaceId"`
	// A name for the Namespace.
	NamespaceName *string `json:"namespaceName" yaml:"namespaceName"`
}

TODO: EXAMPLE

type PrivateDnsNamespaceProps

type PrivateDnsNamespaceProps struct {
	// A name for the Namespace.
	Name *string `json:"name" yaml:"name"`
	// A description of the Namespace.
	Description *string `json:"description" yaml:"description"`
	// The Amazon VPC that you want to associate the namespace with.
	Vpc awsec2.IVpc `json:"vpc" yaml:"vpc"`
}

TODO: EXAMPLE

type PublicDnsNamespace

type PublicDnsNamespace interface {
	awscdk.Resource
	IPublicDnsNamespace
	Env() *awscdk.ResourceEnvironment
	NamespaceArn() *string
	NamespaceId() *string
	NamespaceName() *string
	Node() constructs.Node
	PhysicalName() *string
	PublicDnsNamespaceArn() *string
	PublicDnsNamespaceId() *string
	PublicDnsNamespaceName() *string
	Stack() awscdk.Stack
	Type() NamespaceType
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	CreateService(id *string, props *DnsServiceProps) Service
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Define a Public DNS Namespace.

TODO: EXAMPLE

func NewPublicDnsNamespace

func NewPublicDnsNamespace(scope constructs.Construct, id *string, props *PublicDnsNamespaceProps) PublicDnsNamespace

type PublicDnsNamespaceAttributes

type PublicDnsNamespaceAttributes struct {
	// Namespace ARN for the Namespace.
	NamespaceArn *string `json:"namespaceArn" yaml:"namespaceArn"`
	// Namespace Id for the Namespace.
	NamespaceId *string `json:"namespaceId" yaml:"namespaceId"`
	// A name for the Namespace.
	NamespaceName *string `json:"namespaceName" yaml:"namespaceName"`
}

TODO: EXAMPLE

type PublicDnsNamespaceProps

type PublicDnsNamespaceProps struct {
	// A name for the Namespace.
	Name *string `json:"name" yaml:"name"`
	// A description of the Namespace.
	Description *string `json:"description" yaml:"description"`
}

TODO: EXAMPLE

type RoutingPolicy

type RoutingPolicy string
const (
	RoutingPolicy_WEIGHTED   RoutingPolicy = "WEIGHTED"
	RoutingPolicy_MULTIVALUE RoutingPolicy = "MULTIVALUE"
)

type Service

type Service interface {
	awscdk.Resource
	IService
	DnsRecordType() DnsRecordType
	Env() *awscdk.ResourceEnvironment
	Namespace() INamespace
	Node() constructs.Node
	PhysicalName() *string
	RoutingPolicy() RoutingPolicy
	ServiceArn() *string
	ServiceId() *string
	ServiceName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	RegisterCnameInstance(id *string, props *CnameInstanceBaseProps) IInstance
	RegisterIpInstance(id *string, props *IpInstanceBaseProps) IInstance
	RegisterLoadBalancer(id *string, loadBalancer awselasticloadbalancingv2.ILoadBalancerV2, customAttributes *map[string]*string) IInstance
	RegisterNonIpInstance(id *string, props *NonIpInstanceBaseProps) IInstance
	ToString() *string
}

Define a CloudMap Service.

TODO: EXAMPLE

func NewService

func NewService(scope constructs.Construct, id *string, props *ServiceProps) Service

type ServiceAttributes

type ServiceAttributes struct {
	DnsRecordType DnsRecordType `json:"dnsRecordType" yaml:"dnsRecordType"`
	Namespace     INamespace    `json:"namespace" yaml:"namespace"`
	RoutingPolicy RoutingPolicy `json:"routingPolicy" yaml:"routingPolicy"`
	ServiceArn    *string       `json:"serviceArn" yaml:"serviceArn"`
	ServiceId     *string       `json:"serviceId" yaml:"serviceId"`
	ServiceName   *string       `json:"serviceName" yaml:"serviceName"`
}

TODO: EXAMPLE

type ServiceProps

type ServiceProps struct {
	// Structure containing failure threshold for a custom health checker.
	//
	// Only one of healthCheckConfig or healthCheckCustomConfig can be specified.
	// See: https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html
	CustomHealthCheck *HealthCheckCustomConfig `json:"customHealthCheck" yaml:"customHealthCheck"`
	// A description of the service.
	Description *string `json:"description" yaml:"description"`
	// Settings for an optional health check.
	//
	// If you specify health check settings, AWS Cloud Map associates the health
	// check with the records that you specify in DnsConfig. Only one of healthCheckConfig or healthCheckCustomConfig can
	// be specified. Not valid for PrivateDnsNamespaces. If you use healthCheck, you can only register IP instances to
	// this service.
	HealthCheck *HealthCheckConfig `json:"healthCheck" yaml:"healthCheck"`
	// A name for the Service.
	Name *string `json:"name" yaml:"name"`
	// The DNS type of the record that you want AWS Cloud Map to create.
	//
	// Supported record types
	// include A, AAAA, A and AAAA (A_AAAA), CNAME, and SRV.
	DnsRecordType DnsRecordType `json:"dnsRecordType" yaml:"dnsRecordType"`
	// The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record.
	DnsTtl awscdk.Duration `json:"dnsTtl" yaml:"dnsTtl"`
	// Whether or not this service will have an Elastic LoadBalancer registered to it as an AliasTargetInstance.
	//
	// Setting this to `true` correctly configures the `routingPolicy`
	// and performs some additional validation.
	LoadBalancer *bool `json:"loadBalancer" yaml:"loadBalancer"`
	// The routing policy that you want to apply to all DNS records that AWS Cloud Map creates when you register an instance and specify this service.
	RoutingPolicy RoutingPolicy `json:"routingPolicy" yaml:"routingPolicy"`
	// The namespace that you want to use for DNS configuration.
	Namespace INamespace `json:"namespace" yaml:"namespace"`
}

TODO: EXAMPLE

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL