export interface ServiceUpdateRequest {
    /** The unique ID of the service update */
    ServiceUpdateNameToApply?: string;
}
export interface Tag {
    /** The key for the tag. May not be null. */
    Key?: string;
    /** The tag's value. May be null. */
    Value?: string;
}
export interface AuthenticationMode {
    /** Indicates whether the user requires a password to authenticate. All newly-created users require a password. */
    Type?: 'password' | 'iam';
    /** The password(s) used for authentication */
    Passwords?: string[];
}
export interface Filter {
    /** The property being filtered. For example, UserName. */
    Name: string;
    /** The property values to filter on. For example, "user-123". */
    Values: any[];
}
export interface ReplicaConfigurationRequest {
    /** The number of replicas to scale up or down to */
    ReplicaCount?: number;
}
export interface ShardConfigurationRequest {
    /** The number of shards in the cluster */
    ShardCount?: number;
}
export interface ParameterNameValue {
    /** The name of the parameter */
    ParameterName?: string;
    /** The value of the parameter */
    ParameterValue?: string;
}
export interface BatchUpdateClusterInput {
    /** The cluster names to apply the updates. */
    ClusterNames: string[];
    /** The unique ID of the service update */
    ServiceUpdate?: ServiceUpdateRequest;
}
export interface CopySnapshotInput {
    /** The name of an existing snapshot from which to make a copy. */
    SourceSnapshotName: string;
    /** A name for the snapshot copy. MemoryDB does not permit overwriting a snapshot, therefore this name must be unique within its context - MemoryDB or an Amazon S3 bucket if exporting. */
    TargetSnapshotName: string;
    /** The ID of the KMS key used to encrypt the target snapshot. */
    KmsKeyId?: string;
    /** A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted. */
    Tags?: Tag[];
    /** The Amazon S3 bucket to which the snapshot is exported. This parameter is used only when exporting a snapshot for external access. When using this parameter to export a snapshot, be sure MemoryDB has  */
    TargetBucket?: string;
}
export interface CreateACLInput {
    /** The name of the Access Control List. */
    ACLName: string;
    /** A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted. */
    Tags?: Tag[];
    /** The list of users that belong to the Access Control List. */
    UserNames?: string[];
}
export interface CreateClusterInput {
    /** The name of the Access Control List to associate with the cluster. */
    ACLName: string;
    /** The name of the cluster. This value must be unique as it also serves as the cluster identifier. */
    ClusterName: string;
    /** The compute and memory capacity of the nodes in the cluster. */
    NodeType: string;
    /** When set to true, the cluster will automatically receive minor engine version upgrades after launch. */
    AutoMinorVersionUpgrade?: boolean;
    /** Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see Data tiering. */
    DataTiering?: boolean;
    /** An optional description of the cluster. */
    Description?: string;
    /** The name of the engine to be used for the cluster. */
    Engine?: string;
    /** The version number of the Redis OSS engine to be used for the cluster. */
    EngineVersion?: string;
    /** The mechanism for discovering IP addresses for the cluster discovery protocol. Valid values are 'ipv4' or 'ipv6'. When set to 'ipv4', cluster discovery functions such as cluster slots, cluster shards, */
    IpDiscovery?: 'ipv4' | 'ipv6';
    /** The ID of the KMS key used to encrypt the cluster. */
    KmsKeyId?: string;
    /** Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window i */
    MaintenanceWindow?: string;
    /** The name of the multi-Region cluster to be created. */
    MultiRegionClusterName?: string;
    /** Specifies the IP address type for the cluster. Valid values are 'ipv4', 'ipv6', or 'dual_stack'. When set to 'ipv4', the cluster will only be accessible via IPv4 addresses. When set to 'ipv6', the clu */
    NetworkType?: 'ipv4' | 'ipv6' | 'dual_stack';
    /** The number of replicas to apply to each shard. The default value is 1. The maximum is 5. */
    NumReplicasPerShard?: number;
    /** The number of shards the cluster will contain. The default value is 1. */
    NumShards?: number;
    /** The name of the parameter group associated with the cluster. */
    ParameterGroupName?: string;
    /** The port number on which each of the nodes accepts connections. */
    Port?: number;
    /** A list of security group names to associate with this cluster. */
    SecurityGroupIds?: string[];
    /** A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new cluster. The Amazon S3 object name in the ARN c */
    SnapshotArns?: string[];
    /** The name of a snapshot from which to restore data into the new cluster. The snapshot status changes to restoring while the new cluster is being created. */
    SnapshotName?: string;
    /** The number of days for which MemoryDB retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days befo */
    SnapshotRetentionLimit?: number;
    /** The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00 If you do not specify this parameter, MemoryDB automatically chooses an appropria */
    SnapshotWindow?: string;
    /** The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. */
    SnsTopicArn?: string;
    /** The name of the subnet group to be used for the cluster. */
    SubnetGroupName?: string;
    /** A list of tags to be added to this resource. Tags are comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as shown following: Key=myKey, Value=myKeyValue K */
    Tags?: Tag[];
    /** A flag to enable in-transit encryption on the cluster. */
    TLSEnabled?: boolean;
}
export interface CreateMultiRegionClusterInput {
    /** A suffix to be added to the Multi-Region cluster name. Amazon MemoryDB automatically applies a prefix to the Multi-Region cluster Name when it is created. Each Amazon Region has its own prefix. For in */
    MultiRegionClusterNameSuffix: string;
    /** The node type to be used for the multi-Region cluster. */
    NodeType: string;
    /** A description for the multi-Region cluster. */
    Description?: string;
    /** The name of the engine to be used for the multi-Region cluster. */
    Engine?: string;
    /** The version of the engine to be used for the multi-Region cluster. */
    EngineVersion?: string;
    /** The name of the multi-Region parameter group to be associated with the cluster. */
    MultiRegionParameterGroupName?: string;
    /** The number of shards for the multi-Region cluster. */
    NumShards?: number;
    /** A list of tags to be applied to the multi-Region cluster. */
    Tags?: Tag[];
    /** Whether to enable TLS encryption for the multi-Region cluster. */
    TLSEnabled?: boolean;
}
export interface CreateParameterGroupInput {
    /** The name of the parameter group family that the parameter group can be used with. */
    Family: string;
    /** The name of the parameter group. */
    ParameterGroupName: string;
    /** An optional description of the parameter group. */
    Description?: string;
    /** A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted. */
    Tags?: Tag[];
}
export interface CreateSnapshotInput {
    /** The snapshot is created from this cluster. */
    ClusterName: string;
    /** A name for the snapshot being created. */
    SnapshotName: string;
    /** The ID of the KMS key used to encrypt the snapshot. */
    KmsKeyId?: string;
    /** A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted. */
    Tags?: Tag[];
}
export interface CreateSubnetGroupInput {
    /** The name of the subnet group. */
    SubnetGroupName: string;
    /** A list of VPC subnet IDs for the subnet group. */
    SubnetIds: string[];
    /** A description for the subnet group. */
    Description?: string;
    /** A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted. */
    Tags?: Tag[];
}
export interface CreateUserInput {
    /** Access permissions string used for this user. */
    AccessString: string;
    /** Denotes the user's authentication properties, such as whether it requires a password to authenticate. */
    AuthenticationMode: AuthenticationMode;
    /** The name of the user. This value must be unique as it also serves as the user identifier. */
    UserName: string;
    /** A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted. */
    Tags?: Tag[];
}
export interface DeleteACLInput {
    /** The name of the Access Control List to delete. */
    ACLName: string;
}
export interface DeleteClusterInput {
    /** The name of the cluster to be deleted */
    ClusterName: string;
    /** The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. MemoryDB creates the snapshot, and then deletes the cluster immediately afterward. */
    FinalSnapshotName?: string;
    /** The name of the multi-Region cluster to be deleted. */
    MultiRegionClusterName?: string;
}
export interface DeleteMultiRegionClusterInput {
    /** The name of the multi-Region cluster to be deleted. */
    MultiRegionClusterName: string;
}
export interface DeleteParameterGroupInput {
    /** The name of the parameter group to delete. */
    ParameterGroupName: string;
}
export interface DeleteSnapshotInput {
    /** The name of the snapshot to delete. */
    SnapshotName: string;
}
export interface DeleteSubnetGroupInput {
    /** The name of the subnet group to delete. */
    SubnetGroupName: string;
}
export interface DeleteUserInput {
    /** The name of the user to delete */
    UserName: string;
}
export interface DescribeACLsInput {
    /** The name of the ACL. */
    ACLName?: string;
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
}
export interface DescribeClustersInput {
    /** The name of the cluster. */
    ClusterName?: string;
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
    /** An optional flag that can be included in the request to retrieve information about the individual shard(s). */
    ShowShardDetails?: boolean;
}
export interface DescribeEngineVersionsInput {
    /** If true, specifies that only the default version of the specified engine or engine and major version combination is to be returned. */
    DefaultOnly?: boolean;
    /** The name of the engine for which to list available versions. */
    Engine?: string;
    /** The Redis OSS engine version */
    EngineVersion?: string;
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
    /** The name of a specific parameter group family to return details for. */
    ParameterGroupFamily?: string;
}
export interface DescribeEventsInput {
    /** The number of minutes worth of events to retrieve. */
    Duration?: number;
    /** The end of the time interval for which to retrieve events, specified in ISO 8601 format. Example: 2017-03-30T07:03:49.555Z */
    EndTime?: string;
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
    /** The identifier of the event source for which events are returned. If not specified, all sources are included in the response. */
    SourceName?: string;
    /** The event source to retrieve events for. If no value is specified, all events are returned. */
    SourceType?: 'node' | 'parameter-group' | 'subnet-group' | 'cluster' | 'user' | 'acl';
    /** The beginning of the time interval to retrieve events for, specified in ISO 8601 format. Example: 2017-03-30T07:03:49.555Z */
    StartTime?: string;
}
export interface DescribeMultiRegionClustersInput {
    /** The maximum number of results to return. */
    MaxResults?: number;
    /** The name of a specific multi-Region cluster to describe. */
    MultiRegionClusterName?: string;
    /** A token to specify where to start paginating. */
    NextToken?: string;
    /** Details about the multi-Region cluster. */
    ShowClusterDetails?: boolean;
}
export interface DescribeMultiRegionParameterGroupsInput {
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** The request for information on a specific multi-region parameter group. */
    MultiRegionParameterGroupName?: string;
    /** An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to t */
    NextToken?: string;
}
export interface DescribeMultiRegionParametersInput {
    /** The name of the multi-region parameter group to return details for. */
    MultiRegionParameterGroupName: string;
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to t */
    NextToken?: string;
    /** The parameter types to return. Valid values: user | system | engine-default */
    Source?: string;
}
export interface DescribeParameterGroupsInput {
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
    /** The name of a specific parameter group to return details for. */
    ParameterGroupName?: string;
}
export interface DescribeParametersInput {
    /** he name of a specific parameter group to return details for. */
    ParameterGroupName: string;
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
}
export interface DescribeReservedNodesInput {
    /** The duration filter value, specified in years or seconds. Use this parameter to show only reservations for this duration. */
    Duration?: string;
    /** The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved */
    MaxResults?: number;
    /** An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, u */
    NextToken?: string;
    /** The node type filter value. Use this parameter to show only those reservations matching the specified node type. For more information, see Supported node types. */
    NodeType?: string;
    /** The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type. Valid values: "All Upfront"|"Partial Upfront"| "No Upfront" */
    OfferingType?: string;
    /** The reserved node identifier filter value. Use this parameter to show only the reservation that matches the specified reservation ID. */
    ReservationId?: string;
    /** The offering identifier filter value. Use this parameter to show only purchased reservations matching the specified offering identifier. */
    ReservedNodesOfferingId?: string;
}
export interface DescribeReservedNodesOfferingsInput {
    /** Duration filter value, specified in years or seconds. Use this parameter to show only reservations for a given duration. */
    Duration?: string;
    /** The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved */
    MaxResults?: number;
    /** An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, u */
    NextToken?: string;
    /** The node type for the reserved nodes. For more information, see Supported node types. */
    NodeType?: string;
    /** The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type. Valid values: "All Upfront"|"Partial Upfront"| "No Upfront" */
    OfferingType?: string;
    /** The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier. */
    ReservedNodesOfferingId?: string;
}
export interface DescribeServiceUpdatesInput {
    /** The list of cluster names to identify service updates to apply. */
    ClusterNames?: string[];
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
    /** The unique ID of the service update to describe. */
    ServiceUpdateName?: string;
    /** The status(es) of the service updates to filter on. */
    Status?: 'available' | 'in-progress' | 'complete' | 'scheduled'[];
}
export interface DescribeSnapshotsInput {
    /** A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cluster are described. */
    ClusterName?: string;
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
    /** A Boolean value which if true, the shard configuration is included in the snapshot description. */
    ShowDetail?: boolean;
    /** A user-supplied name of the snapshot. If this parameter is specified, only this named snapshot is described. */
    SnapshotName?: string;
    /** If set to system, the output shows snapshots that were automatically created by MemoryDB. If set to user the output shows snapshots that were manually created. If omitted, the output shows both automa */
    Source?: string;
}
export interface DescribeSubnetGroupsInput {
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
    /** The name of the subnet group to return details for. */
    SubnetGroupName?: string;
}
export interface DescribeUsersInput {
    /** Filter to determine the list of users to return. */
    Filters?: Filter[];
    /** The maximum number of records to include in the response. If more records exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. */
    MaxResults?: number;
    /** An optional argument to pass in case the total number of records exceeds the value of MaxResults. If nextToken is returned, there are more results available. The value of nextToken is a unique paginat */
    NextToken?: string;
    /** The name of the user. */
    UserName?: string;
}
export interface FailoverShardInput {
    /** The cluster being failed over. */
    ClusterName: string;
    /** The name of the shard. */
    ShardName: string;
}
export interface ListAllowedMultiRegionClusterUpdatesInput {
    /** The name of the multi-Region cluster. */
    MultiRegionClusterName: string;
}
export interface ListAllowedNodeTypeUpdatesInput {
    /** The name of the cluster you want to scale. MemoryDB uses the cluster name to identify the current node type being used by this cluster, and from that to create a list of node types you can scale up to */
    ClusterName: string;
}
export interface ListTagsInput {
    /** The Amazon Resource Name (ARN) of the resource for which you want the list of tags. */
    ResourceArn: string;
}
export interface PurchaseReservedNodesOfferingInput {
    /** The ID of the reserved node offering to purchase. */
    ReservedNodesOfferingId: string;
    /** The number of node instances to reserve. */
    NodeCount?: number;
    /** A customer-specified identifier to track this reservation. */
    ReservationId?: string;
    /** A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted. */
    Tags?: Tag[];
}
export interface ResetParameterGroupInput {
    /** The name of the parameter group to reset. */
    ParameterGroupName: string;
    /** If true, all parameters in the parameter group are reset to their default values. If false, only the parameters listed by ParameterNames are reset to their default values. */
    AllParameters?: boolean;
    /** An array of parameter names to reset to their default values. If AllParameters is true, do not use ParameterNames. If AllParameters is false, you must specify the name of at least one parameter to res */
    ParameterNames?: string[];
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to which the tags are to be added. */
    ResourceArn: string;
    /** A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to which the tags are to be removed. */
    ResourceArn: string;
    /** The list of keys of the tags that are to be removed. */
    TagKeys: string[];
}
export interface UpdateACLInput {
    /** The name of the Access Control List. */
    ACLName: string;
    /** The list of users to add to the Access Control List. */
    UserNamesToAdd?: string[];
    /** The list of users to remove from the Access Control List. */
    UserNamesToRemove?: string[];
}
export interface UpdateClusterInput {
    /** The name of the cluster to update. */
    ClusterName: string;
    /** The Access Control List that is associated with the cluster. */
    ACLName?: string;
    /** The description of the cluster to update. */
    Description?: string;
    /** The name of the engine to be used for the cluster. */
    Engine?: string;
    /** The upgraded version of the engine to be run on the nodes. You can upgrade to a newer engine version, but you cannot downgrade to an earlier engine version. If you want to use an earlier engine versio */
    EngineVersion?: string;
    /** The mechanism for discovering IP addresses for the cluster discovery protocol. Valid values are 'ipv4' or 'ipv6'. When set to 'ipv4', cluster discovery functions such as cluster slots, cluster shards, */
    IpDiscovery?: 'ipv4' | 'ipv6';
    /** Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window i */
    MaintenanceWindow?: string;
    /** A valid node type that you want to scale this cluster up or down to. */
    NodeType?: string;
    /** The name of the parameter group to update. */
    ParameterGroupName?: string;
    /** The number of replicas that will reside in each shard. */
    ReplicaConfiguration?: ReplicaConfigurationRequest;
    /** The SecurityGroupIds to update. */
    SecurityGroupIds?: string[];
    /** The number of shards in the cluster. */
    ShardConfiguration?: ShardConfigurationRequest;
    /** The number of days for which MemoryDB retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 d */
    SnapshotRetentionLimit?: number;
    /** The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your cluster. */
    SnapshotWindow?: string;
    /** The SNS topic ARN to update. */
    SnsTopicArn?: string;
    /** The status of the Amazon SNS notification topic. Notifications are sent only if the status is active. */
    SnsTopicStatus?: string;
}
export interface UpdateMultiRegionClusterInput {
    /** The name of the multi-Region cluster to be updated. */
    MultiRegionClusterName: string;
    /** A new description for the multi-Region cluster. */
    Description?: string;
    /** The new engine version to be used for the multi-Region cluster. */
    EngineVersion?: string;
    /** The new multi-Region parameter group to be associated with the cluster. */
    MultiRegionParameterGroupName?: string;
    /** The new node type to be used for the multi-Region cluster. */
    NodeType?: string;
    ShardConfiguration?: ShardConfigurationRequest;
    /** The strategy to use for the update operation. Supported values are "coordinated" or "uncoordinated". */
    UpdateStrategy?: 'coordinated' | 'uncoordinated';
}
export interface UpdateParameterGroupInput {
    /** The name of the parameter group to update. */
    ParameterGroupName: string;
    /** An array of parameter names and values for the parameter update. You must supply at least one parameter name and value; subsequent arguments are optional. A maximum of 20 parameters may be updated per */
    ParameterNameValues: ParameterNameValue[];
}
export interface UpdateSubnetGroupInput {
    /** The name of the subnet group */
    SubnetGroupName: string;
    /** A description of the subnet group */
    Description?: string;
    /** The EC2 subnet IDs for the subnet group. */
    SubnetIds?: string[];
}
export interface UpdateUserInput {
    /** The name of the user */
    UserName: string;
    /** Access permissions string used for this user. */
    AccessString?: string;
    /** Denotes the user's authentication properties, such as whether it requires a password to authenticate. */
    AuthenticationMode?: AuthenticationMode;
}
/** MemoryDB service binding for Step Functions SDK integrations. */
export declare class MemoryDB {
    constructor();
    batchUpdateCluster<T>(params: BatchUpdateClusterInput): Promise<T>;
    copySnapshot<T>(params: CopySnapshotInput): Promise<T>;
    createACL<T>(params: CreateACLInput): Promise<T>;
    createCluster<T>(params: CreateClusterInput): Promise<T>;
    createMultiRegionCluster<T>(params: CreateMultiRegionClusterInput): Promise<T>;
    createParameterGroup<T>(params: CreateParameterGroupInput): Promise<T>;
    createSnapshot<T>(params: CreateSnapshotInput): Promise<T>;
    createSubnetGroup<T>(params: CreateSubnetGroupInput): Promise<T>;
    createUser<T>(params: CreateUserInput): Promise<T>;
    deleteACL<T>(params: DeleteACLInput): Promise<T>;
    deleteCluster<T>(params: DeleteClusterInput): Promise<T>;
    deleteMultiRegionCluster<T>(params: DeleteMultiRegionClusterInput): Promise<T>;
    deleteParameterGroup<T>(params: DeleteParameterGroupInput): Promise<T>;
    deleteSnapshot<T>(params: DeleteSnapshotInput): Promise<T>;
    deleteSubnetGroup<T>(params: DeleteSubnetGroupInput): Promise<T>;
    deleteUser<T>(params: DeleteUserInput): Promise<T>;
    describeACLs<T>(params: DescribeACLsInput): Promise<T>;
    describeClusters<T>(params: DescribeClustersInput): Promise<T>;
    describeEngineVersions<T>(params: DescribeEngineVersionsInput): Promise<T>;
    describeEvents<T>(params: DescribeEventsInput): Promise<T>;
    describeMultiRegionClusters<T>(params: DescribeMultiRegionClustersInput): Promise<T>;
    describeMultiRegionParameterGroups<T>(params: DescribeMultiRegionParameterGroupsInput): Promise<T>;
    describeMultiRegionParameters<T>(params: DescribeMultiRegionParametersInput): Promise<T>;
    describeParameterGroups<T>(params: DescribeParameterGroupsInput): Promise<T>;
    describeParameters<T>(params: DescribeParametersInput): Promise<T>;
    describeReservedNodes<T>(params: DescribeReservedNodesInput): Promise<T>;
    describeReservedNodesOfferings<T>(params: DescribeReservedNodesOfferingsInput): Promise<T>;
    describeServiceUpdates<T>(params: DescribeServiceUpdatesInput): Promise<T>;
    describeSnapshots<T>(params: DescribeSnapshotsInput): Promise<T>;
    describeSubnetGroups<T>(params: DescribeSubnetGroupsInput): Promise<T>;
    describeUsers<T>(params: DescribeUsersInput): Promise<T>;
    failoverShard<T>(params: FailoverShardInput): Promise<T>;
    listAllowedMultiRegionClusterUpdates<T>(params: ListAllowedMultiRegionClusterUpdatesInput): Promise<T>;
    listAllowedNodeTypeUpdates<T>(params: ListAllowedNodeTypeUpdatesInput): Promise<T>;
    listTags<T>(params: ListTagsInput): Promise<T>;
    purchaseReservedNodesOffering<T>(params: PurchaseReservedNodesOfferingInput): Promise<T>;
    resetParameterGroup<T>(params: ResetParameterGroupInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateACL<T>(params: UpdateACLInput): Promise<T>;
    updateCluster<T>(params: UpdateClusterInput): Promise<T>;
    updateMultiRegionCluster<T>(params: UpdateMultiRegionClusterInput): Promise<T>;
    updateParameterGroup<T>(params: UpdateParameterGroupInput): Promise<T>;
    updateSubnetGroup<T>(params: UpdateSubnetGroupInput): Promise<T>;
    updateUser<T>(params: UpdateUserInput): Promise<T>;
}
//# sourceMappingURL=MemoryDB.d.ts.map