R/elasticache_interfaces.R

Defines functions test_migration_output test_migration_input test_failover_output test_failover_input start_migration_output start_migration_input revoke_cache_security_group_ingress_output revoke_cache_security_group_ingress_input reset_cache_parameter_group_output reset_cache_parameter_group_input remove_tags_from_resource_output remove_tags_from_resource_input reboot_cache_cluster_output reboot_cache_cluster_input rebalance_slots_in_global_replication_group_output rebalance_slots_in_global_replication_group_input purchase_reserved_cache_nodes_offering_output purchase_reserved_cache_nodes_offering_input modify_user_group_output modify_user_group_input modify_user_output modify_user_input modify_replication_group_shard_configuration_output modify_replication_group_shard_configuration_input modify_replication_group_output modify_replication_group_input modify_global_replication_group_output modify_global_replication_group_input modify_cache_subnet_group_output modify_cache_subnet_group_input modify_cache_parameter_group_output modify_cache_parameter_group_input modify_cache_cluster_output modify_cache_cluster_input list_tags_for_resource_output list_tags_for_resource_input list_allowed_node_type_modifications_output list_allowed_node_type_modifications_input increase_replica_count_output increase_replica_count_input increase_node_groups_in_global_replication_group_output increase_node_groups_in_global_replication_group_input failover_global_replication_group_output failover_global_replication_group_input disassociate_global_replication_group_output disassociate_global_replication_group_input describe_users_output describe_users_input describe_user_groups_output describe_user_groups_input describe_update_actions_output describe_update_actions_input describe_snapshots_output describe_snapshots_input describe_service_updates_output describe_service_updates_input describe_reserved_cache_nodes_offerings_output describe_reserved_cache_nodes_offerings_input describe_reserved_cache_nodes_output describe_reserved_cache_nodes_input describe_replication_groups_output describe_replication_groups_input describe_global_replication_groups_output describe_global_replication_groups_input describe_events_output describe_events_input describe_engine_default_parameters_output describe_engine_default_parameters_input describe_cache_subnet_groups_output describe_cache_subnet_groups_input describe_cache_security_groups_output describe_cache_security_groups_input describe_cache_parameters_output describe_cache_parameters_input describe_cache_parameter_groups_output describe_cache_parameter_groups_input describe_cache_engine_versions_output describe_cache_engine_versions_input describe_cache_clusters_output describe_cache_clusters_input delete_user_group_output delete_user_group_input delete_user_output delete_user_input delete_snapshot_output delete_snapshot_input delete_replication_group_output delete_replication_group_input delete_global_replication_group_output delete_global_replication_group_input delete_cache_subnet_group_output delete_cache_subnet_group_input delete_cache_security_group_output delete_cache_security_group_input delete_cache_parameter_group_output delete_cache_parameter_group_input delete_cache_cluster_output delete_cache_cluster_input decrease_replica_count_output decrease_replica_count_input decrease_node_groups_in_global_replication_group_output decrease_node_groups_in_global_replication_group_input create_user_group_output create_user_group_input create_user_output create_user_input create_snapshot_output create_snapshot_input create_replication_group_output create_replication_group_input create_global_replication_group_output create_global_replication_group_input create_cache_subnet_group_output create_cache_subnet_group_input create_cache_security_group_output create_cache_security_group_input create_cache_parameter_group_output create_cache_parameter_group_input create_cache_cluster_output create_cache_cluster_input copy_snapshot_output copy_snapshot_input complete_migration_output complete_migration_input batch_stop_update_action_output batch_stop_update_action_input batch_apply_update_action_output batch_apply_update_action_input authorize_cache_security_group_ingress_output authorize_cache_security_group_ingress_input add_tags_to_resource_output add_tags_to_resource_input

# This file is generated by make.paws. Please do not edit here.
#' @importFrom paws.common populate
#' @include elasticache_service.R
NULL

.elasticache$add_tags_to_resource_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ResourceName = structure(logical(0), tags = list(type = "string")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$add_tags_to_resource_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(TagList = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure", resultWrapper = "AddTagsToResourceResult"))
  return(populate(args, shape))
}

.elasticache$authorize_cache_security_group_ingress_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupName = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupOwnerId = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$authorize_cache_security_group_ingress_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSecurityGroup = structure(list(OwnerId = structure(logical(0), tags = list(type = "string")), CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), EC2SecurityGroups = structure(list(structure(list(Status = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupName = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupOwnerId = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "EC2SecurityGroup", type = "structure"))), tags = list(locationNameList = "EC2SecurityGroup", type = "list")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "AuthorizeCacheSecurityGroupIngressResult"))
  return(populate(args, shape))
}

.elasticache$batch_apply_update_action_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), CacheClusterIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ServiceUpdateName = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$batch_apply_update_action_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ProcessedUpdateActions = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), ServiceUpdateName = structure(logical(0), tags = list(type = "string")), UpdateActionStatus = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "ProcessedUpdateAction", type = "structure"))), tags = list(locationNameList = "ProcessedUpdateAction", type = "list")), UnprocessedUpdateActions = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), ServiceUpdateName = structure(logical(0), tags = list(type = "string")), ErrorType = structure(logical(0), tags = list(type = "string")), ErrorMessage = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "UnprocessedUpdateAction", type = "structure"))), tags = list(locationNameList = "UnprocessedUpdateAction", type = "list"))), tags = list(type = "structure", resultWrapper = "BatchApplyUpdateActionResult"))
  return(populate(args, shape))
}

.elasticache$batch_stop_update_action_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), CacheClusterIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ServiceUpdateName = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$batch_stop_update_action_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ProcessedUpdateActions = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), ServiceUpdateName = structure(logical(0), tags = list(type = "string")), UpdateActionStatus = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "ProcessedUpdateAction", type = "structure"))), tags = list(locationNameList = "ProcessedUpdateAction", type = "list")), UnprocessedUpdateActions = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), ServiceUpdateName = structure(logical(0), tags = list(type = "string")), ErrorType = structure(logical(0), tags = list(type = "string")), ErrorMessage = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "UnprocessedUpdateAction", type = "structure"))), tags = list(locationNameList = "UnprocessedUpdateAction", type = "list"))), tags = list(type = "structure", resultWrapper = "BatchStopUpdateActionResult"))
  return(populate(args, shape))
}

.elasticache$complete_migration_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Force = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$complete_migration_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "CompleteMigrationResult"))
  return(populate(args, shape))
}

.elasticache$copy_snapshot_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(SourceSnapshotName = structure(logical(0), tags = list(type = "string")), TargetSnapshotName = structure(logical(0), tags = list(type = "string")), TargetBucket = structure(logical(0), tags = list(type = "string")), KmsKeyId = structure(logical(0), tags = list(type = "string")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$copy_snapshot_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Snapshot = structure(list(SnapshotName = structure(logical(0), tags = list(type = "string")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), SnapshotStatus = structure(logical(0), tags = list(type = "string")), SnapshotSource = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CacheClusterCreateTime = structure(logical(0), tags = list(type = "timestamp")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), TopicArn = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer")), CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), VpcId = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), NumNodeGroups = structure(logical(0), tags = list(type = "integer")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), NodeSnapshots = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), NodeGroupId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), NodeGroupConfiguration = structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string")), ReplicaCount = structure(logical(0), tags = list(type = "integer")), PrimaryAvailabilityZone = structure(logical(0), tags = list(type = "string")), ReplicaAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "AvailabilityZone", type = "string"))), tags = list(locationNameList = "AvailabilityZone", type = "list")), PrimaryOutpostArn = structure(logical(0), tags = list(type = "string")), ReplicaOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "OutpostArn", type = "string"))), tags = list(locationNameList = "OutpostArn", type = "list"))), tags = list(type = "structure")), CacheSize = structure(logical(0), tags = list(type = "string")), CacheNodeCreateTime = structure(logical(0), tags = list(type = "timestamp")), SnapshotCreateTime = structure(logical(0), tags = list(type = "timestamp"))), tags = list(locationName = "NodeSnapshot", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "NodeSnapshot", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), DataTiering = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "CopySnapshotResult"))
  return(populate(args, shape))
}

.elasticache$create_cache_cluster_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), AZMode = structure(logical(0), tags = list(type = "string")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "PreferredAvailabilityZone", type = "string"))), tags = list(locationNameList = "PreferredAvailabilityZone", type = "list")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheSecurityGroupNames = structure(list(structure(logical(0), tags = list(locationName = "CacheSecurityGroupName", type = "string"))), tags = list(locationNameList = "CacheSecurityGroupName", type = "list")), SecurityGroupIds = structure(list(structure(logical(0), tags = list(locationName = "SecurityGroupId", type = "string"))), tags = list(locationNameList = "SecurityGroupId", type = "list")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list")), SnapshotArns = structure(list(structure(logical(0), tags = list(locationName = "SnapshotArn", type = "string"))), tags = list(locationNameList = "SnapshotArn", type = "list")), SnapshotName = structure(logical(0), tags = list(type = "string")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer")), NotificationTopicArn = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), AuthToken = structure(logical(0), tags = list(type = "string")), OutpostMode = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), PreferredOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "PreferredOutpostArn", type = "string"))), tags = list(locationNameList = "PreferredOutpostArn", type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Enabled = structure(logical(0), tags = list(type = "boolean"))), tags = list(locationName = "LogDeliveryConfigurationRequest", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfigurationRequest", type = "list")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$create_cache_cluster_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheCluster = structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ClientDownloadLandingPage = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheClusterStatus = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CacheClusterCreateTime = structure(logical(0), tags = list(type = "timestamp")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(NumCacheNodes = structure(logical(0), tags = list(type = "integer")), CacheNodeIdsToRemove = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), NotificationConfiguration = structure(list(TopicArn = structure(logical(0), tags = list(type = "string")), TopicStatus = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), CacheSecurityGroups = structure(list(structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheSecurityGroup", type = "structure"))), tags = list(locationNameList = "CacheSecurityGroup", type = "list")), CacheParameterGroup = structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), ParameterApplyStatus = structure(logical(0), tags = list(type = "string")), CacheNodeIdsToReboot = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list"))), tags = list(type = "structure")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheNodes = structure(list(structure(list(CacheNodeId = structure(logical(0), tags = list(type = "string")), CacheNodeStatus = structure(logical(0), tags = list(type = "string")), CacheNodeCreateTime = structure(logical(0), tags = list(type = "timestamp")), Endpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ParameterGroupStatus = structure(logical(0), tags = list(type = "string")), SourceCacheNodeId = structure(logical(0), tags = list(type = "string")), CustomerAvailabilityZone = structure(logical(0), tags = list(type = "string")), CustomerOutpostArn = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheNode", type = "structure"))), tags = list(locationNameList = "CacheNode", type = "list")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SecurityGroups = structure(list(structure(list(SecurityGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string")), ReplicationGroupLogDeliveryEnabled = structure(logical(0), tags = list(type = "boolean")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "CreateCacheClusterResult"))
  return(populate(args, shape))
}

.elasticache$create_cache_parameter_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), CacheParameterGroupFamily = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$create_cache_parameter_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroup = structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), CacheParameterGroupFamily = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), IsGlobal = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "CreateCacheParameterGroupResult"))
  return(populate(args, shape))
}

.elasticache$create_cache_security_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$create_cache_security_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSecurityGroup = structure(list(OwnerId = structure(logical(0), tags = list(type = "string")), CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), EC2SecurityGroups = structure(list(structure(list(Status = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupName = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupOwnerId = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "EC2SecurityGroup", type = "structure"))), tags = list(locationNameList = "EC2SecurityGroup", type = "list")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "CreateCacheSecurityGroupResult"))
  return(populate(args, shape))
}

.elasticache$create_cache_subnet_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupDescription = structure(logical(0), tags = list(type = "string")), SubnetIds = structure(list(structure(logical(0), tags = list(locationName = "SubnetIdentifier", type = "string"))), tags = list(locationNameList = "SubnetIdentifier", type = "list")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$create_cache_subnet_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSubnetGroup = structure(list(CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupDescription = structure(logical(0), tags = list(type = "string")), VpcId = structure(logical(0), tags = list(type = "string")), Subnets = structure(list(structure(list(SubnetIdentifier = structure(logical(0), tags = list(type = "string")), SubnetAvailabilityZone = structure(list(Name = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE)), SubnetOutpost = structure(list(SubnetOutpostArn = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), SupportedNetworkTypes = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(locationName = "Subnet", type = "structure"))), tags = list(locationNameList = "Subnet", type = "list")), ARN = structure(logical(0), tags = list(type = "string")), SupportedNetworkTypes = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "CreateCacheSubnetGroupResult"))
  return(populate(args, shape))
}

.elasticache$create_global_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroupIdSuffix = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), PrimaryReplicationGroupId = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$create_global_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroup = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), Members = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), Role = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroupMember", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroupMember", type = "list")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), GlobalNodeGroups = structure(list(structure(list(GlobalNodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalNodeGroup", type = "structure"))), tags = list(locationNameList = "GlobalNodeGroup", type = "list")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "CreateGlobalReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$create_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverEnabled = structure(logical(0), tags = list(type = "boolean")), MultiAZEnabled = structure(logical(0), tags = list(type = "boolean")), NumCacheClusters = structure(logical(0), tags = list(type = "integer")), PreferredCacheClusterAZs = structure(list(structure(logical(0), tags = list(locationName = "AvailabilityZone", type = "string"))), tags = list(locationNameList = "AvailabilityZone", type = "list")), NumNodeGroups = structure(logical(0), tags = list(type = "integer")), ReplicasPerNodeGroup = structure(logical(0), tags = list(type = "integer")), NodeGroupConfiguration = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string")), ReplicaCount = structure(logical(0), tags = list(type = "integer")), PrimaryAvailabilityZone = structure(logical(0), tags = list(type = "string")), ReplicaAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "AvailabilityZone", type = "string"))), tags = list(locationNameList = "AvailabilityZone", type = "list")), PrimaryOutpostArn = structure(logical(0), tags = list(type = "string")), ReplicaOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "OutpostArn", type = "string"))), tags = list(locationNameList = "OutpostArn", type = "list"))), tags = list(locationName = "NodeGroupConfiguration", type = "structure"))), tags = list(locationNameList = "NodeGroupConfiguration", type = "list")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheSecurityGroupNames = structure(list(structure(logical(0), tags = list(locationName = "CacheSecurityGroupName", type = "string"))), tags = list(locationNameList = "CacheSecurityGroupName", type = "list")), SecurityGroupIds = structure(list(structure(logical(0), tags = list(locationName = "SecurityGroupId", type = "string"))), tags = list(locationNameList = "SecurityGroupId", type = "list")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list")), SnapshotArns = structure(list(structure(logical(0), tags = list(locationName = "SnapshotArn", type = "string"))), tags = list(locationNameList = "SnapshotArn", type = "list")), SnapshotName = structure(logical(0), tags = list(type = "string")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer")), NotificationTopicArn = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), AuthToken = structure(logical(0), tags = list(type = "string")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), KmsKeyId = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Enabled = structure(logical(0), tags = list(type = "boolean"))), tags = list(locationName = "LogDeliveryConfigurationRequest", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfigurationRequest", type = "list")), DataTieringEnabled = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$create_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "CreateReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$create_snapshot_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), SnapshotName = structure(logical(0), tags = list(type = "string")), KmsKeyId = structure(logical(0), tags = list(type = "string")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$create_snapshot_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Snapshot = structure(list(SnapshotName = structure(logical(0), tags = list(type = "string")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), SnapshotStatus = structure(logical(0), tags = list(type = "string")), SnapshotSource = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CacheClusterCreateTime = structure(logical(0), tags = list(type = "timestamp")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), TopicArn = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer")), CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), VpcId = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), NumNodeGroups = structure(logical(0), tags = list(type = "integer")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), NodeSnapshots = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), NodeGroupId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), NodeGroupConfiguration = structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string")), ReplicaCount = structure(logical(0), tags = list(type = "integer")), PrimaryAvailabilityZone = structure(logical(0), tags = list(type = "string")), ReplicaAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "AvailabilityZone", type = "string"))), tags = list(locationNameList = "AvailabilityZone", type = "list")), PrimaryOutpostArn = structure(logical(0), tags = list(type = "string")), ReplicaOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "OutpostArn", type = "string"))), tags = list(locationNameList = "OutpostArn", type = "list"))), tags = list(type = "structure")), CacheSize = structure(logical(0), tags = list(type = "string")), CacheNodeCreateTime = structure(logical(0), tags = list(type = "timestamp")), SnapshotCreateTime = structure(logical(0), tags = list(type = "timestamp"))), tags = list(locationName = "NodeSnapshot", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "NodeSnapshot", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), DataTiering = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "CreateSnapshotResult"))
  return(populate(args, shape))
}

.elasticache$create_user_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserId = structure(logical(0), tags = list(type = "string")), UserName = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), Passwords = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), AccessString = structure(logical(0), tags = list(type = "string")), NoPasswordRequired = structure(logical(0), tags = list(type = "boolean")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list")), AuthenticationMode = structure(list(Type = structure(logical(0), tags = list(type = "string")), Passwords = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$create_user_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserId = structure(logical(0), tags = list(type = "string")), UserName = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), AccessString = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), Authentication = structure(list(Type = structure(logical(0), tags = list(type = "string")), PasswordCount = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "CreateUserResult"))
  return(populate(args, shape))
}

.elasticache$create_user_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserGroupId = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), UserIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$create_user_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), UserIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), PendingChanges = structure(list(UserIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), ReplicationGroups = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "CreateUserGroupResult"))
  return(populate(args, shape))
}

.elasticache$decrease_node_groups_in_global_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), NodeGroupCount = structure(logical(0), tags = list(type = "integer")), GlobalNodeGroupsToRemove = structure(list(structure(logical(0), tags = list(locationName = "GlobalNodeGroupId", type = "string"))), tags = list(locationNameList = "GlobalNodeGroupId", type = "list")), GlobalNodeGroupsToRetain = structure(list(structure(logical(0), tags = list(locationName = "GlobalNodeGroupId", type = "string"))), tags = list(locationNameList = "GlobalNodeGroupId", type = "list")), ApplyImmediately = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$decrease_node_groups_in_global_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroup = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), Members = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), Role = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroupMember", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroupMember", type = "list")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), GlobalNodeGroups = structure(list(structure(list(GlobalNodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalNodeGroup", type = "structure"))), tags = list(locationNameList = "GlobalNodeGroup", type = "list")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "DecreaseNodeGroupsInGlobalReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$decrease_replica_count_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), NewReplicaCount = structure(logical(0), tags = list(type = "integer")), ReplicaConfiguration = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), NewReplicaCount = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "PreferredAvailabilityZone", type = "string"))), tags = list(locationNameList = "PreferredAvailabilityZone", type = "list")), PreferredOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "PreferredOutpostArn", type = "string"))), tags = list(locationNameList = "PreferredOutpostArn", type = "list"))), tags = list(locationName = "ConfigureShard", type = "structure"))), tags = list(locationNameList = "ConfigureShard", type = "list")), ReplicasToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ApplyImmediately = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$decrease_replica_count_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "DecreaseReplicaCountResult"))
  return(populate(args, shape))
}

.elasticache$delete_cache_cluster_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), FinalSnapshotIdentifier = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$delete_cache_cluster_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheCluster = structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ClientDownloadLandingPage = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheClusterStatus = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CacheClusterCreateTime = structure(logical(0), tags = list(type = "timestamp")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(NumCacheNodes = structure(logical(0), tags = list(type = "integer")), CacheNodeIdsToRemove = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), NotificationConfiguration = structure(list(TopicArn = structure(logical(0), tags = list(type = "string")), TopicStatus = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), CacheSecurityGroups = structure(list(structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheSecurityGroup", type = "structure"))), tags = list(locationNameList = "CacheSecurityGroup", type = "list")), CacheParameterGroup = structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), ParameterApplyStatus = structure(logical(0), tags = list(type = "string")), CacheNodeIdsToReboot = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list"))), tags = list(type = "structure")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheNodes = structure(list(structure(list(CacheNodeId = structure(logical(0), tags = list(type = "string")), CacheNodeStatus = structure(logical(0), tags = list(type = "string")), CacheNodeCreateTime = structure(logical(0), tags = list(type = "timestamp")), Endpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ParameterGroupStatus = structure(logical(0), tags = list(type = "string")), SourceCacheNodeId = structure(logical(0), tags = list(type = "string")), CustomerAvailabilityZone = structure(logical(0), tags = list(type = "string")), CustomerOutpostArn = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheNode", type = "structure"))), tags = list(locationNameList = "CacheNode", type = "list")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SecurityGroups = structure(list(structure(list(SecurityGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string")), ReplicationGroupLogDeliveryEnabled = structure(logical(0), tags = list(type = "boolean")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "DeleteCacheClusterResult"))
  return(populate(args, shape))
}

.elasticache$delete_cache_parameter_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$delete_cache_parameter_group_output <- function(...) {
  list()
}

.elasticache$delete_cache_security_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$delete_cache_security_group_output <- function(...) {
  list()
}

.elasticache$delete_cache_subnet_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSubnetGroupName = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$delete_cache_subnet_group_output <- function(...) {
  list()
}

.elasticache$delete_global_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), RetainPrimaryReplicationGroup = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$delete_global_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroup = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), Members = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), Role = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroupMember", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroupMember", type = "list")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), GlobalNodeGroups = structure(list(structure(list(GlobalNodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalNodeGroup", type = "structure"))), tags = list(locationNameList = "GlobalNodeGroup", type = "list")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "DeleteGlobalReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$delete_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), RetainPrimaryCluster = structure(logical(0), tags = list(type = "boolean")), FinalSnapshotIdentifier = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$delete_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "DeleteReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$delete_snapshot_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(SnapshotName = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$delete_snapshot_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Snapshot = structure(list(SnapshotName = structure(logical(0), tags = list(type = "string")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), SnapshotStatus = structure(logical(0), tags = list(type = "string")), SnapshotSource = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CacheClusterCreateTime = structure(logical(0), tags = list(type = "timestamp")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), TopicArn = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer")), CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), VpcId = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), NumNodeGroups = structure(logical(0), tags = list(type = "integer")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), NodeSnapshots = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), NodeGroupId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), NodeGroupConfiguration = structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string")), ReplicaCount = structure(logical(0), tags = list(type = "integer")), PrimaryAvailabilityZone = structure(logical(0), tags = list(type = "string")), ReplicaAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "AvailabilityZone", type = "string"))), tags = list(locationNameList = "AvailabilityZone", type = "list")), PrimaryOutpostArn = structure(logical(0), tags = list(type = "string")), ReplicaOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "OutpostArn", type = "string"))), tags = list(locationNameList = "OutpostArn", type = "list"))), tags = list(type = "structure")), CacheSize = structure(logical(0), tags = list(type = "string")), CacheNodeCreateTime = structure(logical(0), tags = list(type = "timestamp")), SnapshotCreateTime = structure(logical(0), tags = list(type = "timestamp"))), tags = list(locationName = "NodeSnapshot", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "NodeSnapshot", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), DataTiering = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "DeleteSnapshotResult"))
  return(populate(args, shape))
}

.elasticache$delete_user_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserId = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$delete_user_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserId = structure(logical(0), tags = list(type = "string")), UserName = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), AccessString = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), Authentication = structure(list(Type = structure(logical(0), tags = list(type = "string")), PasswordCount = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "DeleteUserResult"))
  return(populate(args, shape))
}

.elasticache$delete_user_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserGroupId = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$delete_user_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), UserIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), PendingChanges = structure(list(UserIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), ReplicationGroups = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "DeleteUserGroupResult"))
  return(populate(args, shape))
}

.elasticache$describe_cache_clusters_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string")), ShowCacheNodeInfo = structure(logical(0), tags = list(type = "boolean")), ShowCacheClustersNotInReplicationGroups = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_cache_clusters_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), CacheClusters = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ClientDownloadLandingPage = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheClusterStatus = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CacheClusterCreateTime = structure(logical(0), tags = list(type = "timestamp")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(NumCacheNodes = structure(logical(0), tags = list(type = "integer")), CacheNodeIdsToRemove = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), NotificationConfiguration = structure(list(TopicArn = structure(logical(0), tags = list(type = "string")), TopicStatus = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), CacheSecurityGroups = structure(list(structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheSecurityGroup", type = "structure"))), tags = list(locationNameList = "CacheSecurityGroup", type = "list")), CacheParameterGroup = structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), ParameterApplyStatus = structure(logical(0), tags = list(type = "string")), CacheNodeIdsToReboot = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list"))), tags = list(type = "structure")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheNodes = structure(list(structure(list(CacheNodeId = structure(logical(0), tags = list(type = "string")), CacheNodeStatus = structure(logical(0), tags = list(type = "string")), CacheNodeCreateTime = structure(logical(0), tags = list(type = "timestamp")), Endpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ParameterGroupStatus = structure(logical(0), tags = list(type = "string")), SourceCacheNodeId = structure(logical(0), tags = list(type = "string")), CustomerAvailabilityZone = structure(logical(0), tags = list(type = "string")), CustomerOutpostArn = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheNode", type = "structure"))), tags = list(locationNameList = "CacheNode", type = "list")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SecurityGroups = structure(list(structure(list(SecurityGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string")), ReplicationGroupLogDeliveryEnabled = structure(logical(0), tags = list(type = "boolean")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheCluster", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "CacheCluster", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeCacheClustersResult"))
  return(populate(args, shape))
}

.elasticache$describe_cache_engine_versions_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheParameterGroupFamily = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string")), DefaultOnly = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_cache_engine_versions_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), CacheEngineVersions = structure(list(structure(list(Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheParameterGroupFamily = structure(logical(0), tags = list(type = "string")), CacheEngineDescription = structure(logical(0), tags = list(type = "string")), CacheEngineVersionDescription = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheEngineVersion", type = "structure"))), tags = list(locationNameList = "CacheEngineVersion", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeCacheEngineVersionsResult"))
  return(populate(args, shape))
}

.elasticache$describe_cache_parameter_groups_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_cache_parameter_groups_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), CacheParameterGroups = structure(list(structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), CacheParameterGroupFamily = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), IsGlobal = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheParameterGroup", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "CacheParameterGroup", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeCacheParameterGroupsResult"))
  return(populate(args, shape))
}

.elasticache$describe_cache_parameters_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), Source = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_cache_parameters_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), Parameters = structure(list(structure(list(ParameterName = structure(logical(0), tags = list(type = "string")), ParameterValue = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), Source = structure(logical(0), tags = list(type = "string")), DataType = structure(logical(0), tags = list(type = "string")), AllowedValues = structure(logical(0), tags = list(type = "string")), IsModifiable = structure(logical(0), tags = list(type = "boolean")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), ChangeType = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Parameter", type = "structure"))), tags = list(locationNameList = "Parameter", type = "list")), CacheNodeTypeSpecificParameters = structure(list(structure(list(ParameterName = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), Source = structure(logical(0), tags = list(type = "string")), DataType = structure(logical(0), tags = list(type = "string")), AllowedValues = structure(logical(0), tags = list(type = "string")), IsModifiable = structure(logical(0), tags = list(type = "boolean")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), CacheNodeTypeSpecificValues = structure(list(structure(list(CacheNodeType = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheNodeTypeSpecificValue", type = "structure"))), tags = list(locationNameList = "CacheNodeTypeSpecificValue", type = "list")), ChangeType = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheNodeTypeSpecificParameter", type = "structure"))), tags = list(locationNameList = "CacheNodeTypeSpecificParameter", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeCacheParametersResult"))
  return(populate(args, shape))
}

.elasticache$describe_cache_security_groups_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_cache_security_groups_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), CacheSecurityGroups = structure(list(structure(list(OwnerId = structure(logical(0), tags = list(type = "string")), CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), EC2SecurityGroups = structure(list(structure(list(Status = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupName = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupOwnerId = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "EC2SecurityGroup", type = "structure"))), tags = list(locationNameList = "EC2SecurityGroup", type = "list")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheSecurityGroup", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "CacheSecurityGroup", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeCacheSecurityGroupsResult"))
  return(populate(args, shape))
}

.elasticache$describe_cache_subnet_groups_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_cache_subnet_groups_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), CacheSubnetGroups = structure(list(structure(list(CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupDescription = structure(logical(0), tags = list(type = "string")), VpcId = structure(logical(0), tags = list(type = "string")), Subnets = structure(list(structure(list(SubnetIdentifier = structure(logical(0), tags = list(type = "string")), SubnetAvailabilityZone = structure(list(Name = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE)), SubnetOutpost = structure(list(SubnetOutpostArn = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), SupportedNetworkTypes = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(locationName = "Subnet", type = "structure"))), tags = list(locationNameList = "Subnet", type = "list")), ARN = structure(logical(0), tags = list(type = "string")), SupportedNetworkTypes = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(locationName = "CacheSubnetGroup", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "CacheSubnetGroup", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeCacheSubnetGroupsResult"))
  return(populate(args, shape))
}

.elasticache$describe_engine_default_parameters_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroupFamily = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_engine_default_parameters_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(EngineDefaults = structure(list(CacheParameterGroupFamily = structure(logical(0), tags = list(type = "string")), Marker = structure(logical(0), tags = list(type = "string")), Parameters = structure(list(structure(list(ParameterName = structure(logical(0), tags = list(type = "string")), ParameterValue = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), Source = structure(logical(0), tags = list(type = "string")), DataType = structure(logical(0), tags = list(type = "string")), AllowedValues = structure(logical(0), tags = list(type = "string")), IsModifiable = structure(logical(0), tags = list(type = "boolean")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), ChangeType = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Parameter", type = "structure"))), tags = list(locationNameList = "Parameter", type = "list")), CacheNodeTypeSpecificParameters = structure(list(structure(list(ParameterName = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), Source = structure(logical(0), tags = list(type = "string")), DataType = structure(logical(0), tags = list(type = "string")), AllowedValues = structure(logical(0), tags = list(type = "string")), IsModifiable = structure(logical(0), tags = list(type = "boolean")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), CacheNodeTypeSpecificValues = structure(list(structure(list(CacheNodeType = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheNodeTypeSpecificValue", type = "structure"))), tags = list(locationNameList = "CacheNodeTypeSpecificValue", type = "list")), ChangeType = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheNodeTypeSpecificParameter", type = "structure"))), tags = list(locationNameList = "CacheNodeTypeSpecificParameter", type = "list"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "DescribeEngineDefaultParametersResult"))
  return(populate(args, shape))
}

.elasticache$describe_events_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(SourceIdentifier = structure(logical(0), tags = list(type = "string")), SourceType = structure(logical(0), tags = list(type = "string")), StartTime = structure(logical(0), tags = list(type = "timestamp")), EndTime = structure(logical(0), tags = list(type = "timestamp")), Duration = structure(logical(0), tags = list(type = "integer")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_events_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), Events = structure(list(structure(list(SourceIdentifier = structure(logical(0), tags = list(type = "string")), SourceType = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string")), Date = structure(logical(0), tags = list(type = "timestamp"))), tags = list(locationName = "Event", type = "structure"))), tags = list(locationNameList = "Event", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeEventsResult"))
  return(populate(args, shape))
}

.elasticache$describe_global_replication_groups_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string")), ShowMemberInfo = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_global_replication_groups_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroups = structure(list(structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), Members = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), Role = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroupMember", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroupMember", type = "list")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), GlobalNodeGroups = structure(list(structure(list(GlobalNodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalNodeGroup", type = "structure"))), tags = list(locationNameList = "GlobalNodeGroup", type = "list")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroup", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroup", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeGlobalReplicationGroupsResult"))
  return(populate(args, shape))
}

.elasticache$describe_replication_groups_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_replication_groups_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), ReplicationGroups = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "ReplicationGroup", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "ReplicationGroup", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeReplicationGroupsResult"))
  return(populate(args, shape))
}

.elasticache$describe_reserved_cache_nodes_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReservedCacheNodeId = structure(logical(0), tags = list(type = "string")), ReservedCacheNodesOfferingId = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Duration = structure(logical(0), tags = list(type = "string")), ProductDescription = structure(logical(0), tags = list(type = "string")), OfferingType = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_reserved_cache_nodes_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), ReservedCacheNodes = structure(list(structure(list(ReservedCacheNodeId = structure(logical(0), tags = list(type = "string")), ReservedCacheNodesOfferingId = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), StartTime = structure(logical(0), tags = list(type = "timestamp")), Duration = structure(logical(0), tags = list(type = "integer")), FixedPrice = structure(logical(0), tags = list(type = "double")), UsagePrice = structure(logical(0), tags = list(type = "double")), CacheNodeCount = structure(logical(0), tags = list(type = "integer")), ProductDescription = structure(logical(0), tags = list(type = "string")), OfferingType = structure(logical(0), tags = list(type = "string")), State = structure(logical(0), tags = list(type = "string")), RecurringCharges = structure(list(structure(list(RecurringChargeAmount = structure(logical(0), tags = list(type = "double")), RecurringChargeFrequency = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "RecurringCharge", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "RecurringCharge", type = "list")), ReservationARN = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "ReservedCacheNode", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "ReservedCacheNode", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeReservedCacheNodesResult"))
  return(populate(args, shape))
}

.elasticache$describe_reserved_cache_nodes_offerings_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReservedCacheNodesOfferingId = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Duration = structure(logical(0), tags = list(type = "string")), ProductDescription = structure(logical(0), tags = list(type = "string")), OfferingType = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_reserved_cache_nodes_offerings_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), ReservedCacheNodesOfferings = structure(list(structure(list(ReservedCacheNodesOfferingId = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Duration = structure(logical(0), tags = list(type = "integer")), FixedPrice = structure(logical(0), tags = list(type = "double")), UsagePrice = structure(logical(0), tags = list(type = "double")), ProductDescription = structure(logical(0), tags = list(type = "string")), OfferingType = structure(logical(0), tags = list(type = "string")), RecurringCharges = structure(list(structure(list(RecurringChargeAmount = structure(logical(0), tags = list(type = "double")), RecurringChargeFrequency = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "RecurringCharge", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "RecurringCharge", type = "list"))), tags = list(locationName = "ReservedCacheNodesOffering", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "ReservedCacheNodesOffering", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeReservedCacheNodesOfferingsResult"))
  return(populate(args, shape))
}

.elasticache$describe_service_updates_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ServiceUpdateName = structure(logical(0), tags = list(type = "string")), ServiceUpdateStatus = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_service_updates_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), ServiceUpdates = structure(list(structure(list(ServiceUpdateName = structure(logical(0), tags = list(type = "string")), ServiceUpdateReleaseDate = structure(logical(0), tags = list(type = "timestamp")), ServiceUpdateEndDate = structure(logical(0), tags = list(type = "timestamp")), ServiceUpdateSeverity = structure(logical(0), tags = list(type = "string")), ServiceUpdateRecommendedApplyByDate = structure(logical(0), tags = list(type = "timestamp")), ServiceUpdateStatus = structure(logical(0), tags = list(type = "string")), ServiceUpdateDescription = structure(logical(0), tags = list(type = "string")), ServiceUpdateType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), AutoUpdateAfterRecommendedApplyByDate = structure(logical(0), tags = list(type = "boolean")), EstimatedUpdateTime = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "ServiceUpdate", type = "structure"))), tags = list(locationNameList = "ServiceUpdate", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeServiceUpdatesResult"))
  return(populate(args, shape))
}

.elasticache$describe_snapshots_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), SnapshotName = structure(logical(0), tags = list(type = "string")), SnapshotSource = structure(logical(0), tags = list(type = "string")), Marker = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), ShowNodeGroupConfig = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_snapshots_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), Snapshots = structure(list(structure(list(SnapshotName = structure(logical(0), tags = list(type = "string")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), SnapshotStatus = structure(logical(0), tags = list(type = "string")), SnapshotSource = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CacheClusterCreateTime = structure(logical(0), tags = list(type = "timestamp")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), TopicArn = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer")), CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), VpcId = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), NumNodeGroups = structure(logical(0), tags = list(type = "integer")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), NodeSnapshots = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), NodeGroupId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), NodeGroupConfiguration = structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string")), ReplicaCount = structure(logical(0), tags = list(type = "integer")), PrimaryAvailabilityZone = structure(logical(0), tags = list(type = "string")), ReplicaAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "AvailabilityZone", type = "string"))), tags = list(locationNameList = "AvailabilityZone", type = "list")), PrimaryOutpostArn = structure(logical(0), tags = list(type = "string")), ReplicaOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "OutpostArn", type = "string"))), tags = list(locationNameList = "OutpostArn", type = "list"))), tags = list(type = "structure")), CacheSize = structure(logical(0), tags = list(type = "string")), CacheNodeCreateTime = structure(logical(0), tags = list(type = "timestamp")), SnapshotCreateTime = structure(logical(0), tags = list(type = "timestamp"))), tags = list(locationName = "NodeSnapshot", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "NodeSnapshot", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), DataTiering = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Snapshot", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "Snapshot", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeSnapshotsResult"))
  return(populate(args, shape))
}

.elasticache$describe_update_actions_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ServiceUpdateName = structure(logical(0), tags = list(type = "string")), ReplicationGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), CacheClusterIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), Engine = structure(logical(0), tags = list(type = "string")), ServiceUpdateStatus = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ServiceUpdateTimeRange = structure(list(StartTime = structure(logical(0), tags = list(type = "timestamp")), EndTime = structure(logical(0), tags = list(type = "timestamp"))), tags = list(type = "structure")), UpdateActionStatus = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ShowNodeLevelUpdateStatus = structure(logical(0), tags = list(type = "boolean")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_update_actions_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Marker = structure(logical(0), tags = list(type = "string")), UpdateActions = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), CacheClusterId = structure(logical(0), tags = list(type = "string")), ServiceUpdateName = structure(logical(0), tags = list(type = "string")), ServiceUpdateReleaseDate = structure(logical(0), tags = list(type = "timestamp")), ServiceUpdateSeverity = structure(logical(0), tags = list(type = "string")), ServiceUpdateStatus = structure(logical(0), tags = list(type = "string")), ServiceUpdateRecommendedApplyByDate = structure(logical(0), tags = list(type = "timestamp")), ServiceUpdateType = structure(logical(0), tags = list(type = "string")), UpdateActionAvailableDate = structure(logical(0), tags = list(type = "timestamp")), UpdateActionStatus = structure(logical(0), tags = list(type = "string")), NodesUpdated = structure(logical(0), tags = list(type = "string")), UpdateActionStatusModifiedDate = structure(logical(0), tags = list(type = "timestamp")), SlaMet = structure(logical(0), tags = list(type = "string")), NodeGroupUpdateStatus = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), NodeGroupMemberUpdateStatus = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), NodeUpdateStatus = structure(logical(0), tags = list(type = "string")), NodeDeletionDate = structure(logical(0), tags = list(type = "timestamp")), NodeUpdateStartDate = structure(logical(0), tags = list(type = "timestamp")), NodeUpdateEndDate = structure(logical(0), tags = list(type = "timestamp")), NodeUpdateInitiatedBy = structure(logical(0), tags = list(type = "string")), NodeUpdateInitiatedDate = structure(logical(0), tags = list(type = "timestamp")), NodeUpdateStatusModifiedDate = structure(logical(0), tags = list(type = "timestamp"))), tags = list(locationName = "NodeGroupMemberUpdateStatus", type = "structure"))), tags = list(locationNameList = "NodeGroupMemberUpdateStatus", type = "list"))), tags = list(locationName = "NodeGroupUpdateStatus", type = "structure"))), tags = list(locationNameList = "NodeGroupUpdateStatus", type = "list")), CacheNodeUpdateStatus = structure(list(structure(list(CacheNodeId = structure(logical(0), tags = list(type = "string")), NodeUpdateStatus = structure(logical(0), tags = list(type = "string")), NodeDeletionDate = structure(logical(0), tags = list(type = "timestamp")), NodeUpdateStartDate = structure(logical(0), tags = list(type = "timestamp")), NodeUpdateEndDate = structure(logical(0), tags = list(type = "timestamp")), NodeUpdateInitiatedBy = structure(logical(0), tags = list(type = "string")), NodeUpdateInitiatedDate = structure(logical(0), tags = list(type = "timestamp")), NodeUpdateStatusModifiedDate = structure(logical(0), tags = list(type = "timestamp"))), tags = list(locationName = "CacheNodeUpdateStatus", type = "structure"))), tags = list(locationNameList = "CacheNodeUpdateStatus", type = "list")), EstimatedUpdateTime = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "UpdateAction", type = "structure"))), tags = list(locationNameList = "UpdateAction", type = "list"))), tags = list(type = "structure", resultWrapper = "DescribeUpdateActionsResult"))
  return(populate(args, shape))
}

.elasticache$describe_user_groups_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserGroupId = structure(logical(0), tags = list(type = "string")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_user_groups_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserGroups = structure(list(structure(list(UserGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), UserIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), PendingChanges = structure(list(UserIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), ReplicationGroups = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "DescribeUserGroupsResult"))
  return(populate(args, shape))
}

.elasticache$describe_users_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Engine = structure(logical(0), tags = list(type = "string")), UserId = structure(logical(0), tags = list(type = "string")), Filters = structure(list(structure(list(Name = structure(logical(0), tags = list(type = "string")), Values = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure"))), tags = list(type = "list")), MaxRecords = structure(logical(0), tags = list(type = "integer")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$describe_users_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(Users = structure(list(structure(list(UserId = structure(logical(0), tags = list(type = "string")), UserName = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), AccessString = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), Authentication = structure(list(Type = structure(logical(0), tags = list(type = "string")), PasswordCount = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list")), Marker = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "DescribeUsersResult"))
  return(populate(args, shape))
}

.elasticache$disassociate_global_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$disassociate_global_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroup = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), Members = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), Role = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroupMember", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroupMember", type = "list")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), GlobalNodeGroups = structure(list(structure(list(GlobalNodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalNodeGroup", type = "structure"))), tags = list(locationNameList = "GlobalNodeGroup", type = "list")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "DisassociateGlobalReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$failover_global_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), PrimaryRegion = structure(logical(0), tags = list(type = "string")), PrimaryReplicationGroupId = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$failover_global_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroup = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), Members = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), Role = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroupMember", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroupMember", type = "list")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), GlobalNodeGroups = structure(list(structure(list(GlobalNodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalNodeGroup", type = "structure"))), tags = list(locationNameList = "GlobalNodeGroup", type = "list")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "FailoverGlobalReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$increase_node_groups_in_global_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), NodeGroupCount = structure(logical(0), tags = list(type = "integer")), RegionalConfigurations = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), ReshardingConfiguration = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), PreferredAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "AvailabilityZone", type = "string"))), tags = list(locationNameList = "AvailabilityZone", type = "list"))), tags = list(locationName = "ReshardingConfiguration", type = "structure"))), tags = list(locationNameList = "ReshardingConfiguration", type = "list"))), tags = list(locationName = "RegionalConfiguration", type = "structure"))), tags = list(locationNameList = "RegionalConfiguration", type = "list")), ApplyImmediately = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$increase_node_groups_in_global_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroup = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), Members = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), Role = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroupMember", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroupMember", type = "list")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), GlobalNodeGroups = structure(list(structure(list(GlobalNodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalNodeGroup", type = "structure"))), tags = list(locationNameList = "GlobalNodeGroup", type = "list")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "IncreaseNodeGroupsInGlobalReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$increase_replica_count_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), NewReplicaCount = structure(logical(0), tags = list(type = "integer")), ReplicaConfiguration = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), NewReplicaCount = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "PreferredAvailabilityZone", type = "string"))), tags = list(locationNameList = "PreferredAvailabilityZone", type = "list")), PreferredOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "PreferredOutpostArn", type = "string"))), tags = list(locationNameList = "PreferredOutpostArn", type = "list"))), tags = list(locationName = "ConfigureShard", type = "structure"))), tags = list(locationNameList = "ConfigureShard", type = "list")), ApplyImmediately = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$increase_replica_count_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "IncreaseReplicaCountResult"))
  return(populate(args, shape))
}

.elasticache$list_allowed_node_type_modifications_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), ReplicationGroupId = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$list_allowed_node_type_modifications_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ScaleUpModifications = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ScaleDownModifications = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure", resultWrapper = "ListAllowedNodeTypeModificationsResult"))
  return(populate(args, shape))
}

.elasticache$list_tags_for_resource_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ResourceName = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$list_tags_for_resource_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(TagList = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure", resultWrapper = "ListTagsForResourceResult"))
  return(populate(args, shape))
}

.elasticache$modify_cache_cluster_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), CacheNodeIdsToRemove = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list")), AZMode = structure(logical(0), tags = list(type = "string")), NewAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "PreferredAvailabilityZone", type = "string"))), tags = list(locationNameList = "PreferredAvailabilityZone", type = "list")), CacheSecurityGroupNames = structure(list(structure(logical(0), tags = list(locationName = "CacheSecurityGroupName", type = "string"))), tags = list(locationNameList = "CacheSecurityGroupName", type = "list")), SecurityGroupIds = structure(list(structure(logical(0), tags = list(locationName = "SecurityGroupId", type = "string"))), tags = list(locationNameList = "SecurityGroupId", type = "list")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), NotificationTopicArn = structure(logical(0), tags = list(type = "string")), CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), NotificationTopicStatus = structure(logical(0), tags = list(type = "string")), ApplyImmediately = structure(logical(0), tags = list(type = "boolean")), EngineVersion = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthToken = structure(logical(0), tags = list(type = "string")), AuthTokenUpdateStrategy = structure(logical(0), tags = list(type = "string")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Enabled = structure(logical(0), tags = list(type = "boolean"))), tags = list(locationName = "LogDeliveryConfigurationRequest", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfigurationRequest", type = "list")), IpDiscovery = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$modify_cache_cluster_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheCluster = structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ClientDownloadLandingPage = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheClusterStatus = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CacheClusterCreateTime = structure(logical(0), tags = list(type = "timestamp")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(NumCacheNodes = structure(logical(0), tags = list(type = "integer")), CacheNodeIdsToRemove = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), NotificationConfiguration = structure(list(TopicArn = structure(logical(0), tags = list(type = "string")), TopicStatus = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), CacheSecurityGroups = structure(list(structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheSecurityGroup", type = "structure"))), tags = list(locationNameList = "CacheSecurityGroup", type = "list")), CacheParameterGroup = structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), ParameterApplyStatus = structure(logical(0), tags = list(type = "string")), CacheNodeIdsToReboot = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list"))), tags = list(type = "structure")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheNodes = structure(list(structure(list(CacheNodeId = structure(logical(0), tags = list(type = "string")), CacheNodeStatus = structure(logical(0), tags = list(type = "string")), CacheNodeCreateTime = structure(logical(0), tags = list(type = "timestamp")), Endpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ParameterGroupStatus = structure(logical(0), tags = list(type = "string")), SourceCacheNodeId = structure(logical(0), tags = list(type = "string")), CustomerAvailabilityZone = structure(logical(0), tags = list(type = "string")), CustomerOutpostArn = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheNode", type = "structure"))), tags = list(locationNameList = "CacheNode", type = "list")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SecurityGroups = structure(list(structure(list(SecurityGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string")), ReplicationGroupLogDeliveryEnabled = structure(logical(0), tags = list(type = "boolean")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "ModifyCacheClusterResult"))
  return(populate(args, shape))
}

.elasticache$modify_cache_parameter_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), ParameterNameValues = structure(list(structure(list(ParameterName = structure(logical(0), tags = list(type = "string")), ParameterValue = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "ParameterNameValue", type = "structure"))), tags = list(locationNameList = "ParameterNameValue", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$modify_cache_parameter_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "ModifyCacheParameterGroupResult"))
  return(populate(args, shape))
}

.elasticache$modify_cache_subnet_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupDescription = structure(logical(0), tags = list(type = "string")), SubnetIds = structure(list(structure(logical(0), tags = list(locationName = "SubnetIdentifier", type = "string"))), tags = list(locationNameList = "SubnetIdentifier", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$modify_cache_subnet_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSubnetGroup = structure(list(CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheSubnetGroupDescription = structure(logical(0), tags = list(type = "string")), VpcId = structure(logical(0), tags = list(type = "string")), Subnets = structure(list(structure(list(SubnetIdentifier = structure(logical(0), tags = list(type = "string")), SubnetAvailabilityZone = structure(list(Name = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE)), SubnetOutpost = structure(list(SubnetOutpostArn = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), SupportedNetworkTypes = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(locationName = "Subnet", type = "structure"))), tags = list(locationNameList = "Subnet", type = "list")), ARN = structure(logical(0), tags = list(type = "string")), SupportedNetworkTypes = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "ModifyCacheSubnetGroupResult"))
  return(populate(args, shape))
}

.elasticache$modify_global_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), ApplyImmediately = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), AutomaticFailoverEnabled = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$modify_global_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroup = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), Members = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), Role = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroupMember", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroupMember", type = "list")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), GlobalNodeGroups = structure(list(structure(list(GlobalNodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalNodeGroup", type = "structure"))), tags = list(locationNameList = "GlobalNodeGroup", type = "list")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "ModifyGlobalReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$modify_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), PrimaryClusterId = structure(logical(0), tags = list(type = "string")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverEnabled = structure(logical(0), tags = list(type = "boolean")), MultiAZEnabled = structure(logical(0), tags = list(type = "boolean")), NodeGroupId = structure(logical(0), tags = list(deprecated = TRUE, type = "string")), CacheSecurityGroupNames = structure(list(structure(logical(0), tags = list(locationName = "CacheSecurityGroupName", type = "string"))), tags = list(locationNameList = "CacheSecurityGroupName", type = "list")), SecurityGroupIds = structure(list(structure(logical(0), tags = list(locationName = "SecurityGroupId", type = "string"))), tags = list(locationNameList = "SecurityGroupId", type = "list")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), NotificationTopicArn = structure(logical(0), tags = list(type = "string")), CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), NotificationTopicStatus = structure(logical(0), tags = list(type = "string")), ApplyImmediately = structure(logical(0), tags = list(type = "boolean")), EngineVersion = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthToken = structure(logical(0), tags = list(type = "string")), AuthTokenUpdateStrategy = structure(logical(0), tags = list(type = "string")), UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), RemoveUserGroups = structure(logical(0), tags = list(type = "boolean")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Enabled = structure(logical(0), tags = list(type = "boolean"))), tags = list(locationName = "LogDeliveryConfigurationRequest", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfigurationRequest", type = "list")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$modify_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "ModifyReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$modify_replication_group_shard_configuration_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), NodeGroupCount = structure(logical(0), tags = list(type = "integer")), ApplyImmediately = structure(logical(0), tags = list(type = "boolean")), ReshardingConfiguration = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), PreferredAvailabilityZones = structure(list(structure(logical(0), tags = list(locationName = "AvailabilityZone", type = "string"))), tags = list(locationNameList = "AvailabilityZone", type = "list"))), tags = list(locationName = "ReshardingConfiguration", type = "structure"))), tags = list(locationNameList = "ReshardingConfiguration", type = "list")), NodeGroupsToRemove = structure(list(structure(logical(0), tags = list(locationName = "NodeGroupToRemove", type = "string"))), tags = list(locationNameList = "NodeGroupToRemove", type = "list")), NodeGroupsToRetain = structure(list(structure(logical(0), tags = list(locationName = "NodeGroupToRetain", type = "string"))), tags = list(locationNameList = "NodeGroupToRetain", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$modify_replication_group_shard_configuration_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "ModifyReplicationGroupShardConfigurationResult"))
  return(populate(args, shape))
}

.elasticache$modify_user_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserId = structure(logical(0), tags = list(type = "string")), AccessString = structure(logical(0), tags = list(type = "string")), AppendAccessString = structure(logical(0), tags = list(type = "string")), Passwords = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), NoPasswordRequired = structure(logical(0), tags = list(type = "boolean")), AuthenticationMode = structure(list(Type = structure(logical(0), tags = list(type = "string")), Passwords = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$modify_user_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserId = structure(logical(0), tags = list(type = "string")), UserName = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), AccessString = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), Authentication = structure(list(Type = structure(logical(0), tags = list(type = "string")), PasswordCount = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "ModifyUserResult"))
  return(populate(args, shape))
}

.elasticache$modify_user_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserGroupId = structure(logical(0), tags = list(type = "string")), UserIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$modify_user_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(UserGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), UserIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), MinimumEngineVersion = structure(logical(0), tags = list(type = "string")), PendingChanges = structure(list(UserIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), ReplicationGroups = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "ModifyUserGroupResult"))
  return(populate(args, shape))
}

.elasticache$purchase_reserved_cache_nodes_offering_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReservedCacheNodesOfferingId = structure(logical(0), tags = list(type = "string")), ReservedCacheNodeId = structure(logical(0), tags = list(type = "string")), CacheNodeCount = structure(logical(0), tags = list(type = "integer")), Tags = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$purchase_reserved_cache_nodes_offering_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReservedCacheNode = structure(list(ReservedCacheNodeId = structure(logical(0), tags = list(type = "string")), ReservedCacheNodesOfferingId = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), StartTime = structure(logical(0), tags = list(type = "timestamp")), Duration = structure(logical(0), tags = list(type = "integer")), FixedPrice = structure(logical(0), tags = list(type = "double")), UsagePrice = structure(logical(0), tags = list(type = "double")), CacheNodeCount = structure(logical(0), tags = list(type = "integer")), ProductDescription = structure(logical(0), tags = list(type = "string")), OfferingType = structure(logical(0), tags = list(type = "string")), State = structure(logical(0), tags = list(type = "string")), RecurringCharges = structure(list(structure(list(RecurringChargeAmount = structure(logical(0), tags = list(type = "double")), RecurringChargeFrequency = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "RecurringCharge", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "RecurringCharge", type = "list")), ReservationARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "PurchaseReservedCacheNodesOfferingResult"))
  return(populate(args, shape))
}

.elasticache$rebalance_slots_in_global_replication_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), ApplyImmediately = structure(logical(0), tags = list(type = "boolean"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$rebalance_slots_in_global_replication_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(GlobalReplicationGroup = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupDescription = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), Members = structure(list(structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), ReplicationGroupRegion = structure(logical(0), tags = list(type = "string")), Role = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalReplicationGroupMember", type = "structure", wrapper = TRUE))), tags = list(locationNameList = "GlobalReplicationGroupMember", type = "list")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), GlobalNodeGroups = structure(list(structure(list(GlobalNodeGroupId = structure(logical(0), tags = list(type = "string")), Slots = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "GlobalNodeGroup", type = "structure"))), tags = list(locationNameList = "GlobalNodeGroup", type = "list")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "RebalanceSlotsInGlobalReplicationGroupResult"))
  return(populate(args, shape))
}

.elasticache$reboot_cache_cluster_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeIdsToReboot = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$reboot_cache_cluster_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheCluster = structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ClientDownloadLandingPage = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), Engine = structure(logical(0), tags = list(type = "string")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheClusterStatus = structure(logical(0), tags = list(type = "string")), NumCacheNodes = structure(logical(0), tags = list(type = "integer")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CacheClusterCreateTime = structure(logical(0), tags = list(type = "timestamp")), PreferredMaintenanceWindow = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(NumCacheNodes = structure(logical(0), tags = list(type = "integer")), CacheNodeIdsToRemove = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list")), EngineVersion = structure(logical(0), tags = list(type = "string")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), NotificationConfiguration = structure(list(TopicArn = structure(logical(0), tags = list(type = "string")), TopicStatus = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), CacheSecurityGroups = structure(list(structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheSecurityGroup", type = "structure"))), tags = list(locationNameList = "CacheSecurityGroup", type = "list")), CacheParameterGroup = structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), ParameterApplyStatus = structure(logical(0), tags = list(type = "string")), CacheNodeIdsToReboot = structure(list(structure(logical(0), tags = list(locationName = "CacheNodeId", type = "string"))), tags = list(locationNameList = "CacheNodeId", type = "list"))), tags = list(type = "structure")), CacheSubnetGroupName = structure(logical(0), tags = list(type = "string")), CacheNodes = structure(list(structure(list(CacheNodeId = structure(logical(0), tags = list(type = "string")), CacheNodeStatus = structure(logical(0), tags = list(type = "string")), CacheNodeCreateTime = structure(logical(0), tags = list(type = "timestamp")), Endpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ParameterGroupStatus = structure(logical(0), tags = list(type = "string")), SourceCacheNodeId = structure(logical(0), tags = list(type = "string")), CustomerAvailabilityZone = structure(logical(0), tags = list(type = "string")), CustomerOutpostArn = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "CacheNode", type = "structure"))), tags = list(locationNameList = "CacheNode", type = "list")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), SecurityGroups = structure(list(structure(list(SecurityGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list")), ReplicationGroupId = structure(logical(0), tags = list(type = "string")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), ARN = structure(logical(0), tags = list(type = "string")), ReplicationGroupLogDeliveryEnabled = structure(logical(0), tags = list(type = "boolean")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "RebootCacheClusterResult"))
  return(populate(args, shape))
}

.elasticache$remove_tags_from_resource_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ResourceName = structure(logical(0), tags = list(type = "string")), TagKeys = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$remove_tags_from_resource_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(TagList = structure(list(structure(list(Key = structure(logical(0), tags = list(type = "string")), Value = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "Tag", type = "structure"))), tags = list(locationNameList = "Tag", type = "list"))), tags = list(type = "structure", resultWrapper = "RemoveTagsFromResourceResult"))
  return(populate(args, shape))
}

.elasticache$reset_cache_parameter_group_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string")), ResetAllParameters = structure(logical(0), tags = list(type = "boolean")), ParameterNameValues = structure(list(structure(list(ParameterName = structure(logical(0), tags = list(type = "string")), ParameterValue = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "ParameterNameValue", type = "structure"))), tags = list(locationNameList = "ParameterNameValue", type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$reset_cache_parameter_group_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheParameterGroupName = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", resultWrapper = "ResetCacheParameterGroupResult"))
  return(populate(args, shape))
}

.elasticache$revoke_cache_security_group_ingress_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupName = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupOwnerId = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$revoke_cache_security_group_ingress_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(CacheSecurityGroup = structure(list(OwnerId = structure(logical(0), tags = list(type = "string")), CacheSecurityGroupName = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), EC2SecurityGroups = structure(list(structure(list(Status = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupName = structure(logical(0), tags = list(type = "string")), EC2SecurityGroupOwnerId = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "EC2SecurityGroup", type = "structure"))), tags = list(locationNameList = "EC2SecurityGroup", type = "list")), ARN = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "RevokeCacheSecurityGroupIngressResult"))
  return(populate(args, shape))
}

.elasticache$start_migration_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), CustomerNodeEndpointList = structure(list(structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure"))), tags = list(type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$start_migration_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "StartMigrationResult"))
  return(populate(args, shape))
}

.elasticache$test_failover_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), NodeGroupId = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$test_failover_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "TestFailoverResult"))
  return(populate(args, shape))
}

.elasticache$test_migration_input <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), CustomerNodeEndpointList = structure(list(structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure"))), tags = list(type = "list"))), tags = list(type = "structure"))
  return(populate(args, shape))
}

.elasticache$test_migration_output <- function(...) {
  args <- c(as.list(environment()), list(...))
  shape <- structure(list(ReplicationGroup = structure(list(ReplicationGroupId = structure(logical(0), tags = list(type = "string")), Description = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupInfo = structure(list(GlobalReplicationGroupId = structure(logical(0), tags = list(type = "string")), GlobalReplicationGroupMemberRole = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), Status = structure(logical(0), tags = list(type = "string")), PendingModifiedValues = structure(list(PrimaryClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailoverStatus = structure(logical(0), tags = list(type = "string")), Resharding = structure(list(SlotMigration = structure(list(ProgressPercentage = structure(logical(0), tags = list(type = "double"))), tags = list(type = "structure"))), tags = list(type = "structure")), AuthTokenStatus = structure(logical(0), tags = list(type = "string")), UserGroups = structure(list(UserGroupIdsToAdd = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), UserGroupIdsToRemove = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list"))), tags = list(type = "structure")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "list", locationName = "PendingLogDeliveryConfiguration")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), MemberClusters = structure(list(structure(logical(0), tags = list(locationName = "ClusterId", type = "string"))), tags = list(locationNameList = "ClusterId", type = "list")), NodeGroups = structure(list(structure(list(NodeGroupId = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), PrimaryEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), ReaderEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), Slots = structure(logical(0), tags = list(type = "string")), NodeGroupMembers = structure(list(structure(list(CacheClusterId = structure(logical(0), tags = list(type = "string")), CacheNodeId = structure(logical(0), tags = list(type = "string")), ReadEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), PreferredAvailabilityZone = structure(logical(0), tags = list(type = "string")), PreferredOutpostArn = structure(logical(0), tags = list(type = "string")), CurrentRole = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "NodeGroupMember", type = "structure"))), tags = list(locationNameList = "NodeGroupMember", type = "list"))), tags = list(locationName = "NodeGroup", type = "structure"))), tags = list(locationNameList = "NodeGroup", type = "list")), SnapshottingClusterId = structure(logical(0), tags = list(type = "string")), AutomaticFailover = structure(logical(0), tags = list(type = "string")), MultiAZ = structure(logical(0), tags = list(type = "string")), ConfigurationEndpoint = structure(list(Address = structure(logical(0), tags = list(type = "string")), Port = structure(logical(0), tags = list(type = "integer"))), tags = list(type = "structure")), SnapshotRetentionLimit = structure(logical(0), tags = list(type = "integer")), SnapshotWindow = structure(logical(0), tags = list(type = "string")), ClusterEnabled = structure(logical(0), tags = list(type = "boolean")), CacheNodeType = structure(logical(0), tags = list(type = "string")), AuthTokenEnabled = structure(logical(0), tags = list(type = "boolean")), AuthTokenLastModifiedDate = structure(logical(0), tags = list(type = "timestamp")), TransitEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), AtRestEncryptionEnabled = structure(logical(0), tags = list(type = "boolean")), MemberClustersOutpostArns = structure(list(structure(logical(0), tags = list(locationName = "ReplicationGroupOutpostArn", type = "string"))), tags = list(locationNameList = "ReplicationGroupOutpostArn", type = "list")), KmsKeyId = structure(logical(0), tags = list(type = "string")), ARN = structure(logical(0), tags = list(type = "string")), UserGroupIds = structure(list(structure(logical(0), tags = list(type = "string"))), tags = list(type = "list")), LogDeliveryConfigurations = structure(list(structure(list(LogType = structure(logical(0), tags = list(type = "string")), DestinationType = structure(logical(0), tags = list(type = "string")), DestinationDetails = structure(list(CloudWatchLogsDetails = structure(list(LogGroup = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure")), KinesisFirehoseDetails = structure(list(DeliveryStream = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure"))), tags = list(type = "structure")), LogFormat = structure(logical(0), tags = list(type = "string")), Status = structure(logical(0), tags = list(type = "string")), Message = structure(logical(0), tags = list(type = "string"))), tags = list(locationName = "LogDeliveryConfiguration", type = "structure"))), tags = list(locationNameList = "LogDeliveryConfiguration", type = "list")), ReplicationGroupCreateTime = structure(logical(0), tags = list(type = "timestamp")), DataTiering = structure(logical(0), tags = list(type = "string")), AutoMinorVersionUpgrade = structure(logical(0), tags = list(type = "boolean")), NetworkType = structure(logical(0), tags = list(type = "string")), IpDiscovery = structure(logical(0), tags = list(type = "string")), TransitEncryptionMode = structure(logical(0), tags = list(type = "string")), ClusterMode = structure(logical(0), tags = list(type = "string"))), tags = list(type = "structure", wrapper = TRUE))), tags = list(type = "structure", resultWrapper = "TestMigrationResult"))
  return(populate(args, shape))
}

Try the paws.database package in your browser

Any scripts or data that you put into this service are public.

paws.database documentation built on Sept. 12, 2023, 1:21 a.m.