ServiceDiscovery

public struct ServiceDiscovery

Client object for interacting with AWS ServiceDiscovery service.

AWS Cloud Map lets you configure public DNS, private DNS, or HTTP namespaces that your microservice applications run in. When an instance of the service becomes available, you can call the AWS Cloud Map API to register the instance with AWS Cloud Map. For public or private DNS namespaces, AWS Cloud Map automatically creates DNS records and an optional health check. Clients that submit public or private DNS queries, or HTTP requests, for the service receive an answer that contains up to eight healthy records.

  • Initialize the ServiceDiscovery client

    Declaration

    Swift

    public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, sessionToken: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil, middlewares: [AWSServiceMiddleware] = [], eventLoopGroupProvider: AWSClient.EventLoopGroupProvider = .useAWSClientShared)

    Parameters

    accessKeyId

    Public access key provided by AWS

    secretAccessKey

    Private access key provided by AWS

    sessionToken

    Token provided by STS.AssumeRole() which allows access to another AWS account

    region

    Region of server you want to communicate with

    endpoint

    Custom endpoint URL to use instead of standard AWS servers

    middlewares

    Array of middlewares to apply to requests and responses

    eventLoopGroupProvider

    EventLoopGroup to use. Use useAWSClientShared if the client shall manage its own EventLoopGroup.

  • Creates 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 in the AWS Cloud Map Developer Guide.

    Declaration

    Swift

    public func createHttpNamespace(_ input: CreateHttpNamespaceRequest) -> EventLoopFuture<CreateHttpNamespaceResponse>
  • Creates a private namespace based on DNS, which will be 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 will be backend.example.com. For the current quota on the number of namespaces that you can create using the same AWS account, see AWS Cloud Map Limits in the AWS Cloud Map Developer Guide.

    Declaration

    Swift

    public func createPrivateDnsNamespace(_ input: CreatePrivateDnsNamespaceRequest) -> EventLoopFuture<CreatePrivateDnsNamespaceResponse>
  • Creates a public namespace based on DNS, which will be 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 will be backend.example.com. For the current quota on the number of namespaces that you can create using the same AWS account, see AWS Cloud Map Limits in the AWS Cloud Map Developer Guide.

    Declaration

    Swift

    public func createPublicDnsNamespace(_ input: CreatePublicDnsNamespaceRequest) -> EventLoopFuture<CreatePublicDnsNamespaceResponse>
  • Creates a service, which defines the configuration for 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 After you create the service, you can submit a RegisterInstance request, and AWS Cloud Map uses the values in the configuration to create the specified entities. For the current quota on the number of instances that you can register using the same namespace and using the same service, see AWS Cloud Map Limits in the AWS Cloud Map Developer Guide.

    Declaration

    Swift

    public func createService(_ input: CreateServiceRequest) -> EventLoopFuture<CreateServiceResponse>
  • Deletes a namespace from the current account. If the namespace still contains one or more services, the request fails.

    Declaration

    Swift

    public func deleteNamespace(_ input: DeleteNamespaceRequest) -> EventLoopFuture<DeleteNamespaceResponse>
  • Deletes a specified service. If the service still contains one or more registered instances, the request fails.

    Declaration

    Swift

    public func deleteService(_ input: DeleteServiceRequest) -> EventLoopFuture<DeleteServiceResponse>
  • Deletes the Amazon Route 53 DNS records and health check, if any, that AWS Cloud Map created for the specified instance.

    Declaration

    Swift

    public func deregisterInstance(_ input: DeregisterInstanceRequest) -> EventLoopFuture<DeregisterInstanceResponse>
  • Discovers registered instances for a specified namespace and service. You can use DiscoverInstances to discover instances for any type of namespace. For public and private DNS namespaces, you can also use DNS queries to discover instances.

    Declaration

    Swift

    public func discoverInstances(_ input: DiscoverInstancesRequest) -> EventLoopFuture<DiscoverInstancesResponse>
  • Gets information about a specified instance.

    Declaration

    Swift

    public func getInstance(_ input: GetInstanceRequest) -> EventLoopFuture<GetInstanceResponse>
  • Gets the current health status (Healthy, Unhealthy, or Unknown) of one or more instances that are associated with a specified service. There is a brief delay between when you register an instance and when the health status for the instance is available.

    Declaration

    Swift

    public func getInstancesHealthStatus(_ input: GetInstancesHealthStatusRequest) -> EventLoopFuture<GetInstancesHealthStatusResponse>
  • Gets information about a namespace.

    Declaration

    Swift

    public func getNamespace(_ input: GetNamespaceRequest) -> EventLoopFuture<GetNamespaceResponse>
  • Gets information about any operation that returns an operation ID in the response, such as a CreateService request. To get a list of operations that match specified criteria, see ListOperations.

    Declaration

    Swift

    public func getOperation(_ input: GetOperationRequest) -> EventLoopFuture<GetOperationResponse>
  • Gets the settings for a specified service.

    Declaration

    Swift

    public func getService(_ input: GetServiceRequest) -> EventLoopFuture<GetServiceResponse>
  • Lists summary information about the instances that you registered by using a specified service.

    Declaration

    Swift

    public func listInstances(_ input: ListInstancesRequest) -> EventLoopFuture<ListInstancesResponse>
  • Lists summary information about the namespaces that were created by the current AWS account.

    Declaration

    Swift

    public func listNamespaces(_ input: ListNamespacesRequest) -> EventLoopFuture<ListNamespacesResponse>
  • Lists operations that match the criteria that you specify.

    Declaration

    Swift

    public func listOperations(_ input: ListOperationsRequest) -> EventLoopFuture<ListOperationsResponse>
  • Lists summary information for all the services that are associated with one or more specified namespaces.

    Declaration

    Swift

    public func listServices(_ input: ListServicesRequest) -> EventLoopFuture<ListServicesResponse>
  • Lists tags for the specified resource.

    Declaration

    Swift

    public func listTagsForResource(_ input: ListTagsForResourceRequest) -> EventLoopFuture<ListTagsForResourceResponse>
  • Creates or updates one or more records and, optionally, creates a health check based on the settings in a specified service. When you submit a RegisterInstance request, the following occurs: For each DNS record that you define in the service that is specified by ServiceId, a record is created or updated in the hosted zone that is associated with the corresponding namespace. If the service includes HealthCheckConfig, a health check is created based on the settings in the health check configuration. The health check, if any, is associated with each of the new or updated records. One RegisterInstance request must complete before you can submit another request and specify the same service ID and instance ID. For more information, see CreateService. When AWS Cloud Map receives a DNS query for the specified DNS name, it returns the applicable value: If the health check is healthy: returns all the records If the health check is unhealthy: returns the applicable value for the last healthy instance If you didn’t specify a health check configuration: returns all the records For the current quota on the number of instances that you can register using the same namespace and using the same service, see AWS Cloud Map Limits in the AWS Cloud Map Developer Guide.

    Declaration

    Swift

    public func registerInstance(_ input: RegisterInstanceRequest) -> EventLoopFuture<RegisterInstanceResponse>
  • Adds one or more tags to the specified resource.

    Declaration

    Swift

    public func tagResource(_ input: TagResourceRequest) -> EventLoopFuture<TagResourceResponse>
  • Removes one or more tags from the specified resource.

    Declaration

    Swift

    public func untagResource(_ input: UntagResourceRequest) -> EventLoopFuture<UntagResourceResponse>
  • Submits a request to change the health status of a custom health check to healthy or unhealthy. You can use UpdateInstanceCustomHealthStatus to change the status only for custom health checks, which you define using HealthCheckCustomConfig when you create a service. You can’t use it to change the status for Route 53 health checks, which you define using HealthCheckConfig. For more information, see HealthCheckCustomConfig.

    Declaration

    Swift

    @discardableResult
    public func updateInstanceCustomHealthStatus(_ input: UpdateInstanceCustomHealthStatusRequest) -> EventLoopFuture<Void>
  • Submits a request to perform the following operations: Update the TTL setting for existing DnsRecords configurations Add, update, or delete HealthCheckConfig for a specified service You can’t add, update, or delete a HealthCheckCustomConfig configuration. For public and private DNS namespaces, note the following: If you omit any existing DnsRecords or HealthCheckConfig configurations from an UpdateService request, the configurations are deleted from the service. If you omit an existing HealthCheckCustomConfig configuration from an UpdateService request, the configuration is not deleted from the service. When you update settings for a service, AWS Cloud Map also updates the corresponding settings in all the records and health checks that were created by using the specified service.

    Declaration

    Swift

    public func updateService(_ input: UpdateServiceRequest) -> EventLoopFuture<UpdateServiceResponse>
  • Undocumented

    See more

    Declaration

    Swift

    public enum CustomHealthStatus : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum FilterCondition : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum HealthCheckType : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum HealthStatus : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum HealthStatusFilter : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum NamespaceFilterName : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum NamespaceType : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum OperationFilterName : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum OperationStatus : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum OperationTargetType : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum OperationType : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum RecordType : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum RoutingPolicy : String, CustomStringConvertible, Codable
  • Undocumented

    See more

    Declaration

    Swift

    public enum ServiceFilterName : String, CustomStringConvertible, Codable