export interface RuleUpdate {
    /** The ID or ARN of the rule. */
    ruleIdentifier: string;
    /** The rule match. */
    match?: any;
    /** The rule priority. A listener can't have multiple rules with the same priority. */
    priority?: number;
    /** The rule action. */
    action?: any;
}
export interface ForwardAction {
    /** The target groups. Traffic matching the rule is forwarded to the specified target groups. With forward actions, you can assign a weight that controls the prioritization and selection of each target gr */
    targetGroups: any[];
}
export interface FixedResponseAction {
    /** The HTTP response code. Only 404 and 500 status codes are supported. */
    statusCode: number;
}
export interface DnsResource {
    /** The domain name of the resource. */
    domainName?: string;
    /** The type of IP address. Dualstack is currently not supported. */
    ipAddressType?: 'IPV4' | 'IPV6' | 'DUALSTACK';
}
export interface IpResource {
    /** The IP address of the IP resource. */
    ipAddress?: string;
}
export interface ArnResource {
    /** The Amazon Resource Name (ARN) of the resource. */
    arn?: string;
}
export interface HttpMatch {
    /** The HTTP method type. */
    method?: string;
    /** The path match. */
    pathMatch?: any;
    /** The header matches. Matches incoming requests with rule based on request header value before applying rule action. */
    headerMatches?: any[];
}
export interface SharingConfig {
    /** Specifies if the service network is enabled for sharing. */
    enabled?: boolean;
}
export interface DnsOptions {
    /** The preference for which private domains have a private hosted zone created for and associated with the specified VPC. Only supported when private DNS is enabled and when the VPC endpoint type is Serv */
    privateDnsPreference?: 'VERIFIED_DOMAINS_ONLY' | 'ALL_DOMAINS' | 'VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS' | 'SPECIFIED_DOMAINS_ONLY';
    /** Indicates which of the private domains to create private hosted zones for and associate with the specified VPC. Only supported when private DNS is enabled and the private DNS preference is VERIFIED_DO */
    privateDnsSpecifiedDomains?: string[];
}
export interface HealthCheckConfig {
    /** Indicates whether health checking is enabled. */
    enabled?: boolean;
    /** The protocol used when performing health checks on targets. The possible protocols are HTTP and HTTPS. The default is HTTP. */
    protocol?: 'HTTP' | 'HTTPS' | 'TCP';
    /** The protocol version used when performing health checks on targets. The possible protocol versions are HTTP1 and HTTP2. */
    protocolVersion?: 'HTTP1' | 'HTTP2';
    /** The port used when performing health checks on targets. The default setting is the port that a target receives traffic on. */
    port?: number;
    /** The destination for health checks on the targets. If the protocol version is HTTP/1.1 or HTTP/2, specify a valid URI (for example, /path?query). The default path is /. Health checks are not supported  */
    path?: string;
    /** The approximate amount of time, in seconds, between health checks of an individual target. The range is 5–300 seconds. The default is 30 seconds. */
    healthCheckIntervalSeconds?: number;
    /** The amount of time, in seconds, to wait before reporting a target as unhealthy. The range is 1–120 seconds. The default is 5 seconds. */
    healthCheckTimeoutSeconds?: number;
    /** The number of consecutive successful health checks required before considering an unhealthy target healthy. The range is 2–10. The default is 5. */
    healthyThresholdCount?: number;
    /** The number of consecutive failed health checks required before considering a target unhealthy. The range is 2–10. The default is 2. */
    unhealthyThresholdCount?: number;
    /** The codes to use when checking for a successful response from a target. */
    matcher?: any;
}
export interface TargetGroupConfig {
    /** The port on which the targets are listening. For HTTP, the default is 80. For HTTPS, the default is 443. Not supported if the target group type is LAMBDA. */
    port?: number;
    /** The protocol to use for routing traffic to the targets. The default is the protocol of the target group. Not supported if the target group type is LAMBDA. */
    protocol?: 'HTTP' | 'HTTPS' | 'TCP';
    /** The protocol version. The default is HTTP1. Not supported if the target group type is LAMBDA. */
    protocolVersion?: 'HTTP1' | 'HTTP2' | 'GRPC';
    /** The type of IP address used for the target group. Supported only if the target group type is IP. The default is IPV4. */
    ipAddressType?: 'IPV4' | 'IPV6';
    /** The ID of the VPC. Not supported if the target group type is LAMBDA. */
    vpcIdentifier?: string;
    /** The health check configuration. Not supported if the target group type is LAMBDA or ALB. */
    healthCheck?: HealthCheckConfig;
    /** The version of the event structure that your Lambda function receives. Supported only if the target group type is LAMBDA. The default is V1. */
    lambdaEventStructureVersion?: 'V1' | 'V2';
}
export interface Target {
    /** The ID of the target. If the target group type is INSTANCE, this is an instance ID. If the target group type is IP, this is an IP address. If the target group type is LAMBDA, this is the ARN of a Lamb */
    id: string;
    /** The port on which the target is listening. For HTTP, the default is 80. For HTTPS, the default is 443. */
    port?: number;
}
export interface BatchUpdateRuleInput {
    /** The ID or ARN of the listener. */
    listenerIdentifier: string;
    /** The rules for the specified listener. */
    rules: RuleUpdate[];
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
}
export interface CreateAccessLogSubscriptionInput {
    /** The Amazon Resource Name (ARN) of the destination. The supported destination types are CloudWatch Log groups, Kinesis Data Firehose delivery streams, and Amazon S3 buckets. */
    destinationArn: string;
    /** The ID or ARN of the service network or service. */
    resourceIdentifier: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** The type of log that monitors your Amazon VPC Lattice service networks. */
    serviceNetworkLogType?: 'SERVICE' | 'RESOURCE';
    /** The tags for the access log subscription. */
    tags?: Record<string, string>;
}
export interface CreateListenerInput {
    /** The action for the default rule. Each listener has a default rule. The default rule is used if no other rules match. */
    defaultAction: {
        forward?: ForwardAction;
    } | {
        fixedResponse?: FixedResponseAction;
    };
    /** The name of the listener. A listener name must be unique within a service. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately aft */
    name: string;
    /** The listener protocol. */
    protocol: 'HTTP' | 'HTTPS' | 'TLS_PASSTHROUGH';
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** The listener port. You can specify a value from 1 to 65535. For HTTP, the default is 80. For HTTPS, the default is 443. */
    port?: number;
    /** The tags for the listener. */
    tags?: Record<string, string>;
}
export interface CreateResourceConfigurationInput {
    /** The name of the resource configuration. The name must be unique within the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immedi */
    name: string;
    /** The type of resource configuration. A resource configuration can be one of the following types: SINGLE - A single resource. GROUP - A group of resources. You must create a group resource configuration */
    type: 'GROUP' | 'CHILD' | 'SINGLE' | 'ARN';
    /** (SINGLE, GROUP, ARN) Specifies whether the resource configuration can be associated with a sharable service network. The default is false. */
    allowAssociationToShareableServiceNetwork?: boolean;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** A custom domain name for your resource configuration. Additionally, provide a DomainVerificationID to prove your ownership of a domain. */
    customDomainName?: string;
    /** The domain verification ID of your verified custom domain name. If you don't provide an ID, you must configure the DNS settings yourself. */
    domainVerificationIdentifier?: string;
    /** (GROUP) The group domain for a group resource configuration. Any domains that you create for the child resource are subdomains of the group domain. Child resources inherit the verification status of t */
    groupDomain?: string;
    /** (SINGLE, GROUP, CHILD) The TCP port ranges that a consumer can use to access a resource configuration (for example: 1-65535). You can separate port ranges using commas (for example: 1,2,22-30). */
    portRanges?: string[];
    /** (SINGLE, GROUP) The protocol accepted by the resource configuration. */
    protocol?: 'TCP';
    /** Identifies the resource configuration in one of the following ways: Amazon Resource Name (ARN) - Supported resource-types that are provisioned by Amazon Web Services services, such as RDS databases, c */
    resourceConfigurationDefinition?: {
        dnsResource?: DnsResource;
    } | {
        ipResource?: IpResource;
    } | {
        arnResource?: ArnResource;
    };
    /** (CHILD) The ID or ARN of the parent resource configuration of type GROUP. This is used to associate a child resource configuration with a group resource configuration. */
    resourceConfigurationGroupIdentifier?: string;
    /** (SINGLE, GROUP, ARN) The ID or ARN of the resource gateway used to connect to the resource configuration. For a child resource configuration, this value is inherited from the parent resource configura */
    resourceGatewayIdentifier?: string;
    /** The tags for the resource configuration. */
    tags?: Record<string, string>;
}
export interface CreateResourceGatewayInput {
    /** The name of the resource gateway. */
    name: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** A resource gateway can have IPv4, IPv6 or dualstack addresses. The IP address type of a resource gateway must be compatible with the subnets of the resource gateway and the IP address type of the reso */
    ipAddressType?: 'IPV4' | 'IPV6' | 'DUALSTACK';
    /** The number of IPv4 addresses in each ENI for the resource gateway. */
    ipv4AddressesPerEni?: number;
    /** The IDs of the security groups to apply to the resource gateway. The security groups must be in the same VPC. */
    securityGroupIds?: string[];
    /** The IDs of the VPC subnets in which to create the resource gateway. */
    subnetIds?: string[];
    /** The tags for the resource gateway. */
    tags?: Record<string, string>;
    /** The ID of the VPC for the resource gateway. */
    vpcIdentifier?: string;
}
export interface CreateRuleInput {
    /** The action for the default rule. */
    action: {
        forward?: ForwardAction;
    } | {
        fixedResponse?: FixedResponseAction;
    };
    /** The ID or ARN of the listener. */
    listenerIdentifier: string;
    /** The rule match. */
    match: {
        httpMatch?: HttpMatch;
    };
    /** The name of the rule. The name must be unique within the listener. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after anoth */
    name: string;
    /** The priority assigned to the rule. Each rule for a specific listener must have a unique priority. The lower the priority number the higher the priority. */
    priority: number;
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** The tags for the rule. */
    tags?: Record<string, string>;
}
export interface CreateServiceInput {
    /** The name of the service. The name must be unique within the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after ano */
    name: string;
    /** The type of IAM policy. NONE: The resource does not use an IAM policy. This is the default. AWS_IAM: The resource uses an IAM policy. When this type is used, auth is enabled and an auth policy is requ */
    authType?: 'NONE' | 'AWS_IAM';
    /** The Amazon Resource Name (ARN) of the certificate. */
    certificateArn?: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** The custom domain name of the service. */
    customDomainName?: string;
    /** The tags for the service. */
    tags?: Record<string, string>;
}
export interface CreateServiceNetworkInput {
    /** The name of the service network. The name must be unique to the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after */
    name: string;
    /** The type of IAM policy. NONE: The resource does not use an IAM policy. This is the default. AWS_IAM: The resource uses an IAM policy. When this type is used, auth is enabled and an auth policy is requ */
    authType?: 'NONE' | 'AWS_IAM';
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** Specify if the service network should be enabled for sharing. */
    sharingConfig?: SharingConfig;
    /** The tags for the service network. */
    tags?: Record<string, string>;
}
export interface CreateServiceNetworkResourceAssociationInput {
    /** The ID of the resource configuration to associate with the service network. */
    resourceConfigurationIdentifier: string;
    /** The ID of the service network to associate with the resource configuration. */
    serviceNetworkIdentifier: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** Indicates if private DNS is enabled for the service network resource association. */
    privateDnsEnabled?: boolean;
    /** A key-value pair to associate with a resource. */
    tags?: Record<string, string>;
}
export interface CreateServiceNetworkServiceAssociationInput {
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
    /** The ID or ARN of the service network. You must use an ARN if the resources are in different accounts. */
    serviceNetworkIdentifier: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** The tags for the association. */
    tags?: Record<string, string>;
}
export interface CreateServiceNetworkVpcAssociationInput {
    /** The ID or ARN of the service network. You must use an ARN if the resources are in different accounts. */
    serviceNetworkIdentifier: string;
    /** The ID of the VPC. */
    vpcIdentifier: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** DNS options for the service network VPC association. */
    dnsOptions?: DnsOptions;
    /** Indicates if private DNS is enabled for the VPC association. */
    privateDnsEnabled?: boolean;
    /** The IDs of the security groups. Security groups aren't added by default. You can add a security group to apply network level controls to control which resources in a VPC are allowed to access the serv */
    securityGroupIds?: string[];
    /** The tags for the association. */
    tags?: Record<string, string>;
}
export interface CreateTargetGroupInput {
    /** The name of the target group. The name must be unique within the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately afte */
    name: string;
    /** The type of target group. */
    type: 'IP' | 'LAMBDA' | 'INSTANCE' | 'ALB';
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** The target group configuration. */
    config?: TargetGroupConfig;
    /** The tags for the target group. */
    tags?: Record<string, string>;
}
export interface DeleteAccessLogSubscriptionInput {
    /** The ID or ARN of the access log subscription. */
    accessLogSubscriptionIdentifier: string;
}
export interface DeleteAuthPolicyInput {
    /** The ID or ARN of the resource. */
    resourceIdentifier: string;
}
export interface DeleteDomainVerificationInput {
    /** The ID of the domain verification to delete. */
    domainVerificationIdentifier: string;
}
export interface DeleteListenerInput {
    /** The ID or ARN of the listener. */
    listenerIdentifier: string;
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
}
export interface DeleteResourceConfigurationInput {
    /** The ID or ARN of the resource configuration. */
    resourceConfigurationIdentifier: string;
}
export interface DeleteResourceEndpointAssociationInput {
    /** The ID or ARN of the association. */
    resourceEndpointAssociationIdentifier: string;
}
export interface DeleteResourceGatewayInput {
    /** The ID or ARN of the resource gateway. */
    resourceGatewayIdentifier: string;
}
export interface DeleteResourcePolicyInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
}
export interface DeleteRuleInput {
    /** The ID or ARN of the listener. */
    listenerIdentifier: string;
    /** The ID or ARN of the rule. */
    ruleIdentifier: string;
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
}
export interface DeleteServiceInput {
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
}
export interface DeleteServiceNetworkInput {
    /** The ID or ARN of the service network. */
    serviceNetworkIdentifier: string;
}
export interface DeleteServiceNetworkResourceAssociationInput {
    /** The ID of the association. */
    serviceNetworkResourceAssociationIdentifier: string;
}
export interface DeleteServiceNetworkServiceAssociationInput {
    /** The ID or ARN of the association. */
    serviceNetworkServiceAssociationIdentifier: string;
}
export interface DeleteServiceNetworkVpcAssociationInput {
    /** The ID or ARN of the association. */
    serviceNetworkVpcAssociationIdentifier: string;
}
export interface DeleteTargetGroupInput {
    /** The ID or ARN of the target group. */
    targetGroupIdentifier: string;
}
export interface DeregisterTargetsInput {
    /** The ID or ARN of the target group. */
    targetGroupIdentifier: string;
    /** The targets to deregister. */
    targets: Target[];
}
export interface GetAccessLogSubscriptionInput {
    /** The ID or ARN of the access log subscription. */
    accessLogSubscriptionIdentifier: string;
}
export interface GetAuthPolicyInput {
    /** The ID or ARN of the service network or service. */
    resourceIdentifier: string;
}
export interface GetDomainVerificationInput {
    /** The ID or ARN of the domain verification to retrieve. */
    domainVerificationIdentifier: string;
}
export interface GetListenerInput {
    /** The ID or ARN of the listener. */
    listenerIdentifier: string;
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
}
export interface GetResourceConfigurationInput {
    /** The ID of the resource configuration. */
    resourceConfigurationIdentifier: string;
}
export interface GetResourceGatewayInput {
    /** The ID of the resource gateway. */
    resourceGatewayIdentifier: string;
}
export interface GetResourcePolicyInput {
    /** The Amazon Resource Name (ARN) of the service network or service. */
    resourceArn: string;
}
export interface GetRuleInput {
    /** The ID or ARN of the listener. */
    listenerIdentifier: string;
    /** The ID or ARN of the listener rule. */
    ruleIdentifier: string;
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
}
export interface GetServiceInput {
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
}
export interface GetServiceNetworkInput {
    /** The ID or ARN of the service network. */
    serviceNetworkIdentifier: string;
}
export interface GetServiceNetworkResourceAssociationInput {
    /** The ID of the association. */
    serviceNetworkResourceAssociationIdentifier: string;
}
export interface GetServiceNetworkServiceAssociationInput {
    /** The ID or ARN of the association. */
    serviceNetworkServiceAssociationIdentifier: string;
}
export interface GetServiceNetworkVpcAssociationInput {
    /** The ID or ARN of the association. */
    serviceNetworkVpcAssociationIdentifier: string;
}
export interface GetTargetGroupInput {
    /** The ID or ARN of the target group. */
    targetGroupIdentifier: string;
}
export interface ListAccessLogSubscriptionsInput {
    /** The ID or ARN of the service network or service. */
    resourceIdentifier: string;
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
}
export interface ListDomainVerificationsInput {
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
}
export interface ListListenersInput {
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
}
export interface ListResourceConfigurationsInput {
    /** The domain verification ID. */
    domainVerificationIdentifier?: string;
    /** The maximum page size. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
    /** The ID of the resource configuration of type Group. */
    resourceConfigurationGroupIdentifier?: string;
    /** The ID of the resource gateway for the resource configuration. */
    resourceGatewayIdentifier?: string;
}
export interface ListResourceEndpointAssociationsInput {
    /** The ID for the resource configuration associated with the VPC endpoint. */
    resourceConfigurationIdentifier: string;
    /** The maximum page size. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
    /** The ID of the association. */
    resourceEndpointAssociationIdentifier?: string;
    /** The ID of the VPC endpoint in the association. */
    vpcEndpointId?: string;
    /** The owner of the VPC endpoint in the association. */
    vpcEndpointOwner?: string;
}
export interface ListResourceGatewaysInput {
    /** The maximum page size. */
    maxResults?: number;
    /** If there are additional results, a pagination token for the next page of results. */
    nextToken?: string;
}
export interface ListRulesInput {
    /** The ID or ARN of the listener. */
    listenerIdentifier: string;
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
}
export interface ListServiceNetworkResourceAssociationsInput {
    /** Include service network resource associations of the child resource configuration with the grouped resource configuration. The type is boolean and the default value is false. */
    includeChildren?: boolean;
    /** The maximum page size. */
    maxResults?: number;
    /** If there are additional results, a pagination token for the next page of results. */
    nextToken?: string;
    /** The ID of the resource configuration. */
    resourceConfigurationIdentifier?: string;
    /** The ID of the service network. */
    serviceNetworkIdentifier?: string;
}
export interface ListServiceNetworksInput {
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
}
export interface ListServiceNetworkServiceAssociationsInput {
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
    /** The ID or ARN of the service. */
    serviceIdentifier?: string;
    /** The ID or ARN of the service network. */
    serviceNetworkIdentifier?: string;
}
export interface ListServiceNetworkVpcAssociationsInput {
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
    /** The ID or ARN of the service network. */
    serviceNetworkIdentifier?: string;
    /** The ID or ARN of the VPC. */
    vpcIdentifier?: string;
}
export interface ListServiceNetworkVpcEndpointAssociationsInput {
    /** The ID of the service network associated with the VPC endpoint. */
    serviceNetworkIdentifier: string;
    /** The maximum page size. */
    maxResults?: number;
    /** If there are additional results, a pagination token for the next page of results. */
    nextToken?: string;
}
export interface ListServicesInput {
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
}
export interface ListTargetGroupsInput {
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
    /** The target group type. */
    targetGroupType?: 'IP' | 'LAMBDA' | 'INSTANCE' | 'ALB';
    /** The ID or ARN of the VPC. */
    vpcIdentifier?: string;
}
export interface ListTargetsInput {
    /** The ID or ARN of the target group. */
    targetGroupIdentifier: string;
    /** The maximum number of results to return. */
    maxResults?: number;
    /** A pagination token for the next page of results. */
    nextToken?: string;
    /** The targets. */
    targets?: Target[];
}
export interface PutAuthPolicyInput {
    /** The auth policy. The policy string in JSON must not contain newlines or blank lines. */
    policy: string;
    /** The ID or ARN of the service network or service for which the policy is created. */
    resourceIdentifier: string;
}
export interface PutResourcePolicyInput {
    /** An IAM policy. The policy string in JSON must not contain newlines or blank lines. */
    policy: string;
    /** The ID or ARN of the service network or service for which the policy is created. */
    resourceArn: string;
}
export interface RegisterTargetsInput {
    /** The ID or ARN of the target group. */
    targetGroupIdentifier: string;
    /** The targets. */
    targets: Target[];
}
export interface StartDomainVerificationInput {
    /** The domain name to verify ownership for. */
    domainName: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry  */
    clientToken?: string;
    /** The tags for the domain verification. */
    tags?: Record<string, string>;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** The tags for the resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** The tag keys of the tags to remove. */
    tagKeys: string[];
}
export interface UpdateAccessLogSubscriptionInput {
    /** The ID or ARN of the access log subscription. */
    accessLogSubscriptionIdentifier: string;
    /** The Amazon Resource Name (ARN) of the access log destination. */
    destinationArn: string;
}
export interface UpdateListenerInput {
    /** The action for the default rule. */
    defaultAction: {
        forward?: ForwardAction;
    } | {
        fixedResponse?: FixedResponseAction;
    };
    /** The ID or ARN of the listener. */
    listenerIdentifier: string;
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
}
export interface UpdateResourceConfigurationInput {
    /** The ID of the resource configuration. */
    resourceConfigurationIdentifier: string;
    /** Indicates whether to add the resource configuration to service networks that are shared with other accounts. */
    allowAssociationToShareableServiceNetwork?: boolean;
    /** The TCP port ranges that a consumer can use to access a resource configuration. You can separate port ranges with a comma. Example: 1-65535 or 1,2,22-30 */
    portRanges?: string[];
    /** Identifies the resource configuration in one of the following ways: Amazon Resource Name (ARN) - Supported resource-types that are provisioned by Amazon Web Services services, such as RDS databases, c */
    resourceConfigurationDefinition?: {
        dnsResource?: DnsResource;
    } | {
        ipResource?: IpResource;
    } | {
        arnResource?: ArnResource;
    };
}
export interface UpdateResourceGatewayInput {
    /** The ID or ARN of the resource gateway. */
    resourceGatewayIdentifier: string;
    /** The IDs of the security groups associated with the resource gateway. */
    securityGroupIds?: string[];
}
export interface UpdateRuleInput {
    /** The ID or ARN of the listener. */
    listenerIdentifier: string;
    /** The ID or ARN of the rule. */
    ruleIdentifier: string;
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
    /** Information about the action for the specified listener rule. */
    action?: {
        forward?: ForwardAction;
    } | {
        fixedResponse?: FixedResponseAction;
    };
    /** The rule match. */
    match?: {
        httpMatch?: HttpMatch;
    };
    /** The rule priority. A listener can't have multiple rules with the same priority. */
    priority?: number;
}
export interface UpdateServiceInput {
    /** The ID or ARN of the service. */
    serviceIdentifier: string;
    /** The type of IAM policy. NONE: The resource does not use an IAM policy. This is the default. AWS_IAM: The resource uses an IAM policy. When this type is used, auth is enabled and an auth policy is requ */
    authType?: 'NONE' | 'AWS_IAM';
    /** The Amazon Resource Name (ARN) of the certificate. */
    certificateArn?: string;
}
export interface UpdateServiceNetworkInput {
    /** The type of IAM policy. NONE: The resource does not use an IAM policy. This is the default. AWS_IAM: The resource uses an IAM policy. When this type is used, auth is enabled and an auth policy is requ */
    authType: 'NONE' | 'AWS_IAM';
    /** The ID or ARN of the service network. */
    serviceNetworkIdentifier: string;
}
export interface UpdateServiceNetworkVpcAssociationInput {
    /** The IDs of the security groups. */
    securityGroupIds: string[];
    /** The ID or ARN of the association. */
    serviceNetworkVpcAssociationIdentifier: string;
}
export interface UpdateTargetGroupInput {
    /** The health check configuration. */
    healthCheck: HealthCheckConfig;
    /** The ID or ARN of the target group. */
    targetGroupIdentifier: string;
}
/** VPC Lattice service binding for Step Functions SDK integrations. */
export declare class VPCLattice {
    constructor();
    batchUpdateRule<T>(params: BatchUpdateRuleInput): Promise<T>;
    createAccessLogSubscription<T>(params: CreateAccessLogSubscriptionInput): Promise<T>;
    createListener<T>(params: CreateListenerInput): Promise<T>;
    createResourceConfiguration<T>(params: CreateResourceConfigurationInput): Promise<T>;
    createResourceGateway<T>(params: CreateResourceGatewayInput): Promise<T>;
    createRule<T>(params: CreateRuleInput): Promise<T>;
    createService<T>(params: CreateServiceInput): Promise<T>;
    createServiceNetwork<T>(params: CreateServiceNetworkInput): Promise<T>;
    createServiceNetworkResourceAssociation<T>(params: CreateServiceNetworkResourceAssociationInput): Promise<T>;
    createServiceNetworkServiceAssociation<T>(params: CreateServiceNetworkServiceAssociationInput): Promise<T>;
    createServiceNetworkVpcAssociation<T>(params: CreateServiceNetworkVpcAssociationInput): Promise<T>;
    createTargetGroup<T>(params: CreateTargetGroupInput): Promise<T>;
    deleteAccessLogSubscription<T>(params: DeleteAccessLogSubscriptionInput): Promise<T>;
    deleteAuthPolicy<T>(params: DeleteAuthPolicyInput): Promise<T>;
    deleteDomainVerification<T>(params: DeleteDomainVerificationInput): Promise<T>;
    deleteListener<T>(params: DeleteListenerInput): Promise<T>;
    deleteResourceConfiguration<T>(params: DeleteResourceConfigurationInput): Promise<T>;
    deleteResourceEndpointAssociation<T>(params: DeleteResourceEndpointAssociationInput): Promise<T>;
    deleteResourceGateway<T>(params: DeleteResourceGatewayInput): Promise<T>;
    deleteResourcePolicy<T>(params: DeleteResourcePolicyInput): Promise<T>;
    deleteRule<T>(params: DeleteRuleInput): Promise<T>;
    deleteService<T>(params: DeleteServiceInput): Promise<T>;
    deleteServiceNetwork<T>(params: DeleteServiceNetworkInput): Promise<T>;
    deleteServiceNetworkResourceAssociation<T>(params: DeleteServiceNetworkResourceAssociationInput): Promise<T>;
    deleteServiceNetworkServiceAssociation<T>(params: DeleteServiceNetworkServiceAssociationInput): Promise<T>;
    deleteServiceNetworkVpcAssociation<T>(params: DeleteServiceNetworkVpcAssociationInput): Promise<T>;
    deleteTargetGroup<T>(params: DeleteTargetGroupInput): Promise<T>;
    deregisterTargets<T>(params: DeregisterTargetsInput): Promise<T>;
    getAccessLogSubscription<T>(params: GetAccessLogSubscriptionInput): Promise<T>;
    getAuthPolicy<T>(params: GetAuthPolicyInput): Promise<T>;
    getDomainVerification<T>(params: GetDomainVerificationInput): Promise<T>;
    getListener<T>(params: GetListenerInput): Promise<T>;
    getResourceConfiguration<T>(params: GetResourceConfigurationInput): Promise<T>;
    getResourceGateway<T>(params: GetResourceGatewayInput): Promise<T>;
    getResourcePolicy<T>(params: GetResourcePolicyInput): Promise<T>;
    getRule<T>(params: GetRuleInput): Promise<T>;
    getService<T>(params: GetServiceInput): Promise<T>;
    getServiceNetwork<T>(params: GetServiceNetworkInput): Promise<T>;
    getServiceNetworkResourceAssociation<T>(params: GetServiceNetworkResourceAssociationInput): Promise<T>;
    getServiceNetworkServiceAssociation<T>(params: GetServiceNetworkServiceAssociationInput): Promise<T>;
    getServiceNetworkVpcAssociation<T>(params: GetServiceNetworkVpcAssociationInput): Promise<T>;
    getTargetGroup<T>(params: GetTargetGroupInput): Promise<T>;
    listAccessLogSubscriptions<T>(params: ListAccessLogSubscriptionsInput): Promise<T>;
    listDomainVerifications<T>(params: ListDomainVerificationsInput): Promise<T>;
    listListeners<T>(params: ListListenersInput): Promise<T>;
    listResourceConfigurations<T>(params: ListResourceConfigurationsInput): Promise<T>;
    listResourceEndpointAssociations<T>(params: ListResourceEndpointAssociationsInput): Promise<T>;
    listResourceGateways<T>(params: ListResourceGatewaysInput): Promise<T>;
    listRules<T>(params: ListRulesInput): Promise<T>;
    listServiceNetworkResourceAssociations<T>(params: ListServiceNetworkResourceAssociationsInput): Promise<T>;
    listServiceNetworks<T>(params: ListServiceNetworksInput): Promise<T>;
    listServiceNetworkServiceAssociations<T>(params: ListServiceNetworkServiceAssociationsInput): Promise<T>;
    listServiceNetworkVpcAssociations<T>(params: ListServiceNetworkVpcAssociationsInput): Promise<T>;
    listServiceNetworkVpcEndpointAssociations<T>(params: ListServiceNetworkVpcEndpointAssociationsInput): Promise<T>;
    listServices<T>(params: ListServicesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTargetGroups<T>(params: ListTargetGroupsInput): Promise<T>;
    listTargets<T>(params: ListTargetsInput): Promise<T>;
    putAuthPolicy<T>(params: PutAuthPolicyInput): Promise<T>;
    putResourcePolicy<T>(params: PutResourcePolicyInput): Promise<T>;
    registerTargets<T>(params: RegisterTargetsInput): Promise<T>;
    startDomainVerification<T>(params: StartDomainVerificationInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAccessLogSubscription<T>(params: UpdateAccessLogSubscriptionInput): Promise<T>;
    updateListener<T>(params: UpdateListenerInput): Promise<T>;
    updateResourceConfiguration<T>(params: UpdateResourceConfigurationInput): Promise<T>;
    updateResourceGateway<T>(params: UpdateResourceGatewayInput): Promise<T>;
    updateRule<T>(params: UpdateRuleInput): Promise<T>;
    updateService<T>(params: UpdateServiceInput): Promise<T>;
    updateServiceNetwork<T>(params: UpdateServiceNetworkInput): Promise<T>;
    updateServiceNetworkVpcAssociation<T>(params: UpdateServiceNetworkVpcAssociationInput): Promise<T>;
    updateTargetGroup<T>(params: UpdateTargetGroupInput): Promise<T>;
}
//# sourceMappingURL=VPCLattice.d.ts.map