export interface Tag {
    /** The key identifier, or name, of the tag. */
    Key: string;
    /** The string value that's associated with the key of the tag. You can set the value of a tag to an empty string, but you can't set the value of a tag to null. */
    Value: string;
}
export interface PrivateDnsPropertiesMutable {
    /** Fields for the Start of Authority (SOA) record for the hosted zone for the private DNS namespace. */
    SOA: any;
}
export interface PrivateDnsNamespaceProperties {
    /** DNS properties for the private DNS namespace. */
    DnsProperties: PrivateDnsPropertiesMutable;
}
export interface PublicDnsPropertiesMutable {
    /** Start of Authority (SOA) record for the hosted zone for the public DNS namespace. */
    SOA: any;
}
export interface PublicDnsNamespaceProperties {
    /** DNS properties for the public DNS namespace. */
    DnsProperties: PublicDnsPropertiesMutable;
}
export interface DnsConfig {
    /** Use NamespaceId in Service instead. The ID of the namespace to use for DNS configuration. */
    NamespaceId?: string;
    /** The routing policy that you want to apply to all Route 53 DNS records that Cloud Map creates when you register an instance and specify this service. If you want to use this service to register instanc */
    RoutingPolicy?: 'MULTIVALUE' | 'WEIGHTED';
    /** An array that contains one DnsRecord object for each Route 53 DNS record that you want Cloud Map to create when you register an instance. The record type of a service specified in a DnsRecord object c */
    DnsRecords: any[];
}
export interface HealthCheckConfig {
    /** 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 cr */
    Type: 'HTTP' | 'HTTPS' | 'TCP';
    /** 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 healt */
    ResourcePath?: string;
    /** 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 informa */
    FailureThreshold?: number;
}
export interface HealthCheckCustomConfig {
    /** This parameter is no longer supported and is always set to 1. Cloud Map waits for approximately 30 seconds after receiving an UpdateInstanceCustomHealthStatus request before changing the status of the */
    FailureThreshold?: number;
}
export interface NamespaceFilter {
    /** Specify the namespaces that you want to get using one of the following. TYPE: Gets the namespaces of the specified type. NAME: Gets the namespaces with the specified name. HTTP_NAME: Gets the namespac */
    Name: 'TYPE' | 'NAME' | 'HTTP_NAME' | 'RESOURCE_OWNER';
    /** Specify the values that are applicable to the value that you specify for Name. TYPE: Specify HTTP, DNS_PUBLIC, or DNS_PRIVATE. NAME: Specify the name of the namespace, which is found in Namespace.Name */
    Values: any[];
    /** Specify the operator that you want to use to determine whether a namespace matches the specified value. Valid values for Condition are one of the following. EQ: When you specify EQ for Condition, you  */
    Condition?: 'EQ' | 'IN' | 'BETWEEN' | 'BEGINS_WITH';
}
export interface OperationFilter {
    /** Specify the operations that you want to get: NAMESPACE_ID: Gets operations related to specified namespaces. SERVICE_ID: Gets operations related to specified services. STATUS: Gets operations based on  */
    Name: 'NAMESPACE_ID' | 'SERVICE_ID' | 'STATUS' | 'TYPE' | 'UPDATE_DATE';
    /** Specify values that are applicable to the value that you specify for Name: NAMESPACE_ID: Specify one namespace ID. SERVICE_ID: Specify one service ID. STATUS: Specify one or more statuses: SUBMITTED,  */
    Values: any[];
    /** The operator that you want to use to determine whether an operation matches the specified value. Valid values for condition include: EQ: When you specify EQ for the condition, you can specify only one */
    Condition?: 'EQ' | 'IN' | 'BETWEEN' | 'BEGINS_WITH';
}
export interface ServiceFilter {
    /** Specify the services that you want to get using one of the following. NAMESPACE_ID: Gets the services associated with the specified namespace. RESOURCE_OWNER: Gets the services associated with the nam */
    Name: 'NAMESPACE_ID' | 'RESOURCE_OWNER';
    /** The values that are applicable to the value that you specify for Condition to filter the list of services. NAMESPACE_ID: Specify one namespace ID or ARN. Specify the namespace ARN for namespaces that  */
    Values: any[];
    /** The operator that you want to use to determine whether a service is returned by ListServices. Valid values for Condition include the following: EQ: When you specify EQ, specify one value. EQ is the de */
    Condition?: 'EQ' | 'IN' | 'BETWEEN' | 'BEGINS_WITH';
}
export interface HttpNamespaceChange {
    /** An updated description for the HTTP namespace. */
    Description: string;
}
export interface PrivateDnsNamespacePropertiesChange {
    /** Updated DNS properties for the private DNS namespace. */
    DnsProperties: any;
}
export interface PrivateDnsNamespaceChange {
    /** An updated description for the private DNS namespace. */
    Description?: string;
    /** Properties to be updated in the private DNS namespace. */
    Properties?: PrivateDnsNamespacePropertiesChange;
}
export interface PublicDnsNamespacePropertiesChange {
    /** Updated DNS properties for the hosted zone for the public DNS namespace. */
    DnsProperties: any;
}
export interface PublicDnsNamespaceChange {
    /** An updated description for the public DNS namespace. */
    Description?: string;
    /** Properties to be updated in the public DNS namespace. */
    Properties?: PublicDnsNamespacePropertiesChange;
}
export interface DnsConfigChange {
    /** An array that contains one DnsRecord object for each Route 53 record that you want Cloud Map to create when you register an instance. */
    DnsRecords: any[];
}
export interface ServiceChange {
    /** A description for the service. */
    Description?: string;
    /** Information about the Route 53 DNS records that you want Cloud Map to create when you register an instance. */
    DnsConfig?: DnsConfigChange;
    /** Public DNS and HTTP namespaces only. Settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in DnsCo */
    HealthCheckConfig?: HealthCheckConfig;
}
export interface CreateHttpNamespaceInput {
    /** The name that you want to assign to this namespace. */
    Name: string;
    /** A unique string that identifies the request and that allows failed CreateHttpNamespace requests to be retried without the risk of running the operation twice. CreatorRequestId can be any unique string */
    CreatorRequestId?: string;
    /** A description for the namespace. */
    Description?: string;
    /** The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in lengt */
    Tags?: Tag[];
}
export interface CreatePrivateDnsNamespaceInput {
    /** The name that you want to assign to this namespace. When you create a private DNS namespace, Cloud Map automatically creates an Amazon Route 53 private hosted zone that has the same name as the namesp */
    Name: string;
    /** The ID of the Amazon VPC that you want to associate the namespace with. */
    Vpc: string;
    /** A unique string that identifies the request and that allows failed CreatePrivateDnsNamespace requests to be retried without the risk of running the operation twice. CreatorRequestId can be any unique  */
    CreatorRequestId?: string;
    /** A description for the namespace. */
    Description?: string;
    /** Properties for the private DNS namespace. */
    Properties?: PrivateDnsNamespaceProperties;
    /** The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in lengt */
    Tags?: Tag[];
}
export interface CreatePublicDnsNamespaceInput {
    /** The name that you want to assign to this namespace. Do not include sensitive information in the name. The name is publicly available using DNS queries. */
    Name: string;
    /** A unique string that identifies the request and that allows failed CreatePublicDnsNamespace requests to be retried without the risk of running the operation twice. CreatorRequestId can be any unique s */
    CreatorRequestId?: string;
    /** A description for the namespace. */
    Description?: string;
    /** Properties for the public DNS namespace. */
    Properties?: PublicDnsNamespaceProperties;
    /** The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in lengt */
    Tags?: Tag[];
}
export interface CreateServiceInput {
    /** The name that you want to assign to the service. Do not include sensitive information in the name if the namespace is discoverable by public DNS queries. If you want Cloud Map to create an SRV record  */
    Name: string;
    /** A unique string that identifies the request and that allows failed CreateService requests to be retried without the risk of running the operation twice. CreatorRequestId can be any unique string (for  */
    CreatorRequestId?: string;
    /** A description for the service. */
    Description?: string;
    /** A complex type that contains information about the Amazon Route 53 records that you want Cloud Map to create when you register an instance. */
    DnsConfig?: DnsConfig;
    /** Public DNS and HTTP namespaces only. A complex type that contains settings for an optional Route 53 health check. If you specify settings for a health check, Cloud Map associates the health check with */
    HealthCheckConfig?: 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 */
    HealthCheckCustomConfig?: HealthCheckCustomConfig;
    /** The ID or Amazon Resource Name (ARN) of the namespace that you want to use to create the service. For namespaces shared with your Amazon Web Services account, specify the namespace ARN. For more infor */
    NamespaceId?: string;
    /** The tags to add to the service. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length. */
    Tags?: Tag[];
    /** 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?: 'HTTP';
}
export interface DeleteNamespaceInput {
    /** The ID or Amazon Resource Name (ARN) of the namespace that you want to delete. */
    Id: string;
}
export interface DeleteServiceInput {
    /** The ID or Amazon Resource Name (ARN) of the service that you want to delete. If the namespace associated with the service is shared with your Amazon Web Services account, specify the service ARN. For  */
    Id: string;
}
export interface DeleteServiceAttributesInput {
    /** A list of keys corresponding to each attribute that you want to delete. */
    Attributes: string[];
    /** The ID or Amazon Resource Name (ARN) of the service from which the attributes will be deleted. For services created in a namespace shared with your Amazon Web Services account, specify the service ARN */
    ServiceId: string;
}
export interface DeregisterInstanceInput {
    /** The value that you specified for Id in the RegisterInstance request. */
    InstanceId: string;
    /** The ID or Amazon Resource Name (ARN) of the service that the instance is associated with. If the namespace associated with the service is shared with your account, specify the service ARN. For more in */
    ServiceId: string;
}
export interface DiscoverInstancesInput {
    /** The HttpName name of the namespace. The HttpName is found in the HttpProperties member of the Properties member of the namespace. In most cases, Name and HttpName match. However, if you reuse Name for */
    NamespaceName: string;
    /** The name of the service that you specified when you registered the instance. */
    ServiceName: string;
    /** The health status of the instances that you want to discover. This parameter is ignored for services that don't have a health check configured, and all instances are returned. HEALTHY Returns healthy  */
    HealthStatus?: 'HEALTHY' | 'UNHEALTHY' | 'ALL' | 'HEALTHY_OR_ELSE_ALL';
    /** The maximum number of instances that you want Cloud Map to return in the response to a DiscoverInstances request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 instances. */
    MaxResults?: number;
    /** Opportunistic filters to scope the results based on custom attributes. If there are instances that match both the filters specified in both the QueryParameters parameter and this parameter, all of the */
    OptionalParameters?: Record<string, string>;
    /** The ID of the Amazon Web Services account that owns the namespace associated with the instance, as specified in the namespace ResourceOwner field. For instances associated with namespaces that are sha */
    OwnerAccount?: string;
    /** Filters to scope the results based on custom attributes for the instance (for example, {version=v1, az=1a}). Only instances that match all the specified key-value pairs are returned. */
    QueryParameters?: Record<string, string>;
}
export interface DiscoverInstancesRevisionInput {
    /** The HttpName name of the namespace. The HttpName is found in the HttpProperties member of the Properties member of the namespace. */
    NamespaceName: string;
    /** The name of the service that you specified when you registered the instance. */
    ServiceName: string;
    /** The ID of the Amazon Web Services account that owns the namespace associated with the instance, as specified in the namespace ResourceOwner field. For instances associated with namespaces that are sha */
    OwnerAccount?: string;
}
export interface GetInstanceInput {
    /** The ID of the instance that you want to get information about. */
    InstanceId: string;
    /** The ID or Amazon Resource Name (ARN) of the service that the instance is associated with. For services created in a shared namespace, specify the service ARN. For more information about shared namespa */
    ServiceId: string;
}
export interface GetInstancesHealthStatusInput {
    /** The ID or Amazon Resource Name (ARN) of the service that the instance is associated with. For services created in a shared namespace, specify the service ARN. For more information about shared namespa */
    ServiceId: string;
    /** An array that contains the IDs of all the instances that you want to get the health status for. If you omit Instances, Cloud Map returns the health status for all the instances that are associated wit */
    Instances?: string[];
    /** The maximum number of instances that you want Cloud Map to return in the response to a GetInstancesHealthStatus request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 instan */
    MaxResults?: number;
    /** For the first GetInstancesHealthStatus request, omit this value. If more than MaxResults instances match the specified criteria, you can submit another GetInstancesHealthStatus request to get the next */
    NextToken?: string;
}
export interface GetNamespaceInput {
    /** The ID or Amazon Resource Name (ARN) of the namespace that you want to get information about. For namespaces shared with your Amazon Web Services account, specify the namespace ARN. For more informati */
    Id: string;
}
export interface GetOperationInput {
    /** The ID of the operation that you want to get more information about. */
    OperationId: string;
    /** The ID of the Amazon Web Services account that owns the namespace associated with the operation, as specified in the namespace ResourceOwner field. For operations associated with namespaces that are s */
    OwnerAccount?: string;
}
export interface GetServiceInput {
    /** The ID or Amazon Resource Name (ARN) of the service that you want to get settings for. For services created by consumers in a shared namespace, specify the service ARN. For more information about shar */
    Id: string;
}
export interface GetServiceAttributesInput {
    /** The ID or Amazon Resource Name (ARN) of the service that you want to get attributes for. For services created in a namespace shared with your Amazon Web Services account, specify the service ARN. For  */
    ServiceId: string;
}
export interface ListInstancesInput {
    /** The ID or Amazon Resource Name (ARN) of the service that you want to list instances for. For services created in a shared namespace, specify the service ARN. For more information about shared namespac */
    ServiceId: string;
    /** The maximum number of instances that you want Cloud Map to return in the response to a ListInstances request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 instances. */
    MaxResults?: number;
    /** For the first ListInstances request, omit this value. If more than MaxResults instances match the specified criteria, you can submit another ListInstances request to get the next group of results. Spe */
    NextToken?: string;
}
export interface ListNamespacesInput {
    /** A complex type that contains specifications for the namespaces that you want to list. If you specify more than one filter, a namespace must match all filters to be returned by ListNamespaces. */
    Filters?: NamespaceFilter[];
    /** The maximum number of namespaces that you want Cloud Map to return in the response to a ListNamespaces request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 namespaces. */
    MaxResults?: number;
    /** For the first ListNamespaces request, omit this value. If the response contains NextToken, submit another ListNamespaces request to get the next group of results. Specify the value of NextToken from t */
    NextToken?: string;
}
export interface ListOperationsInput {
    /** A complex type that contains specifications for the operations that you want to list, for example, operations that you started between a specified start date and end date. If you specify more than one */
    Filters?: OperationFilter[];
    /** The maximum number of items that you want Cloud Map to return in the response to a ListOperations request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 operations. */
    MaxResults?: number;
    /** For the first ListOperations request, omit this value. If the response contains NextToken, submit another ListOperations request to get the next group of results. Specify the value of NextToken from t */
    NextToken?: string;
}
export interface ListServicesInput {
    /** A complex type that contains specifications for the namespaces that you want to list services for. If you specify more than one filter, an operation must match all filters to be returned by ListServic */
    Filters?: ServiceFilter[];
    /** The maximum number of services that you want Cloud Map to return in the response to a ListServices request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 services. */
    MaxResults?: number;
    /** For the first ListServices request, omit this value. If the response contains NextToken, submit another ListServices request to get the next group of results. Specify the value of NextToken from the p */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to retrieve tags for. */
    ResourceARN: string;
}
export interface RegisterInstanceInput {
    /** 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 ap */
    Attributes: Record<string, string>;
    /** 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 automatical */
    InstanceId: string;
    /** The ID or Amazon Resource Name (ARN) of the service that you want to use for settings for the instance. For services created in a shared namespace, specify the service ARN. For more information about  */
    ServiceId: string;
    /** A unique string that identifies the request and that allows failed RegisterInstance requests to be retried without the risk of executing the operation twice. You must use a unique CreatorRequestId str */
    CreatorRequestId?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to retrieve tags for. */
    ResourceARN: string;
    /** The tags to add to the specified resource. Specifying the tag key is required. You can set the value of a tag to an empty string, but you can't set the value of a tag to null. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to retrieve tags for. */
    ResourceARN: string;
    /** The tag keys to remove from the specified resource. */
    TagKeys: string[];
}
export interface UpdateHttpNamespaceInput {
    /** The ID or Amazon Resource Name (ARN) of the namespace that you want to update. */
    Id: string;
    /** Updated properties for the the HTTP namespace. */
    Namespace: HttpNamespaceChange;
    /** A unique string that identifies the request and that allows failed UpdateHttpNamespace requests to be retried without the risk of running the operation twice. UpdaterRequestId can be any unique string */
    UpdaterRequestId?: string;
}
export interface UpdateInstanceCustomHealthStatusInput {
    /** The ID of the instance that you want to change the health status for. */
    InstanceId: string;
    /** The ID or Amazon Resource Name (ARN) of the service that includes the configuration for the custom health check that you want to change the status for. For services created in a shared namespace, spec */
    ServiceId: string;
    /** The new status of the instance, HEALTHY or UNHEALTHY. */
    Status: 'HEALTHY' | 'UNHEALTHY';
}
export interface UpdatePrivateDnsNamespaceInput {
    /** The ID or Amazon Resource Name (ARN) of the namespace that you want to update. */
    Id: string;
    /** Updated properties for the private DNS namespace. */
    Namespace: PrivateDnsNamespaceChange;
    /** A unique string that identifies the request and that allows failed UpdatePrivateDnsNamespace requests to be retried without the risk of running the operation twice. UpdaterRequestId can be any unique  */
    UpdaterRequestId?: string;
}
export interface UpdatePublicDnsNamespaceInput {
    /** The ID or Amazon Resource Name (ARN) of the namespace being updated. */
    Id: string;
    /** Updated properties for the public DNS namespace. */
    Namespace: PublicDnsNamespaceChange;
    /** A unique string that identifies the request and that allows failed UpdatePublicDnsNamespace requests to be retried without the risk of running the operation twice. UpdaterRequestId can be any unique s */
    UpdaterRequestId?: string;
}
export interface UpdateServiceInput {
    /** The ID or Amazon Resource Name (ARN) of the service that you want to update. If the namespace associated with the service is shared with your Amazon Web Services account, specify the service ARN. For  */
    Id: string;
    /** A complex type that contains the new settings for the service. You can specify a maximum of 30 attributes (key-value pairs). */
    Service: ServiceChange;
}
export interface UpdateServiceAttributesInput {
    /** A string map that contains attribute key-value pairs. */
    Attributes: Record<string, string>;
    /** The ID or Amazon Resource Name (ARN) of the service that you want to update. For services created in a namespace shared with your Amazon Web Services account, specify the service ARN. */
    ServiceId: string;
}
/** ServiceDiscovery service binding for Step Functions SDK integrations. */
export declare class ServiceDiscovery {
    constructor();
    createHttpNamespace<T>(params: CreateHttpNamespaceInput): Promise<T>;
    createPrivateDnsNamespace<T>(params: CreatePrivateDnsNamespaceInput): Promise<T>;
    createPublicDnsNamespace<T>(params: CreatePublicDnsNamespaceInput): Promise<T>;
    createService<T>(params: CreateServiceInput): Promise<T>;
    deleteNamespace<T>(params: DeleteNamespaceInput): Promise<T>;
    deleteService<T>(params: DeleteServiceInput): Promise<T>;
    deleteServiceAttributes<T>(params: DeleteServiceAttributesInput): Promise<T>;
    deregisterInstance<T>(params: DeregisterInstanceInput): Promise<T>;
    discoverInstances<T>(params: DiscoverInstancesInput): Promise<T>;
    discoverInstancesRevision<T>(params: DiscoverInstancesRevisionInput): Promise<T>;
    getInstance<T>(params: GetInstanceInput): Promise<T>;
    getInstancesHealthStatus<T>(params: GetInstancesHealthStatusInput): Promise<T>;
    getNamespace<T>(params: GetNamespaceInput): Promise<T>;
    getOperation<T>(params: GetOperationInput): Promise<T>;
    getService<T>(params: GetServiceInput): Promise<T>;
    getServiceAttributes<T>(params: GetServiceAttributesInput): Promise<T>;
    listInstances<T>(params: ListInstancesInput): Promise<T>;
    listNamespaces<T>(params: ListNamespacesInput): Promise<T>;
    listOperations<T>(params: ListOperationsInput): Promise<T>;
    listServices<T>(params: ListServicesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    registerInstance<T>(params: RegisterInstanceInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateHttpNamespace<T>(params: UpdateHttpNamespaceInput): Promise<T>;
    updateInstanceCustomHealthStatus<T>(params: UpdateInstanceCustomHealthStatusInput): Promise<T>;
    updatePrivateDnsNamespace<T>(params: UpdatePrivateDnsNamespaceInput): Promise<T>;
    updatePublicDnsNamespace<T>(params: UpdatePublicDnsNamespaceInput): Promise<T>;
    updateService<T>(params: UpdateServiceInput): Promise<T>;
    updateServiceAttributes<T>(params: UpdateServiceAttributesInput): Promise<T>;
}
//# sourceMappingURL=ServiceDiscovery.d.ts.map