Module Smaws_Client_MemoryDB.Types

type nonrec exception_message = string
type nonrec user_quota_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of users allowed.

type nonrec user_not_found_fault = {
  1. message : exception_message option;
}

The specified user does not exist.

type nonrec user_name = string
type nonrec user_name_list_input = user_name list
type nonrec user_name_list = user_name list
type nonrec string_ = string
type nonrec acl_name = string
type nonrec acl_name_list = acl_name list
type nonrec authentication_type =
  1. | IAM
  2. | NO_PASSWORD
  3. | PASSWORD
type nonrec integer_optional = int
type nonrec authentication = {
  1. password_count : integer_optional option;
    (*

    The number of passwords belonging to the user. The maximum is two.

    *)
  2. type_ : authentication_type option;
    (*

    Indicates whether the user requires a password to authenticate.

    *)
}

Denotes the user's authentication properties, such as whether it requires a password to authenticate. Used in output responses.

type nonrec user = {
  1. ar_n : string_ option;
    (*

    The Amazon Resource Name (ARN) of the user.

    *)
  2. authentication : authentication option;
    (*

    Denotes whether the user requires a password to authenticate.

    *)
  3. minimum_engine_version : string_ option;
    (*

    The minimum engine version supported for the user

    *)
  4. acl_names : acl_name_list option;
    (*

    The names of the Access Control Lists to which the user belongs

    *)
  5. access_string : string_ option;
    (*

    Access permissions string used for this user.

    *)
  6. status : string_ option;
    (*

    Indicates the user status. Can be "active", "modifying" or "deleting".

    *)
  7. name : string_ option;
    (*

    The name of the user

    *)
}

You create users and assign them specific permissions by using an access string. You assign the users to Access Control Lists aligned with a specific role (administrators, human resources) that are then deployed to one or more MemoryDB clusters.

type nonrec user_list = user list
type nonrec user_already_exists_fault = {
  1. message : exception_message option;
}

A user with the specified name already exists.

type nonrec update_user_response = {
  1. user : user option;
    (*

    The updated user

    *)
}
type nonrec input_authentication_type =
  1. | IAM
  2. | PASSWORD
type nonrec password_list_input = string_ list
type nonrec authentication_mode = {
  1. passwords : password_list_input option;
    (*

    The password(s) used for authentication

    *)
  2. type_ : input_authentication_type option;
    (*

    Indicates whether the user requires a password to authenticate. All newly-created users require a password.

    *)
}

Denotes the user's authentication properties, such as whether it requires a password to authenticate. Used in output responses.

type nonrec access_string = string
type nonrec update_user_request = {
  1. access_string : access_string option;
    (*

    Access permissions string used for this user.

    *)
  2. authentication_mode : authentication_mode option;
    (*

    Denotes the user's authentication properties, such as whether it requires a password to authenticate.

    *)
  3. user_name : user_name;
    (*

    The name of the user

    *)
}
type nonrec invalid_user_state_fault = {
  1. message : exception_message option;
}

The user is not in a valid state for the requested operation.

type nonrec aws_query_error_message = string
type nonrec invalid_parameter_value_exception = {
  1. message : aws_query_error_message option;
}

The specified parameter value is not valid.

type nonrec invalid_parameter_combination_exception = {
  1. message : aws_query_error_message option;
}

The specified parameter combination is not valid.

type nonrec availability_zone = {
  1. name : string_ option;
    (*

    The name of the Availability Zone.

    *)
}

Indicates if the cluster has a Multi-AZ configuration (multiaz) or not (singleaz).

type nonrec network_type =
  1. | DUAL_STACK
  2. | IPV6
  3. | IPV4
type nonrec network_type_list = network_type list
type nonrec subnet = {
  1. supported_network_types : network_type_list option;
    (*

    The network types supported by this subnet. Returns an array of strings that can include 'ipv4', 'ipv6', or both, indicating whether the subnet supports IPv4 only, IPv6 only, or dual-stack deployments.

    *)
  2. availability_zone : availability_zone option;
    (*

    The Availability Zone where the subnet resides

    *)
  3. identifier : string_ option;
    (*

    The unique identifier for the subnet.

    *)
}

Represents the subnet associated with a cluster. This parameter refers to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with MemoryDB.

type nonrec subnet_list = subnet list
type nonrec subnet_group = {
  1. supported_network_types : network_type_list option;
    (*

    The network types supported by this subnet group. Returns an array of strings that can include 'ipv4', 'ipv6', or both, indicating the IP address types that can be used for clusters deployed in this subnet group.

    *)
  2. ar_n : string_ option;
    (*

    The ARN (Amazon Resource Name) of the subnet group.

    *)
  3. subnets : subnet_list option;
    (*

    A list of subnets associated with the subnet group.

    *)
  4. vpc_id : string_ option;
    (*

    The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet group.

    *)
  5. description : string_ option;
    (*

    A description of the subnet group

    *)
  6. name : string_ option;
    (*

    The name of the subnet group

    *)
}

Represents the output of one of the following operations:

  • CreateSubnetGroup
  • UpdateSubnetGroup

A subnet group is a collection of subnets (typically private) that you can designate for your clusters running in an Amazon Virtual Private Cloud (VPC) environment.

type nonrec update_subnet_group_response = {
  1. subnet_group : subnet_group option;
    (*

    The updated subnet group

    *)
}
type nonrec subnet_identifier_list = string_ list
type nonrec update_subnet_group_request = {
  1. subnet_ids : subnet_identifier_list option;
    (*

    The EC2 subnet IDs for the subnet group.

    *)
  2. description : string_ option;
    (*

    A description of the subnet group

    *)
  3. subnet_group_name : string_;
    (*

    The name of the subnet group

    *)
}
type nonrec subnet_quota_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of subnets allowed.

type nonrec subnet_not_allowed_fault = {
  1. message : exception_message option;
}

The specified subnet is not allowed for this operation.

type nonrec subnet_in_use = {
  1. message : exception_message option;
}

The subnet is currently in use and cannot be deleted.

type nonrec subnet_group_not_found_fault = {
  1. message : exception_message option;
}

The specified subnet group does not exist.

type nonrec service_linked_role_not_found_fault = {
  1. message : exception_message option;
}

The required service-linked role was not found.

type nonrec invalid_subnet = {
  1. message : exception_message option;
}

The specified subnet is not valid.

type nonrec update_strategy =
  1. | UNCOORDINATED
  2. | COORDINATED
type nonrec parameter_group = {
  1. ar_n : string_ option;
    (*

    The Amazon Resource Name (ARN) of the parameter group

    *)
  2. description : string_ option;
    (*

    A description of the parameter group

    *)
  3. family : string_ option;
    (*

    The name of the parameter group family that this parameter group is compatible with.

    *)
  4. name : string_ option;
    (*

    The name of the parameter group

    *)
}

Represents the output of a CreateParameterGroup operation. A parameter group represents a combination of specific values for the parameters that are passed to the engine software during startup.

type nonrec update_parameter_group_response = {
  1. parameter_group : parameter_group option;
    (*

    The updated parameter group

    *)
}
type nonrec parameter_name_value = {
  1. parameter_value : string_ option;
    (*

    The value of the parameter

    *)
  2. parameter_name : string_ option;
    (*

    The name of the parameter

    *)
}

Describes a name-value pair that is used to update the value of a parameter.

type nonrec parameter_name_value_list = parameter_name_value list
type nonrec update_parameter_group_request = {
  1. parameter_name_values : parameter_name_value_list;
    (*

    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 request.

    *)
  2. parameter_group_name : string_;
    (*

    The name of the parameter group to update.

    *)
}
type nonrec parameter_group_not_found_fault = {
  1. message : exception_message option;
}

The specified parameter group does not exist.

type nonrec invalid_parameter_group_state_fault = {
  1. message : exception_message option;
}

The parameter group is not in a valid state for the requested operation.

type nonrec regional_cluster = {
  1. ar_n : string_ option;
    (*

    The Amazon Resource Name (ARN) the Regional cluster

    *)
  2. status : string_ option;
    (*

    The status of the Regional cluster.

    *)
  3. region : string_ option;
    (*

    The Region the current Regional cluster is assigned to.

    *)
  4. cluster_name : string_ option;
    (*

    The name of the Regional cluster

    *)
}

Represents a Regional cluster

type nonrec regional_cluster_list = regional_cluster list
type nonrec boolean_optional = bool
type nonrec multi_region_cluster = {
  1. ar_n : string_ option;
    (*

    The Amazon Resource Name (ARN) of the multi-Region cluster.

    *)
  2. tls_enabled : boolean_optional option;
    (*

    Indiciates if the multi-Region cluster is TLS enabled.

    *)
  3. multi_region_parameter_group_name : string_ option;
    (*

    The name of the multi-Region parameter group associated with the cluster.

    *)
  4. clusters : regional_cluster_list option;
    (*

    The clusters in this multi-Region cluster.

    *)
  5. number_of_shards : integer_optional option;
    (*

    The number of shards in the multi-Region cluster.

    *)
  6. engine_version : string_ option;
    (*

    The version of the engine used by the multi-Region cluster.

    *)
  7. engine : string_ option;
    (*

    The name of the engine used by the multi-Region cluster.

    *)
  8. node_type : string_ option;
    (*

    The node type used by the multi-Region cluster.

    *)
  9. status : string_ option;
    (*

    The current status of the multi-Region cluster.

    *)
  10. description : string_ option;
    (*

    The description of the multi-Region cluster.

    *)
  11. multi_region_cluster_name : string_ option;
    (*

    The name of the multi-Region cluster.

    *)
}

Represents a multi-Region cluster.

type nonrec update_multi_region_cluster_response = {
  1. multi_region_cluster : multi_region_cluster option;
    (*

    The status of updating the multi-Region cluster.

    *)
}
type nonrec integer = int
type nonrec shard_configuration_request = {
  1. shard_count : integer option;
    (*

    The number of shards in the cluster

    *)
}

A request to configure the sharding properties of a cluster

type nonrec update_multi_region_cluster_request = {
  1. update_strategy : update_strategy option;
    (*

    The strategy to use for the update operation. Supported values are "coordinated" or "uncoordinated".

    *)
  2. multi_region_parameter_group_name : string_ option;
    (*

    The new multi-Region parameter group to be associated with the cluster.

    *)
  3. shard_configuration : shard_configuration_request option;
  4. engine_version : string_ option;
    (*

    The new engine version to be used for the multi-Region cluster.

    *)
  5. description : string_ option;
    (*

    A new description for the multi-Region cluster.

    *)
  6. node_type : string_ option;
    (*

    The new node type to be used for the multi-Region cluster.

    *)
  7. multi_region_cluster_name : string_;
    (*

    The name of the multi-Region cluster to be updated.

    *)
}
type nonrec multi_region_parameter_group_not_found_fault = {
  1. message : exception_message option;
}

The specified multi-Region parameter group does not exist.

type nonrec multi_region_cluster_not_found_fault = {
  1. message : exception_message option;
}

The specified multi-Region cluster does not exist.

type nonrec invalid_multi_region_cluster_state_fault = {
  1. message : exception_message option;
}

The requested operation cannot be performed on the multi-Region cluster in its current state.

type nonrec double = float
type nonrec slot_migration = {
  1. progress_percentage : double option;
    (*

    The percentage of the slot migration that is complete.

    *)
}

Represents the progress of an online resharding operation.

type nonrec resharding_status = {
  1. slot_migration : slot_migration option;
    (*

    The status of the online resharding slot migration

    *)
}

The status of the online resharding

type nonrec ac_ls_update_status = {
  1. acl_to_apply : acl_name option;
    (*

    A list of ACLs pending to be applied.

    *)
}

The status of the ACL update

type nonrec service_update_status =
  1. | SCHEDULED
  2. | COMPLETE
  3. | IN_PROGRESS
  4. | NOT_APPLIED
type nonrec pending_modified_service_update = {
  1. status : service_update_status option;
    (*

    The status of the service update

    *)
  2. service_update_name : string_ option;
    (*

    The unique ID of the service update

    *)
}

Update action that has yet to be processed for the corresponding apply/stop request

type nonrec pending_modified_service_update_list = pending_modified_service_update list
type nonrec cluster_pending_updates = {
  1. service_updates : pending_modified_service_update_list option;
    (*

    A list of service updates being applied to the cluster

    *)
  2. ac_ls : ac_ls_update_status option;
    (*

    A list of ACLs associated with the cluster that are being updated

    *)
  3. resharding : resharding_status option;
    (*

    The status of an online resharding operation.

    *)
}

A list of updates being applied to the cluster

type nonrec t_stamp = Smaws_Lib.CoreTypes.Timestamp.t
type nonrec endpoint = {
  1. port : integer option;
    (*

    The port number that the engine is listening on.

    *)
  2. address : string_ option;
    (*

    The DNS hostname of the node.

    *)
}

Represents the information required for client programs to connect to the cluster and its nodes.

type nonrec node = {
  1. endpoint : endpoint option;
    (*

    The hostname for connecting to this node.

    *)
  2. create_time : t_stamp option;
    (*

    The date and time when the node was created.

    *)
  3. availability_zone : string_ option;
    (*

    The Availability Zone in which the node resides

    *)
  4. status : string_ option;
    (*

    The status of the service update on the node

    *)
  5. name : string_ option;
    (*

    The node identifier. A node name is a numeric identifier (0001, 0002, etc.). The combination of cluster name, shard name and node name uniquely identifies every node used in a customer's Amazon account.

    *)
}

Represents an individual node within a cluster. Each node runs its own instance of the cluster's protocol-compliant caching software.

type nonrec node_list = node list
type nonrec shard = {
  1. number_of_nodes : integer_optional option;
    (*

    The number of nodes in the shard

    *)
  2. nodes : node_list option;
    (*

    A list containing information about individual nodes within the shard

    *)
  3. slots : string_ option;
    (*

    The keyspace for this shard.

    *)
  4. status : string_ option;
    (*

    The current state of this replication group - creating, available, modifying, deleting.

    *)
  5. name : string_ option;
    (*

    The name of the shard

    *)
}

Represents a collection of nodes in a cluster. One node in the node group is the read/write primary node. All the other nodes are read-only Replica nodes.

type nonrec shard_list = shard list
type nonrec az_status =
  1. | MultiAZ
  2. | SingleAZ
type nonrec security_group_membership = {
  1. status : string_ option;
    (*

    The status of the security group membership. The status changes whenever a security group is modified, or when the security groups assigned to a cluster are modified.

    *)
  2. security_group_id : string_ option;
    (*

    The identifier of the security group.

    *)
}

Represents a single security group and its status.

type nonrec security_group_membership_list = security_group_membership list
type nonrec data_tiering_status =
  1. | FALSE
  2. | TRUE
type nonrec ip_discovery =
  1. | IPV6
  2. | IPV4
type nonrec cluster = {
  1. ip_discovery : ip_discovery option;
    (*

    The mechanism that the cluster uses to discover IP addresses. Returns 'ipv4' when DNS endpoints resolve to IPv4 addresses, or 'ipv6' when DNS endpoints resolve to IPv6 addresses.

    *)
  2. network_type : network_type option;
    (*

    The IP address type for the cluster. Returns 'ipv4' for IPv4 only, 'ipv6' for IPv6 only, or 'dual-stack' if the cluster supports both IPv4 and IPv6 addressing.

    *)
  3. data_tiering : data_tiering_status option;
    (*

    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.

    *)
  4. auto_minor_version_upgrade : boolean_optional option;
    (*

    When set to true, the cluster will automatically receive minor engine version upgrades after launch.

    *)
  5. acl_name : acl_name option;
    (*

    The name of the Access Control List associated with this cluster.

    *)
  6. snapshot_window : string_ option;
    (*

    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 appropriate time range.

    *)
  7. maintenance_window : string_ option;
    (*

    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 is a 60 minute period.

    *)
  8. snapshot_retention_limit : integer_optional option;
    (*

    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 before being deleted.

    *)
  9. sns_topic_status : string_ option;
    (*

    The SNS topic must be in Active status to receive notifications

    *)
  10. sns_topic_arn : string_ option;
    (*

    The Amazon Resource Name (ARN) of the SNS notification topic

    *)
  11. ar_n : string_ option;
    (*

    The Amazon Resource Name (ARN) of the cluster.

    *)
  12. kms_key_id : string_ option;
    (*

    The ID of the KMS key used to encrypt the cluster

    *)
  13. tls_enabled : boolean_optional option;
    (*

    A flag to indicate if In-transit encryption is enabled

    *)
  14. subnet_group_name : string_ option;
    (*

    The name of the subnet group used by the cluster

    *)
  15. security_groups : security_group_membership_list option;
    (*

    A list of security groups used by the cluster

    *)
  16. parameter_group_status : string_ option;
    (*

    The status of the parameter group used by the cluster, for example 'active' or 'applying'.

    *)
  17. parameter_group_name : string_ option;
    (*

    The name of the parameter group used by the cluster

    *)
  18. engine_patch_version : string_ option;
    (*

    The Redis OSS engine patch version used by the cluster

    *)
  19. engine_version : string_ option;
    (*

    The Redis OSS engine version used by the cluster

    *)
  20. engine : string_ option;
    (*

    The name of the engine used by the cluster.

    *)
  21. node_type : string_ option;
    (*

    The cluster's node type

    *)
  22. cluster_endpoint : endpoint option;
    (*

    The cluster's configuration endpoint

    *)
  23. availability_mode : az_status option;
    (*

    Indicates if the cluster has a Multi-AZ configuration (multiaz) or not (singleaz).

    *)
  24. shards : shard_list option;
    (*

    A list of shards that are members of the cluster.

    *)
  25. number_of_shards : integer_optional option;
    (*

    The number of shards in the cluster

    *)
  26. multi_region_cluster_name : string_ option;
    (*

    The name of the multi-Region cluster that this cluster belongs to.

    *)
  27. pending_updates : cluster_pending_updates option;
    (*

    A group of settings that are currently being applied.

    *)
  28. status : string_ option;
    (*

    The status of the cluster. For example, Available, Updating, Creating.

    *)
  29. description : string_ option;
    (*

    A description of the cluster

    *)
  30. name : string_ option;
    (*

    The user-supplied name of the cluster. This identifier is a unique key that identifies a cluster.

    *)
}

Contains all of the attributes of a specific cluster.

type nonrec update_cluster_response = {
  1. cluster : cluster option;
    (*

    The updated cluster.

    *)
}
type nonrec security_group_ids_list = string_ list
type nonrec replica_configuration_request = {
  1. replica_count : integer option;
    (*

    The number of replicas to scale up or down to

    *)
}

A request to configure the number of replicas in a shard

type nonrec update_cluster_request = {
  1. ip_discovery : ip_discovery option;
    (*

    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, and cluster nodes will return IPv4 addresses for cluster nodes. When set to 'ipv6', the cluster discovery functions return IPv6 addresses for cluster nodes. The value must be compatible with the NetworkType parameter. If not specified, the default is 'ipv4'.

    *)
  2. acl_name : acl_name option;
    (*

    The Access Control List that is associated with the cluster.

    *)
  3. shard_configuration : shard_configuration_request option;
    (*

    The number of shards in the cluster.

    *)
  4. replica_configuration : replica_configuration_request option;
    (*

    The number of replicas that will reside in each shard.

    *)
  5. engine_version : string_ option;
    (*

    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 version, you must delete the existing cluster and create it anew with the earlier engine version.

    *)
  6. engine : string_ option;
    (*

    The name of the engine to be used for the cluster.

    *)
  7. node_type : string_ option;
    (*

    A valid node type that you want to scale this cluster up or down to.

    *)
  8. snapshot_retention_limit : integer_optional option;
    (*

    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 days before being deleted.

    *)
  9. snapshot_window : string_ option;
    (*

    The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your cluster.

    *)
  10. parameter_group_name : string_ option;
    (*

    The name of the parameter group to update.

    *)
  11. sns_topic_status : string_ option;
    (*

    The status of the Amazon SNS notification topic. Notifications are sent only if the status is active.

    *)
  12. sns_topic_arn : string_ option;
    (*

    The SNS topic ARN to update.

    *)
  13. maintenance_window : string_ option;
    (*

    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 is a 60 minute period.

    Valid values for ddd are:

    • sun
    • mon
    • tue
    • wed
    • thu
    • fri
    • sat

    Example: sun:23:00-mon:01:30

    *)
  14. security_group_ids : security_group_ids_list option;
    (*

    The SecurityGroupIds to update.

    *)
  15. description : string_ option;
    (*

    The description of the cluster to update.

    *)
  16. cluster_name : string_;
    (*

    The name of the cluster to update.

    *)
}
type nonrec shards_per_cluster_quota_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of shards allowed per cluster.

type nonrec no_operation_fault = {
  1. message : exception_message option;
}

The requested operation would result in no changes.

type nonrec node_quota_for_customer_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of nodes allowed for this customer.

type nonrec node_quota_for_cluster_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of nodes allowed for this cluster.

type nonrec invalid_vpc_network_state_fault = {
  1. message : exception_message option;
}

The VPC network is not in a valid state for the requested operation.

type nonrec invalid_node_state_fault = {
  1. message : exception_message option;
}

The node is not in a valid state for the requested operation.

type nonrec invalid_kms_key_fault = {
  1. message : exception_message option;
}

The specified KMS key is not valid or accessible.

type nonrec invalid_cluster_state_fault = {
  1. message : exception_message option;
}

The cluster is not in a valid state for the requested operation.

type nonrec invalid_acl_state_fault = {
  1. message : exception_message option;
}

The ACL is not in a valid state for the requested operation.

type nonrec cluster_quota_for_customer_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of clusters allowed for this customer.

type nonrec cluster_not_found_fault = {
  1. message : exception_message option;
}

The specified cluster does not exist.

type nonrec acl_not_found_fault = {
  1. message : exception_message option;
}

The specified ACL does not exist.

type nonrec acl_pending_changes = {
  1. user_names_to_add : user_name_list option;
    (*

    A list of users being added to the ACL

    *)
  2. user_names_to_remove : user_name_list option;
    (*

    A list of user names being removed from the ACL

    *)
}

Returns the updates being applied to the ACL.

type nonrec acl_cluster_name_list = string_ list
type nonrec ac_l = {
  1. ar_n : string_ option;
    (*

    The Amazon Resource Name (ARN) of the ACL

    *)
  2. clusters : acl_cluster_name_list option;
    (*

    A list of clusters associated with the ACL.

    *)
  3. pending_changes : acl_pending_changes option;
    (*

    A list of updates being applied to the ACL.

    *)
  4. minimum_engine_version : string_ option;
    (*

    The minimum engine version supported for the ACL

    *)
  5. user_names : user_name_list option;
    (*

    The list of user names that belong to the ACL.

    *)
  6. status : string_ option;
    (*

    Indicates ACL status. Can be "creating", "active", "modifying", "deleting".

    *)
  7. name : string_ option;
    (*

    The name of the Access Control List

    *)
}

An Access Control List. You can authenticate users with Access Contol Lists. ACLs enable you to control cluster access by grouping users. These Access control lists are designed as a way to organize access to clusters.

type nonrec update_acl_response = {
  1. ac_l : ac_l option;
    (*

    The updated Access Control List.

    *)
}
type nonrec update_acl_request = {
  1. user_names_to_remove : user_name_list_input option;
    (*

    The list of users to remove from the Access Control List.

    *)
  2. user_names_to_add : user_name_list_input option;
    (*

    The list of users to add to the Access Control List.

    *)
  3. acl_name : string_;
    (*

    The name of the Access Control List.

    *)
}
type nonrec duplicate_user_name_fault = {
  1. message : exception_message option;
}

A user with the specified name already exists.

type nonrec default_user_required = {
  1. message : exception_message option;
}

A default user is required and must be specified.

type nonrec tag = {
  1. value : string_ option;
    (*

    The tag's value. May be null.

    *)
  2. key : string_ option;
    (*

    The key for the tag. May not be null.

    *)
}

A tag that can be added to an MemoryDB resource. Tags are composed of a Key/Value pair. You can use tags to categorize and track all your MemoryDB resources. When you add or remove tags on clusters, those actions will be replicated to all nodes in the cluster. A tag with a null Value is permitted. For more information, see Tagging your MemoryDB resources

type nonrec tag_list = tag list
type nonrec untag_resource_response = {
  1. tag_list : tag_list option;
    (*

    The list of tags removed.

    *)
}
type nonrec key_list = string_ list
type nonrec untag_resource_request = {
  1. tag_keys : key_list;
    (*

    The list of keys of the tags that are to be removed.

    *)
  2. resource_arn : string_;
    (*

    The Amazon Resource Name (ARN) of the resource to which the tags are to be removed.

    *)
}
type nonrec tag_not_found_fault = {
  1. message : exception_message option;
}

The specified tag does not exist.

type nonrec snapshot_not_found_fault = {
  1. message : exception_message option;
}

The specified snapshot does not exist.

type nonrec invalid_arn_fault = {
  1. message : exception_message option;
}

The specified Amazon Resource Name (ARN) is not valid.

type nonrec unprocessed_cluster = {
  1. error_message : string_ option;
    (*

    The error message associated with the update failure

    *)
  2. error_type : string_ option;
    (*

    The error type associated with the update failure

    *)
  3. cluster_name : string_ option;
    (*

    The name of the cluster

    *)
}

A cluster whose updates have failed

type nonrec unprocessed_cluster_list = unprocessed_cluster list
type nonrec test_failover_not_available_fault = {
  1. message : exception_message option;
}

Test failover is not available for this cluster configuration.

type nonrec target_bucket = string
type nonrec tag_resource_response = {
  1. tag_list : tag_list option;
    (*

    A list of tags as key-value pairs.

    *)
}
type nonrec tag_resource_request = {
  1. tags : tag_list;
    (*

    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.

    *)
  2. resource_arn : string_;
    (*

    The Amazon Resource Name (ARN) of the resource to which the tags are to be added.

    *)
}
type nonrec tag_quota_per_resource_exceeded = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of tags allowed per resource.

type nonrec subnet_group_quota_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of subnet groups allowed.

type nonrec subnet_group_list = subnet_group list
type nonrec subnet_group_in_use_fault = {
  1. message : exception_message option;
}

The subnet group is currently in use and cannot be deleted.

type nonrec subnet_group_already_exists_fault = {
  1. message : exception_message option;
}

A subnet group with the specified name already exists.

type nonrec source_type =
  1. | Acl
  2. | User
  3. | Cluster
  4. | Subnet_group
  5. | Parameter_group
  6. | Node
type nonrec snapshot_quota_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of snapshots allowed.

type nonrec shard_configuration = {
  1. replica_count : integer_optional option;
    (*

    The number of read replica nodes in this shard.

    *)
  2. slots : string_ option;
    (*

    A string that specifies the keyspace for a particular node group. Keyspaces range from 0 to 16,383. The string is in the format startkey-endkey.

    *)
}

Shard configuration options. Each shard configuration has the following: Slots and ReplicaCount.

type nonrec shard_detail = {
  1. snapshot_creation_time : t_stamp option;
    (*

    The date and time that the shard's snapshot was created

    *)
  2. size : string_ option;
    (*

    The size of the shard's snapshot

    *)
  3. configuration : shard_configuration option;
    (*

    The configuration details of the shard

    *)
  4. name : string_ option;
    (*

    The name of the shard

    *)
}

Provides details of a shard in a snapshot

type nonrec shard_details = shard_detail list
type nonrec cluster_configuration = {
  1. multi_region_cluster_name : string_ option;
    (*

    The name for the multi-Region cluster associated with the cluster configuration.

    *)
  2. multi_region_parameter_group_name : string_ option;
    (*

    The name of the multi-Region parameter group associated with the cluster configuration.

    *)
  3. shards : shard_details option;
    (*

    The list of shards in the cluster

    *)
  4. num_shards : integer_optional option;
    (*

    The number of shards in the cluster

    *)
  5. snapshot_window : string_ option;
    (*

    The snapshot window set by the cluster

    *)
  6. snapshot_retention_limit : integer_optional option;
    (*

    The snapshot retention limit set by the cluster

    *)
  7. vpc_id : string_ option;
    (*

    The ID of the VPC the cluster belongs to

    *)
  8. subnet_group_name : string_ option;
    (*

    The name of the subnet group used by the cluster

    *)
  9. parameter_group_name : string_ option;
    (*

    The name of parameter group used by the cluster

    *)
  10. port : integer_optional option;
    (*

    The port used by the cluster

    *)
  11. topic_arn : string_ option;
    (*

    The Amazon Resource Name (ARN) of the SNS notification topic for the cluster

    *)
  12. maintenance_window : string_ option;
    (*

    The specified maintenance window for the cluster

    *)
  13. engine_version : string_ option;
    (*

    The Redis OSS engine version used by the cluster

    *)
  14. engine : string_ option;
    (*

    The name of the engine used by the cluster configuration.

    *)
  15. node_type : string_ option;
    (*

    The node type used for the cluster

    *)
  16. description : string_ option;
    (*

    The description of the cluster configuration

    *)
  17. name : string_ option;
    (*

    The name of the cluster

    *)
}

A list of cluster configuration options.

type nonrec snapshot = {
  1. data_tiering : data_tiering_status option;
    (*

    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.

    *)
  2. cluster_configuration : cluster_configuration option;
    (*

    The configuration of the cluster from which the snapshot was taken

    *)
  3. ar_n : string_ option;
    (*

    The ARN (Amazon Resource Name) of the snapshot.

    *)
  4. kms_key_id : string_ option;
    (*

    The ID of the KMS key used to encrypt the snapshot.

    *)
  5. source : string_ option;
    (*

    Indicates whether the snapshot is from an automatic backup (automated) or was created manually (manual).

    *)
  6. status : string_ option;
    (*

    The status of the snapshot. Valid values: creating | available | restoring | copying | deleting.

    *)
  7. name : string_ option;
    (*

    The name of the snapshot

    *)
}

Represents a copy of an entire cluster as of the time when the snapshot was taken.

type nonrec snapshot_list = snapshot list
type nonrec snapshot_arns_list = string_ list
type nonrec snapshot_already_exists_fault = {
  1. message : exception_message option;
}

A snapshot with the specified name already exists.

type nonrec shard_not_found_fault = {
  1. message : exception_message option;
}

The specified shard does not exist.

type nonrec service_update_type =
  1. | SECURITY_UPDATE
type nonrec service_update_status_list = service_update_status list
type nonrec service_update_request = {
  1. service_update_name_to_apply : string_ option;
    (*

    The unique ID of the service update

    *)
}

A request to apply a service update

type nonrec service_update_not_found_fault = {
  1. message : exception_message option;
}

The specified service update does not exist.

type nonrec service_update = {
  1. auto_update_start_date : t_stamp option;
    (*

    The date at which the service update will be automatically applied

    *)
  2. nodes_updated : string_ option;
    (*

    A list of nodes updated by the service update

    *)
  3. engine : string_ option;
    (*

    The name of the engine for which a service update is available.

    *)
  4. type_ : service_update_type option;
    (*

    Reflects the nature of the service update

    *)
  5. status : service_update_status option;
    (*

    The status of the service update

    *)
  6. description : string_ option;
    (*

    Provides details of the service update

    *)
  7. release_date : t_stamp option;
    (*

    The date when the service update is initially available

    *)
  8. service_update_name : string_ option;
    (*

    The unique ID of the service update

    *)
  9. cluster_name : string_ option;
    (*

    The name of the cluster to which the service update applies

    *)
}

An update that you can apply to your MemoryDB clusters.

type nonrec service_update_list = service_update list
type nonrec reset_parameter_group_response = {
  1. parameter_group : parameter_group option;
    (*

    The parameter group being reset.

    *)
}
type nonrec boolean_ = bool
type nonrec parameter_name_list = string_ list
type nonrec reset_parameter_group_request = {
  1. parameter_names : parameter_name_list option;
    (*

    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 reset.

    *)
  2. all_parameters : boolean_ option;
    (*

    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.

    *)
  3. parameter_group_name : string_;
    (*

    The name of the parameter group to reset.

    *)
}
type nonrec reserved_nodes_offering_not_found_fault = {
  1. message : exception_message option;
}

The requested node offering does not exist.

type nonrec recurring_charge = {
  1. recurring_charge_frequency : string_ option;
    (*

    The frequency of the recurring price charged to run this reserved node.

    *)
  2. recurring_charge_amount : double option;
    (*

    The amount of the recurring charge to run this reserved node.

    *)
}

The recurring charge to run this reserved node.

type nonrec recurring_charge_list = recurring_charge list
type nonrec reserved_nodes_offering = {
  1. recurring_charges : recurring_charge_list option;
    (*

    The recurring price charged to run this reserved node.

    *)
  2. offering_type : string_ option;
    (*

    The offering type of this reserved node.

    *)
  3. fixed_price : double option;
    (*

    The fixed price charged for this reserved node.

    *)
  4. duration : integer option;
    (*

    The duration of the reservation in seconds.

    *)
  5. node_type : string_ option;
    (*

    The node type for the reserved nodes. For more information, see Supported node types.

    *)
  6. reserved_nodes_offering_id : string_ option;
    (*

    The offering identifier.

    *)
}

The offering type of this node.

type nonrec reserved_nodes_offering_list = reserved_nodes_offering list
type nonrec reserved_node_quota_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the user's node quota.

type nonrec reserved_node_not_found_fault = {
  1. message : exception_message option;
}

The requested node does not exist.

type nonrec reserved_node = {
  1. ar_n : string_ option;
    (*

    The Amazon Resource Name (ARN) of the reserved node.

    *)
  2. recurring_charges : recurring_charge_list option;
    (*

    The recurring price charged to run this reserved node.

    *)
  3. state : string_ option;
    (*

    The state of the reserved node.

    *)
  4. offering_type : string_ option;
    (*

    The offering type of this reserved node.

    *)
  5. node_count : integer option;
    (*

    The number of nodes that have been reserved.

    *)
  6. fixed_price : double option;
    (*

    The fixed price charged for this reserved node.

    *)
  7. duration : integer option;
    (*

    The duration of the reservation in seconds.

    *)
  8. start_time : t_stamp option;
    (*

    The time the reservation started.

    *)
  9. node_type : string_ option;
    (*

    The node type for the reserved nodes.

    *)
  10. reserved_nodes_offering_id : string_ option;
    (*

    The ID of the reserved node offering to purchase.

    *)
  11. reservation_id : string_ option;
    (*

    A customer-specified identifier to track this reservation.

    *)
}

Represents the output of a PurchaseReservedNodesOffering operation.

type nonrec reserved_node_list = reserved_node list
type nonrec reserved_node_already_exists_fault = {
  1. message : exception_message option;
}

You already have a reservation with the given identifier.

type nonrec purchase_reserved_nodes_offering_response = {
  1. reserved_node : reserved_node option;
    (*

    Represents the output of a PurchaseReservedNodesOffering operation.

    *)
}
type nonrec purchase_reserved_nodes_offering_request = {
  1. tags : tag_list option;
    (*

    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.

    *)
  2. node_count : integer_optional option;
    (*

    The number of node instances to reserve.

    *)
  3. reservation_id : string_ option;
    (*

    A customer-specified identifier to track this reservation.

    *)
  4. reserved_nodes_offering_id : string_;
    (*

    The ID of the reserved node offering to purchase.

    *)
}
type nonrec parameter = {
  1. minimum_engine_version : string_ option;
    (*

    The earliest engine version to which the parameter can apply.

    *)
  2. allowed_values : string_ option;
    (*

    The valid range of values for the parameter.

    *)
  3. data_type : string_ option;
    (*

    The parameter's data type

    *)
  4. description : string_ option;
    (*

    A description of the parameter

    *)
  5. value : string_ option;
    (*

    The value of the parameter

    *)
  6. name : string_ option;
    (*

    The name of the parameter

    *)
}

Describes an individual setting that controls some aspect of MemoryDB behavior.

type nonrec parameters_list = parameter list
type nonrec parameter_group_quota_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of parameter groups allowed.

type nonrec parameter_group_list = parameter_group list
type nonrec parameter_group_already_exists_fault = {
  1. message : exception_message option;
}

A parameter group with the specified name already exists.

type nonrec node_type_list = string_ list
type nonrec multi_region_parameter = {
  1. minimum_engine_version : string_ option;
    (*

    The earliest engine version to which the parameter can apply.

    *)
  2. allowed_values : string_ option;
    (*

    The valid range of values for the parameter.

    *)
  3. data_type : string_ option;
    (*

    The valid data type for the parameter.

    *)
  4. source : string_ option;
    (*

    Indicates the source of the parameter value. Valid values: user | system | engine-default

    *)
  5. description : string_ option;
    (*

    A description of the parameter.

    *)
  6. value : string_ option;
    (*

    The value of the parameter.

    *)
  7. name : string_ option;
    (*

    The name of the parameter.

    *)
}

Describes an individual setting that controls some aspect of MemoryDB behavior across multiple regions.

type nonrec multi_region_parameters_list = multi_region_parameter list
type nonrec multi_region_parameter_group = {
  1. ar_n : string_ option;
    (*

    The Amazon Resource Name (ARN) of the multi-region parameter group.

    *)
  2. description : string_ option;
    (*

    A description of the multi-region parameter group.

    *)
  3. family : string_ option;
    (*

    The name of the parameter group family that this multi-region parameter group is compatible with.

    *)
  4. name : string_ option;
    (*

    The name of the multi-region parameter group.

    *)
}

Represents the output of a CreateMultiRegionParameterGroup operation. A multi-region parameter group represents a collection of parameters that can be applied to clusters across multiple regions.

type nonrec multi_region_parameter_group_list = multi_region_parameter_group list
type nonrec multi_region_cluster_list = multi_region_cluster list
type nonrec multi_region_cluster_already_exists_fault = {
  1. message : exception_message option;
}

A multi-Region cluster with the specified name already exists.

type nonrec list_tags_response = {
  1. tag_list : tag_list option;
    (*

    A list of tags as key-value pairs.

    *)
}
type nonrec list_tags_request = {
  1. resource_arn : string_;
    (*

    The Amazon Resource Name (ARN) of the resource for which you want the list of tags.

    *)
}
type nonrec list_allowed_node_type_updates_response = {
  1. scale_down_node_types : node_type_list option;
    (*

    A list node types which you can use to scale down your cluster.

    *)
  2. scale_up_node_types : node_type_list option;
    (*

    A list node types which you can use to scale up your cluster.

    *)
}
type nonrec list_allowed_node_type_updates_request = {
  1. cluster_name : string_;
    (*

    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.

    *)
}
type nonrec list_allowed_multi_region_cluster_updates_response = {
  1. scale_down_node_types : node_type_list option;
    (*

    The node types that the cluster can be scaled down to.

    *)
  2. scale_up_node_types : node_type_list option;
    (*

    The node types that the cluster can be scaled up to.

    *)
}
type nonrec list_allowed_multi_region_cluster_updates_request = {
  1. multi_region_cluster_name : string_;
    (*

    The name of the multi-Region cluster.

    *)
}
type nonrec kms_key_id = string
type nonrec invalid_snapshot_state_fault = {
  1. message : exception_message option;
}

The snapshot is not in a valid state for the requested operation.

type nonrec invalid_credentials_exception = {
  1. message : exception_message option;
}

The provided credentials are not valid.

type nonrec insufficient_cluster_capacity_fault = {
  1. message : exception_message option;
}

The cluster does not have sufficient capacity to perform the requested operation.

type nonrec filter_value = string
type nonrec filter_value_list = filter_value list
type nonrec filter_name = string
type nonrec filter = {
  1. values : filter_value_list;
    (*

    The property values to filter on. For example, "user-123".

    *)
  2. name : filter_name;
    (*

    The property being filtered. For example, UserName.

    *)
}

Used to streamline results of a search based on the property being filtered.

type nonrec filter_list = filter list
type nonrec failover_shard_response = {
  1. cluster : cluster option;
    (*

    The cluster being failed over.

    *)
}
type nonrec failover_shard_request = {
  1. shard_name : string_;
    (*

    The name of the shard.

    *)
  2. cluster_name : string_;
    (*

    The cluster being failed over.

    *)
}
type nonrec api_call_rate_for_customer_exceeded_fault = {
  1. message : exception_message option;
}

The customer has exceeded the maximum number of API requests allowed per time period.

type nonrec event = {
  1. date : t_stamp option;
    (*

    The date and time when the event occurred.

    *)
  2. message : string_ option;
    (*

    The text of the event.

    *)
  3. source_type : source_type option;
    (*

    Specifies the origin of this event - a cluster, a parameter group, a security group, etc.

    *)
  4. source_name : string_ option;
    (*

    The name for the source of the event. For example, if the event occurred at the cluster level, the identifier would be the name of the cluster.

    *)
}

Represents a single occurrence of something interesting within the system. Some examples of events are creating a cluster or adding or removing a node.

type nonrec event_list = event list
type nonrec engine_version_info = {
  1. parameter_group_family : string_ option;
    (*

    Specifies the name of the parameter group family to which the engine default parameters apply.

    *)
  2. engine_patch_version : string_ option;
    (*

    The patched engine version

    *)
  3. engine_version : string_ option;
    (*

    The engine version

    *)
  4. engine : string_ option;
    (*

    The name of the engine for which version information is provided.

    *)
}

Provides details of the Redis OSS engine version

type nonrec engine_version_info_list = engine_version_info list
type nonrec describe_users_response = {
  1. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  2. users : user_list option;
    (*

    A list of users.

    *)
}
type nonrec describe_users_request = {
  1. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. filters : filter_list option;
    (*

    Filter to determine the list of users to return.

    *)
  4. user_name : user_name option;
    (*

    The name of the user.

    *)
}
type nonrec describe_subnet_groups_response = {
  1. subnet_groups : subnet_group_list option;
    (*

    A list of subnet groups. Each element in the list contains detailed information about one group.

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
}
type nonrec describe_subnet_groups_request = {
  1. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. subnet_group_name : string_ option;
    (*

    The name of the subnet group to return details for.

    *)
}
type nonrec describe_snapshots_response = {
  1. snapshots : snapshot_list option;
    (*

    A list of snapshots. Each item in the list contains detailed information about one snapshot.

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
}
type nonrec describe_snapshots_request = {
  1. show_detail : boolean_optional option;
    (*

    A Boolean value which if true, the shard configuration is included in the snapshot description.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  4. source : string_ option;
    (*

    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 automatically and manually created snapshots.

    *)
  5. snapshot_name : string_ option;
    (*

    A user-supplied name of the snapshot. If this parameter is specified, only this named snapshot is described.

    *)
  6. cluster_name : string_ option;
    (*

    A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cluster are described.

    *)
}
type nonrec describe_service_updates_response = {
  1. service_updates : service_update_list option;
    (*

    A list of service updates

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
}
type nonrec cluster_name_list = string_ list
type nonrec describe_service_updates_request = {
  1. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. status : service_update_status_list option;
    (*

    The status(es) of the service updates to filter on.

    *)
  4. cluster_names : cluster_name_list option;
    (*

    The list of cluster names to identify service updates to apply.

    *)
  5. service_update_name : string_ option;
    (*

    The unique ID of the service update to describe.

    *)
}
type nonrec describe_reserved_nodes_response = {
  1. reserved_nodes : reserved_node_list option;
    (*

    Returns information about reserved nodes for this account, or about a specified reserved node.

    *)
  2. next_token : string_ option;
    (*

    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, up to the value specified by MaxRecords.

    *)
}
type nonrec describe_reserved_nodes_request = {
  1. next_token : string_ option;
    (*

    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, up to the value specified by MaxRecords.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. offering_type : string_ option;
    (*

    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"

    *)
  4. duration : string_ option;
    (*

    The duration filter value, specified in years or seconds. Use this parameter to show only reservations for this duration.

    *)
  5. node_type : string_ option;
    (*

    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.

    *)
  6. reserved_nodes_offering_id : string_ option;
    (*

    The offering identifier filter value. Use this parameter to show only purchased reservations matching the specified offering identifier.

    *)
  7. reservation_id : string_ option;
    (*

    The reserved node identifier filter value. Use this parameter to show only the reservation that matches the specified reservation ID.

    *)
}
type nonrec describe_reserved_nodes_offerings_response = {
  1. reserved_nodes_offerings : reserved_nodes_offering_list option;
    (*

    Lists available reserved node offerings.

    *)
  2. next_token : string_ option;
    (*

    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, up to the value specified by MaxRecords.

    *)
}
type nonrec describe_reserved_nodes_offerings_request = {
  1. next_token : string_ option;
    (*

    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, up to the value specified by MaxRecords.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. offering_type : string_ option;
    (*

    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"

    *)
  4. duration : string_ option;
    (*

    Duration filter value, specified in years or seconds. Use this parameter to show only reservations for a given duration.

    *)
  5. node_type : string_ option;
    (*

    The node type for the reserved nodes. For more information, see Supported node types.

    *)
  6. reserved_nodes_offering_id : string_ option;
    (*

    The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier.

    *)
}
type nonrec describe_parameters_response = {
  1. parameters : parameters_list option;
    (*

    A list of parameters specific to a particular parameter group. Each element in the list contains detailed information about one parameter.

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
}
type nonrec describe_parameters_request = {
  1. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. parameter_group_name : string_;
    (*

    he name of a specific parameter group to return details for.

    *)
}
type nonrec describe_parameter_groups_response = {
  1. parameter_groups : parameter_group_list option;
    (*

    A list of parameter groups. Each element in the list contains detailed information about one parameter group.

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
}
type nonrec describe_parameter_groups_request = {
  1. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. parameter_group_name : string_ option;
    (*

    The name of a specific parameter group to return details for.

    *)
}
type nonrec describe_multi_region_parameters_response = {
  1. multi_region_parameters : multi_region_parameters_list option;
    (*

    A list of parameters specific to a particular multi-region parameter group. Each element in the list contains detailed information about one parameter.

    *)
  2. next_token : string_ option;
    (*

    An optional token to include in the response. If this token is provided, the response includes only results beyond the token, up to the value specified by MaxResults.

    *)
}
type nonrec describe_multi_region_parameters_request = {
  1. next_token : string_ option;
    (*

    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 the value specified by MaxResults.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. source : string_ option;
    (*

    The parameter types to return. Valid values: user | system | engine-default

    *)
  4. multi_region_parameter_group_name : string_;
    (*

    The name of the multi-region parameter group to return details for.

    *)
}
type nonrec describe_multi_region_parameter_groups_response = {
  1. multi_region_parameter_groups : multi_region_parameter_group_list option;
    (*

    A list of multi-region parameter groups. Each element in the list contains detailed information about one parameter group.

    *)
  2. next_token : string_ option;
    (*

    An optional token to include in the response. If this token is provided, the response includes only results beyond the token, up to the value specified by MaxResults.

    *)
}
type nonrec describe_multi_region_parameter_groups_request = {
  1. next_token : string_ option;
    (*

    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 the value specified by MaxResults.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. multi_region_parameter_group_name : string_ option;
    (*

    The request for information on a specific multi-region parameter group.

    *)
}
type nonrec describe_multi_region_clusters_response = {
  1. multi_region_clusters : multi_region_cluster_list option;
    (*

    A list of multi-Region clusters.

    *)
  2. next_token : string_ option;
    (*

    A token to use to retrieve the next page of results.

    *)
}
type nonrec describe_multi_region_clusters_request = {
  1. show_cluster_details : boolean_optional option;
    (*

    Details about the multi-Region cluster.

    *)
  2. next_token : string_ option;
    (*

    A token to specify where to start paginating.

    *)
  3. max_results : integer_optional option;
    (*

    The maximum number of results to return.

    *)
  4. multi_region_cluster_name : string_ option;
    (*

    The name of a specific multi-Region cluster to describe.

    *)
}
type nonrec describe_events_response = {
  1. events : event_list option;
    (*

    A list of events. Each element in the list contains detailed information about one event.

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
}
type nonrec describe_events_request = {
  1. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. duration : integer_optional option;
    (*

    The number of minutes worth of events to retrieve.

    *)
  4. end_time : t_stamp option;
    (*

    The end of the time interval for which to retrieve events, specified in ISO 8601 format. Example: 2017-03-30T07:03:49.555Z

    *)
  5. start_time : t_stamp option;
    (*

    The beginning of the time interval to retrieve events for, specified in ISO 8601 format. Example: 2017-03-30T07:03:49.555Z

    *)
  6. source_type : source_type option;
    (*

    The event source to retrieve events for. If no value is specified, all events are returned.

    *)
  7. source_name : string_ option;
    (*

    The identifier of the event source for which events are returned. If not specified, all sources are included in the response.

    *)
}
type nonrec describe_engine_versions_response = {
  1. engine_versions : engine_version_info_list option;
    (*

    A list of engine version details. Each element in the list contains detailed information about one engine version.

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
}
type nonrec describe_engine_versions_request = {
  1. default_only : boolean_ option;
    (*

    If true, specifies that only the default version of the specified engine or engine and major version combination is to be returned.

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  3. max_results : integer_optional option;
    (*

    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.

    *)
  4. parameter_group_family : string_ option;
    (*

    The name of a specific parameter group family to return details for.

    *)
  5. engine_version : string_ option;
    (*

    The Redis OSS engine version

    *)
  6. engine : string_ option;
    (*

    The name of the engine for which to list available versions.

    *)
}
type nonrec cluster_list = cluster list
type nonrec describe_clusters_response = {
  1. clusters : cluster_list option;
    (*

    A list of clusters

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
}
type nonrec describe_clusters_request = {
  1. show_shard_details : boolean_optional option;
    (*

    An optional flag that can be included in the request to retrieve information about the individual shard(s).

    *)
  2. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  3. max_results : integer_optional option;
    (*

    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.

    *)
  4. cluster_name : string_ option;
    (*

    The name of the cluster.

    *)
}
type nonrec acl_list = ac_l list
type nonrec describe_ac_ls_response = {
  1. next_token : string_ option;
    (*

    If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  2. ac_ls : acl_list option;
    (*

    The list of ACLs.

    *)
}
type nonrec describe_ac_ls_request = {
  1. next_token : string_ option;
    (*

    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 pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

    *)
  2. max_results : integer_optional option;
    (*

    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.

    *)
  3. acl_name : string_ option;
    (*

    The name of the ACL.

    *)
}
type nonrec delete_user_response = {
  1. user : user option;
    (*

    The user object that has been deleted.

    *)
}
type nonrec delete_user_request = {
  1. user_name : user_name;
    (*

    The name of the user to delete

    *)
}
type nonrec delete_subnet_group_response = {
  1. subnet_group : subnet_group option;
    (*

    The subnet group object that has been deleted.

    *)
}
type nonrec delete_subnet_group_request = {
  1. subnet_group_name : string_;
    (*

    The name of the subnet group to delete.

    *)
}
type nonrec delete_snapshot_response = {
  1. snapshot : snapshot option;
    (*

    The snapshot object that has been deleted.

    *)
}
type nonrec delete_snapshot_request = {
  1. snapshot_name : string_;
    (*

    The name of the snapshot to delete.

    *)
}
type nonrec delete_parameter_group_response = {
  1. parameter_group : parameter_group option;
    (*

    The parameter group that has been deleted.

    *)
}
type nonrec delete_parameter_group_request = {
  1. parameter_group_name : string_;
    (*

    The name of the parameter group to delete.

    *)
}
type nonrec delete_multi_region_cluster_response = {
  1. multi_region_cluster : multi_region_cluster option;
    (*

    Details about the deleted multi-Region cluster.

    *)
}
type nonrec delete_multi_region_cluster_request = {
  1. multi_region_cluster_name : string_;
    (*

    The name of the multi-Region cluster to be deleted.

    *)
}
type nonrec delete_cluster_response = {
  1. cluster : cluster option;
    (*

    The cluster object that has been deleted.

    *)
}
type nonrec delete_cluster_request = {
  1. final_snapshot_name : string_ option;
    (*

    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.

    *)
  2. multi_region_cluster_name : string_ option;
    (*

    The name of the multi-Region cluster to be deleted.

    *)
  3. cluster_name : string_;
    (*

    The name of the cluster to be deleted

    *)
}
type nonrec delete_acl_response = {
  1. ac_l : ac_l option;
    (*

    The Access Control List object that has been deleted.

    *)
}
type nonrec delete_acl_request = {
  1. acl_name : string_;
    (*

    The name of the Access Control List to delete.

    *)
}
type nonrec create_user_response = {
  1. user : user option;
    (*

    The newly-created user.

    *)
}
type nonrec create_user_request = {
  1. tags : tag_list option;
    (*

    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.

    *)
  2. access_string : access_string;
    (*

    Access permissions string used for this user.

    *)
  3. authentication_mode : authentication_mode;
    (*

    Denotes the user's authentication properties, such as whether it requires a password to authenticate.

    *)
  4. user_name : user_name;
    (*

    The name of the user. This value must be unique as it also serves as the user identifier.

    *)
}
type nonrec create_subnet_group_response = {
  1. subnet_group : subnet_group option;
    (*

    The newly-created subnet group.

    *)
}
type nonrec create_subnet_group_request = {
  1. tags : tag_list option;
    (*

    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.

    *)
  2. subnet_ids : subnet_identifier_list;
    (*

    A list of VPC subnet IDs for the subnet group.

    *)
  3. description : string_ option;
    (*

    A description for the subnet group.

    *)
  4. subnet_group_name : string_;
    (*

    The name of the subnet group.

    *)
}
type nonrec create_snapshot_response = {
  1. snapshot : snapshot option;
    (*

    The newly-created snapshot.

    *)
}
type nonrec create_snapshot_request = {
  1. tags : tag_list option;
    (*

    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.

    *)
  2. kms_key_id : string_ option;
    (*

    The ID of the KMS key used to encrypt the snapshot.

    *)
  3. snapshot_name : string_;
    (*

    A name for the snapshot being created.

    *)
  4. cluster_name : string_;
    (*

    The snapshot is created from this cluster.

    *)
}
type nonrec create_parameter_group_response = {
  1. parameter_group : parameter_group option;
    (*

    The newly-created parameter group.

    *)
}
type nonrec create_parameter_group_request = {
  1. tags : tag_list option;
    (*

    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.

    *)
  2. description : string_ option;
    (*

    An optional description of the parameter group.

    *)
  3. family : string_;
    (*

    The name of the parameter group family that the parameter group can be used with.

    *)
  4. parameter_group_name : string_;
    (*

    The name of the parameter group.

    *)
}
type nonrec create_multi_region_cluster_response = {
  1. multi_region_cluster : multi_region_cluster option;
    (*

    Details about the newly created multi-Region cluster.

    *)
}
type nonrec create_multi_region_cluster_request = {
  1. tags : tag_list option;
    (*

    A list of tags to be applied to the multi-Region cluster.

    *)
  2. tls_enabled : boolean_optional option;
    (*

    Whether to enable TLS encryption for the multi-Region cluster.

    *)
  3. num_shards : integer_optional option;
    (*

    The number of shards for the multi-Region cluster.

    *)
  4. multi_region_parameter_group_name : string_ option;
    (*

    The name of the multi-Region parameter group to be associated with the cluster.

    *)
  5. node_type : string_;
    (*

    The node type to be used for the multi-Region cluster.

    *)
  6. engine_version : string_ option;
    (*

    The version of the engine to be used for the multi-Region cluster.

    *)
  7. engine : string_ option;
    (*

    The name of the engine to be used for the multi-Region cluster.

    *)
  8. description : string_ option;
    (*

    A description for the multi-Region cluster.

    *)
  9. multi_region_cluster_name_suffix : string_;
    (*

    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 instance, a Multi-Region cluster Name created in the US-West-1 region will begin with "virxk", along with the suffix name you provide. The suffix guarantees uniqueness of the Multi-Region cluster name across multiple regions.

    *)
}
type nonrec create_cluster_response = {
  1. cluster : cluster option;
    (*

    The newly-created cluster.

    *)
}
type nonrec create_cluster_request = {
  1. ip_discovery : ip_discovery option;
    (*

    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, and cluster nodes return IPv4 addresses for cluster nodes. When set to 'ipv6', the cluster discovery functions return IPv6 addresses for cluster nodes. The value must be compatible with the NetworkType parameter. If not specified, the default is 'ipv4'.

    *)
  2. network_type : network_type option;
    (*

    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 cluster will only be accessible via IPv6 addresses. When set to 'dual_stack', the cluster will be accessible via both IPv4 and IPv6 addresses. If not specified, the default is 'ipv4'.

    *)
  3. data_tiering : boolean_optional option;
    (*

    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.

    *)
  4. auto_minor_version_upgrade : boolean_optional option;
    (*

    When set to true, the cluster will automatically receive minor engine version upgrades after launch.

    *)
  5. engine_version : string_ option;
    (*

    The version number of the Redis OSS engine to be used for the cluster.

    *)
  6. engine : string_ option;
    (*

    The name of the engine to be used for the cluster.

    *)
  7. acl_name : acl_name;
    (*

    The name of the Access Control List to associate with the cluster.

    *)
  8. snapshot_window : string_ option;
    (*

    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 appropriate time range.

    *)
  9. tags : tag_list option;
    (*

    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 Key=mySecondKey, Value=mySecondKeyValue.

    *)
  10. snapshot_retention_limit : integer_optional option;
    (*

    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 before being deleted.

    *)
  11. snapshot_name : string_ option;
    (*

    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.

    *)
  12. snapshot_arns : snapshot_arns_list option;
    (*

    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 cannot contain any commas.

    *)
  13. kms_key_id : string_ option;
    (*

    The ID of the KMS key used to encrypt the cluster.

    *)
  14. tls_enabled : boolean_optional option;
    (*

    A flag to enable in-transit encryption on the cluster.

    *)
  15. sns_topic_arn : string_ option;
    (*

    The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.

    *)
  16. port : integer_optional option;
    (*

    The port number on which each of the nodes accepts connections.

    *)
  17. maintenance_window : string_ option;
    (*

    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 is a 60 minute period.

    Valid values for ddd are:

    • sun
    • mon
    • tue
    • wed
    • thu
    • fri
    • sat

    Example: sun:23:00-mon:01:30

    *)
  18. security_group_ids : security_group_ids_list option;
    (*

    A list of security group names to associate with this cluster.

    *)
  19. subnet_group_name : string_ option;
    (*

    The name of the subnet group to be used for the cluster.

    *)
  20. num_replicas_per_shard : integer_optional option;
    (*

    The number of replicas to apply to each shard. The default value is 1. The maximum is 5.

    *)
  21. num_shards : integer_optional option;
    (*

    The number of shards the cluster will contain. The default value is 1.

    *)
  22. description : string_ option;
    (*

    An optional description of the cluster.

    *)
  23. parameter_group_name : string_ option;
    (*

    The name of the parameter group associated with the cluster.

    *)
  24. multi_region_cluster_name : string_ option;
    (*

    The name of the multi-Region cluster to be created.

    *)
  25. node_type : string_;
    (*

    The compute and memory capacity of the nodes in the cluster.

    *)
  26. cluster_name : string_;
    (*

    The name of the cluster. This value must be unique as it also serves as the cluster identifier.

    *)
}
type nonrec cluster_already_exists_fault = {
  1. message : exception_message option;
}

A cluster with the specified name already exists.

type nonrec create_acl_response = {
  1. ac_l : ac_l option;
    (*

    The newly-created Access Control List.

    *)
}
type nonrec create_acl_request = {
  1. tags : tag_list option;
    (*

    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.

    *)
  2. user_names : user_name_list_input option;
    (*

    The list of users that belong to the Access Control List.

    *)
  3. acl_name : string_;
    (*

    The name of the Access Control List.

    *)
}
type nonrec acl_quota_exceeded_fault = {
  1. message : exception_message option;
}

The request cannot be processed because it would exceed the maximum number of ACLs allowed.

type nonrec acl_already_exists_fault = {
  1. message : exception_message option;
}

An ACL with the specified name already exists.

type nonrec copy_snapshot_response = {
  1. snapshot : snapshot option;
    (*

    Represents a copy of an entire cluster as of the time when the snapshot was taken.

    *)
}
type nonrec copy_snapshot_request = {
  1. tags : tag_list option;
    (*

    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.

    *)
  2. kms_key_id : kms_key_id option;
    (*

    The ID of the KMS key used to encrypt the target snapshot.

    *)
  3. target_bucket : target_bucket option;
    (*

    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 the needed permissions to this S3 bucket. For more information, see Step 2: Grant MemoryDB Access to Your Amazon S3 Bucket.

    *)
  4. target_snapshot_name : 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.

    *)
  5. source_snapshot_name : string_;
    (*

    The name of an existing snapshot from which to make a copy.

    *)
}
type nonrec batch_update_cluster_response = {
  1. unprocessed_clusters : unprocessed_cluster_list option;
    (*

    The list of clusters where updates have not been applied.

    *)
  2. processed_clusters : cluster_list option;
    (*

    The list of clusters that have been updated.

    *)
}
type nonrec batch_update_cluster_request = {
  1. service_update : service_update_request option;
    (*

    The unique ID of the service update

    *)
  2. cluster_names : cluster_name_list;
    (*

    The cluster names to apply the updates.

    *)
}