@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon ElastiCache
@version 2015-02-02
@auth AWS SigV4
@endpoints 75
@hint download_for_search
@toc root(75)

@endpoint POST /
@required {ResourceName: str, Tags: [Tag]}
@returns(200) {TagList: [Tag]?}

@endpoint POST /
@required {CacheSecurityGroupName: str, EC2SecurityGroupName: str, EC2SecurityGroupOwnerId: str}
@returns(200) {CacheSecurityGroup: CacheSecurityGroup?{OwnerId: str?, CacheSecurityGroupName: str?, Description: str?, EC2SecurityGroups: [EC2SecurityGroup]?, ARN: str?}}

@endpoint POST /
@required {ServiceUpdateName: str}
@optional {ReplicationGroupIds: [str], CacheClusterIds: [str]}
@returns(200) {ProcessedUpdateActions: [ProcessedUpdateAction]?, UnprocessedUpdateActions: [UnprocessedUpdateAction]?}

@endpoint POST /
@required {ServiceUpdateName: str}
@optional {ReplicationGroupIds: [str], CacheClusterIds: [str]}
@returns(200) {ProcessedUpdateActions: [ProcessedUpdateAction]?, UnprocessedUpdateActions: [UnprocessedUpdateAction]?}

@endpoint POST /
@required {ReplicationGroupId: str}
@optional {Force: bool}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@endpoint POST /
@required {SourceServerlessCacheSnapshotName: str, TargetServerlessCacheSnapshotName: str}
@optional {KmsKeyId: str, Tags: [Tag]}
@returns(200) {ServerlessCacheSnapshot: ServerlessCacheSnapshot?{ServerlessCacheSnapshotName: str?, ARN: str?, KmsKeyId: str?, SnapshotType: str?, Status: str?, CreateTime: str(timestamp)?, ExpiryTime: str(timestamp)?, BytesUsedForCache: str?, ServerlessCacheConfiguration: ServerlessCacheConfiguration?{ServerlessCacheName: str?, Engine: str?, MajorEngineVersion: str?}}}

@endpoint POST /
@required {SourceSnapshotName: str, TargetSnapshotName: str}
@optional {TargetBucket: str, KmsKeyId: str, Tags: [Tag]}
@returns(200) {Snapshot: Snapshot?{SnapshotName: str?, ReplicationGroupId: str?, ReplicationGroupDescription: str?, CacheClusterId: str?, SnapshotStatus: str?, SnapshotSource: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, NumCacheNodes: int?, PreferredAvailabilityZone: str?, PreferredOutpostArn: str?, CacheClusterCreateTime: str(timestamp)?, PreferredMaintenanceWindow: str?, TopicArn: str?, Port: int?, CacheParameterGroupName: str?, CacheSubnetGroupName: str?, VpcId: str?, AutoMinorVersionUpgrade: bool?, SnapshotRetentionLimit: int?, SnapshotWindow: str?, NumNodeGroups: int?, AutomaticFailover: str?, NodeSnapshots: [NodeSnapshot]?, KmsKeyId: str?, ARN: str?, DataTiering: str?}}

@endpoint POST /
@required {CacheClusterId: str}
@optional {ReplicationGroupId: str, AZMode: str, PreferredAvailabilityZone: str, PreferredAvailabilityZones: [str], NumCacheNodes: int, CacheNodeType: str, Engine: str, EngineVersion: str, CacheParameterGroupName: str, CacheSubnetGroupName: str, CacheSecurityGroupNames: [str], SecurityGroupIds: [str], Tags: [Tag], SnapshotArns: [str], SnapshotName: str, PreferredMaintenanceWindow: str, Port: int, NotificationTopicArn: str, AutoMinorVersionUpgrade: bool, SnapshotRetentionLimit: int, SnapshotWindow: str, AuthToken: str, OutpostMode: str, PreferredOutpostArn: str, PreferredOutpostArns: [str], LogDeliveryConfigurations: [LogDeliveryConfigurationRequest], TransitEncryptionEnabled: bool, NetworkType: str, IpDiscovery: str}
@returns(200) {CacheCluster: CacheCluster?{CacheClusterId: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, ClientDownloadLandingPage: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, CacheClusterStatus: str?, NumCacheNodes: int?, PreferredAvailabilityZone: str?, PreferredOutpostArn: str?, CacheClusterCreateTime: str(timestamp)?, PreferredMaintenanceWindow: str?, PendingModifiedValues: PendingModifiedValues?{NumCacheNodes: int?, CacheNodeIdsToRemove: [str]?, EngineVersion: str?, CacheNodeType: str?, AuthTokenStatus: str?, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?}, NotificationConfiguration: NotificationConfiguration?{TopicArn: str?, TopicStatus: str?}, CacheSecurityGroups: [CacheSecurityGroupMembership]?, CacheParameterGroup: CacheParameterGroupStatus?{CacheParameterGroupName: str?, ParameterApplyStatus: str?, CacheNodeIdsToReboot: [str]?}, CacheSubnetGroupName: str?, CacheNodes: [CacheNode]?, AutoMinorVersionUpgrade: bool?, SecurityGroups: [SecurityGroupMembership]?, ReplicationGroupId: str?, SnapshotRetentionLimit: int?, SnapshotWindow: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?, ReplicationGroupLogDeliveryEnabled: bool?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?}}

@endpoint POST /
@required {CacheParameterGroupName: str, CacheParameterGroupFamily: str, Description: str}
@optional {Tags: [Tag]}
@returns(200) {CacheParameterGroup: CacheParameterGroup?{CacheParameterGroupName: str?, CacheParameterGroupFamily: str?, Description: str?, IsGlobal: bool?, ARN: str?}}

@endpoint POST /
@required {CacheSecurityGroupName: str, Description: str}
@optional {Tags: [Tag]}
@returns(200) {CacheSecurityGroup: CacheSecurityGroup?{OwnerId: str?, CacheSecurityGroupName: str?, Description: str?, EC2SecurityGroups: [EC2SecurityGroup]?, ARN: str?}}

@endpoint POST /
@required {CacheSubnetGroupName: str, CacheSubnetGroupDescription: str, SubnetIds: [str]}
@optional {Tags: [Tag]}
@returns(200) {CacheSubnetGroup: CacheSubnetGroup?{CacheSubnetGroupName: str?, CacheSubnetGroupDescription: str?, VpcId: str?, Subnets: [Subnet]?, ARN: str?, SupportedNetworkTypes: [str]?}}

@endpoint POST /
@required {GlobalReplicationGroupIdSuffix: str, PrimaryReplicationGroupId: str}
@optional {GlobalReplicationGroupDescription: str}
@returns(200) {GlobalReplicationGroup: GlobalReplicationGroup?{GlobalReplicationGroupId: str?, GlobalReplicationGroupDescription: str?, Status: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, Members: [GlobalReplicationGroupMember]?, ClusterEnabled: bool?, GlobalNodeGroups: [GlobalNodeGroup]?, AuthTokenEnabled: bool?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?}}

@endpoint POST /
@required {ReplicationGroupId: str, ReplicationGroupDescription: str}
@optional {GlobalReplicationGroupId: str, PrimaryClusterId: str, AutomaticFailoverEnabled: bool, MultiAZEnabled: bool, NumCacheClusters: int, PreferredCacheClusterAZs: [str], NumNodeGroups: int, ReplicasPerNodeGroup: int, NodeGroupConfiguration: [NodeGroupConfiguration], CacheNodeType: str, Engine: str, EngineVersion: str, CacheParameterGroupName: str, CacheSubnetGroupName: str, CacheSecurityGroupNames: [str], SecurityGroupIds: [str], Tags: [Tag], SnapshotArns: [str], SnapshotName: str, PreferredMaintenanceWindow: str, Port: int, NotificationTopicArn: str, AutoMinorVersionUpgrade: bool, SnapshotRetentionLimit: int, SnapshotWindow: str, AuthToken: str, TransitEncryptionEnabled: bool, AtRestEncryptionEnabled: bool, KmsKeyId: str, UserGroupIds: [str], LogDeliveryConfigurations: [LogDeliveryConfigurationRequest], DataTieringEnabled: bool, NetworkType: str, IpDiscovery: str, TransitEncryptionMode: str, ClusterMode: str, ServerlessCacheSnapshotName: str}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@endpoint POST /
@required {ServerlessCacheName: str, Engine: str}
@optional {Description: str, MajorEngineVersion: str, CacheUsageLimits: CacheUsageLimits, KmsKeyId: str, SecurityGroupIds: [str], SnapshotArnsToRestore: [str], Tags: [Tag], UserGroupId: str, SubnetIds: [str], SnapshotRetentionLimit: int, DailySnapshotTime: str}
@returns(200) {ServerlessCache: ServerlessCache?{ServerlessCacheName: str?, Description: str?, CreateTime: str(timestamp)?, Status: str?, Engine: str?, MajorEngineVersion: str?, FullEngineVersion: str?, CacheUsageLimits: CacheUsageLimits?{DataStorage: DataStorage?{Maximum: int?, Minimum: int?, Unit: str}, ECPUPerSecond: ECPUPerSecond?{Maximum: int?, Minimum: int?}}, KmsKeyId: str?, SecurityGroupIds: [str]?, Endpoint: Endpoint?{Address: str?, Port: int?}, ReaderEndpoint: Endpoint?{Address: str?, Port: int?}, ARN: str?, UserGroupId: str?, SubnetIds: [str]?, SnapshotRetentionLimit: int?, DailySnapshotTime: str?}}

@endpoint POST /
@required {ServerlessCacheSnapshotName: str, ServerlessCacheName: str}
@optional {KmsKeyId: str, Tags: [Tag]}
@returns(200) {ServerlessCacheSnapshot: ServerlessCacheSnapshot?{ServerlessCacheSnapshotName: str?, ARN: str?, KmsKeyId: str?, SnapshotType: str?, Status: str?, CreateTime: str(timestamp)?, ExpiryTime: str(timestamp)?, BytesUsedForCache: str?, ServerlessCacheConfiguration: ServerlessCacheConfiguration?{ServerlessCacheName: str?, Engine: str?, MajorEngineVersion: str?}}}

@endpoint POST /
@required {SnapshotName: str}
@optional {ReplicationGroupId: str, CacheClusterId: str, KmsKeyId: str, Tags: [Tag]}
@returns(200) {Snapshot: Snapshot?{SnapshotName: str?, ReplicationGroupId: str?, ReplicationGroupDescription: str?, CacheClusterId: str?, SnapshotStatus: str?, SnapshotSource: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, NumCacheNodes: int?, PreferredAvailabilityZone: str?, PreferredOutpostArn: str?, CacheClusterCreateTime: str(timestamp)?, PreferredMaintenanceWindow: str?, TopicArn: str?, Port: int?, CacheParameterGroupName: str?, CacheSubnetGroupName: str?, VpcId: str?, AutoMinorVersionUpgrade: bool?, SnapshotRetentionLimit: int?, SnapshotWindow: str?, NumNodeGroups: int?, AutomaticFailover: str?, NodeSnapshots: [NodeSnapshot]?, KmsKeyId: str?, ARN: str?, DataTiering: str?}}

@endpoint POST /
@required {UserId: str, UserName: str, Engine: str, AccessString: str}
@optional {Passwords: [str], NoPasswordRequired: bool, Tags: [Tag], AuthenticationMode: AuthenticationMode}
@returns(200) {UserId: str?, UserName: str?, Status: str?, Engine: str?, MinimumEngineVersion: str?, AccessString: str?, UserGroupIds: [str]?, Authentication: Authentication?{Type: str?, PasswordCount: int?}, ARN: str?}

@endpoint POST /
@required {UserGroupId: str, Engine: str}
@optional {UserIds: [str], Tags: [Tag]}
@returns(200) {UserGroupId: str?, Status: str?, Engine: str?, UserIds: [str]?, MinimumEngineVersion: str?, PendingChanges: UserGroupPendingChanges?{UserIdsToRemove: [str]?, UserIdsToAdd: [str]?}, ReplicationGroups: [str]?, ServerlessCaches: [str]?, ARN: str?}

@endpoint POST /
@required {GlobalReplicationGroupId: str, NodeGroupCount: int, ApplyImmediately: bool}
@optional {GlobalNodeGroupsToRemove: [str], GlobalNodeGroupsToRetain: [str]}
@returns(200) {GlobalReplicationGroup: GlobalReplicationGroup?{GlobalReplicationGroupId: str?, GlobalReplicationGroupDescription: str?, Status: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, Members: [GlobalReplicationGroupMember]?, ClusterEnabled: bool?, GlobalNodeGroups: [GlobalNodeGroup]?, AuthTokenEnabled: bool?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?}}

@endpoint POST /
@required {ReplicationGroupId: str, ApplyImmediately: bool}
@optional {NewReplicaCount: int, ReplicaConfiguration: [ConfigureShard], ReplicasToRemove: [str]}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@endpoint POST /
@required {CacheClusterId: str}
@optional {FinalSnapshotIdentifier: str}
@returns(200) {CacheCluster: CacheCluster?{CacheClusterId: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, ClientDownloadLandingPage: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, CacheClusterStatus: str?, NumCacheNodes: int?, PreferredAvailabilityZone: str?, PreferredOutpostArn: str?, CacheClusterCreateTime: str(timestamp)?, PreferredMaintenanceWindow: str?, PendingModifiedValues: PendingModifiedValues?{NumCacheNodes: int?, CacheNodeIdsToRemove: [str]?, EngineVersion: str?, CacheNodeType: str?, AuthTokenStatus: str?, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?}, NotificationConfiguration: NotificationConfiguration?{TopicArn: str?, TopicStatus: str?}, CacheSecurityGroups: [CacheSecurityGroupMembership]?, CacheParameterGroup: CacheParameterGroupStatus?{CacheParameterGroupName: str?, ParameterApplyStatus: str?, CacheNodeIdsToReboot: [str]?}, CacheSubnetGroupName: str?, CacheNodes: [CacheNode]?, AutoMinorVersionUpgrade: bool?, SecurityGroups: [SecurityGroupMembership]?, ReplicationGroupId: str?, SnapshotRetentionLimit: int?, SnapshotWindow: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?, ReplicationGroupLogDeliveryEnabled: bool?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?}}

@endpoint POST /
@required {CacheParameterGroupName: str}

@endpoint POST /
@required {CacheSecurityGroupName: str}

@endpoint POST /
@required {CacheSubnetGroupName: str}

@endpoint POST /
@required {GlobalReplicationGroupId: str, RetainPrimaryReplicationGroup: bool}
@returns(200) {GlobalReplicationGroup: GlobalReplicationGroup?{GlobalReplicationGroupId: str?, GlobalReplicationGroupDescription: str?, Status: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, Members: [GlobalReplicationGroupMember]?, ClusterEnabled: bool?, GlobalNodeGroups: [GlobalNodeGroup]?, AuthTokenEnabled: bool?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?}}

@endpoint POST /
@required {ReplicationGroupId: str}
@optional {RetainPrimaryCluster: bool, FinalSnapshotIdentifier: str}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@endpoint POST /
@required {ServerlessCacheName: str}
@optional {FinalSnapshotName: str}
@returns(200) {ServerlessCache: ServerlessCache?{ServerlessCacheName: str?, Description: str?, CreateTime: str(timestamp)?, Status: str?, Engine: str?, MajorEngineVersion: str?, FullEngineVersion: str?, CacheUsageLimits: CacheUsageLimits?{DataStorage: DataStorage?{Maximum: int?, Minimum: int?, Unit: str}, ECPUPerSecond: ECPUPerSecond?{Maximum: int?, Minimum: int?}}, KmsKeyId: str?, SecurityGroupIds: [str]?, Endpoint: Endpoint?{Address: str?, Port: int?}, ReaderEndpoint: Endpoint?{Address: str?, Port: int?}, ARN: str?, UserGroupId: str?, SubnetIds: [str]?, SnapshotRetentionLimit: int?, DailySnapshotTime: str?}}

@endpoint POST /
@required {ServerlessCacheSnapshotName: str}
@returns(200) {ServerlessCacheSnapshot: ServerlessCacheSnapshot?{ServerlessCacheSnapshotName: str?, ARN: str?, KmsKeyId: str?, SnapshotType: str?, Status: str?, CreateTime: str(timestamp)?, ExpiryTime: str(timestamp)?, BytesUsedForCache: str?, ServerlessCacheConfiguration: ServerlessCacheConfiguration?{ServerlessCacheName: str?, Engine: str?, MajorEngineVersion: str?}}}

@endpoint POST /
@required {SnapshotName: str}
@returns(200) {Snapshot: Snapshot?{SnapshotName: str?, ReplicationGroupId: str?, ReplicationGroupDescription: str?, CacheClusterId: str?, SnapshotStatus: str?, SnapshotSource: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, NumCacheNodes: int?, PreferredAvailabilityZone: str?, PreferredOutpostArn: str?, CacheClusterCreateTime: str(timestamp)?, PreferredMaintenanceWindow: str?, TopicArn: str?, Port: int?, CacheParameterGroupName: str?, CacheSubnetGroupName: str?, VpcId: str?, AutoMinorVersionUpgrade: bool?, SnapshotRetentionLimit: int?, SnapshotWindow: str?, NumNodeGroups: int?, AutomaticFailover: str?, NodeSnapshots: [NodeSnapshot]?, KmsKeyId: str?, ARN: str?, DataTiering: str?}}

@endpoint POST /
@required {UserId: str}
@returns(200) {UserId: str?, UserName: str?, Status: str?, Engine: str?, MinimumEngineVersion: str?, AccessString: str?, UserGroupIds: [str]?, Authentication: Authentication?{Type: str?, PasswordCount: int?}, ARN: str?}

@endpoint POST /
@required {UserGroupId: str}
@returns(200) {UserGroupId: str?, Status: str?, Engine: str?, UserIds: [str]?, MinimumEngineVersion: str?, PendingChanges: UserGroupPendingChanges?{UserIdsToRemove: [str]?, UserIdsToAdd: [str]?}, ReplicationGroups: [str]?, ServerlessCaches: [str]?, ARN: str?}

@endpoint POST /
@optional {CacheClusterId: str, MaxRecords: int, Marker: str, ShowCacheNodeInfo: bool, ShowCacheClustersNotInReplicationGroups: bool}
@returns(200) {Marker: str?, CacheClusters: [CacheCluster]?}

@endpoint POST /
@optional {Engine: str, EngineVersion: str, CacheParameterGroupFamily: str, MaxRecords: int, Marker: str, DefaultOnly: bool}
@returns(200) {Marker: str?, CacheEngineVersions: [CacheEngineVersion]?}

@endpoint POST /
@optional {CacheParameterGroupName: str, MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, CacheParameterGroups: [CacheParameterGroup]?}

@endpoint POST /
@required {CacheParameterGroupName: str}
@optional {Source: str, MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, Parameters: [Parameter]?, CacheNodeTypeSpecificParameters: [CacheNodeTypeSpecificParameter]?}

@endpoint POST /
@optional {CacheSecurityGroupName: str, MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, CacheSecurityGroups: [CacheSecurityGroup]?}

@endpoint POST /
@optional {CacheSubnetGroupName: str, MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, CacheSubnetGroups: [CacheSubnetGroup]?}

@endpoint POST /
@required {CacheParameterGroupFamily: str}
@optional {MaxRecords: int, Marker: str}
@returns(200) {EngineDefaults: EngineDefaults?{CacheParameterGroupFamily: str?, Marker: str?, Parameters: [Parameter]?, CacheNodeTypeSpecificParameters: [CacheNodeTypeSpecificParameter]?}}

@endpoint POST /
@optional {SourceIdentifier: str, SourceType: str, StartTime: str(timestamp), EndTime: str(timestamp), Duration: int, MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, Events: [Event]?}

@endpoint POST /
@optional {GlobalReplicationGroupId: str, MaxRecords: int, Marker: str, ShowMemberInfo: bool}
@returns(200) {Marker: str?, GlobalReplicationGroups: [GlobalReplicationGroup]?}

@endpoint POST /
@optional {ReplicationGroupId: str, MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, ReplicationGroups: [ReplicationGroup]?}

@endpoint POST /
@optional {ReservedCacheNodeId: str, ReservedCacheNodesOfferingId: str, CacheNodeType: str, Duration: str, ProductDescription: str, OfferingType: str, MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, ReservedCacheNodes: [ReservedCacheNode]?}

@endpoint POST /
@optional {ReservedCacheNodesOfferingId: str, CacheNodeType: str, Duration: str, ProductDescription: str, OfferingType: str, MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, ReservedCacheNodesOfferings: [ReservedCacheNodesOffering]?}

@endpoint POST /
@optional {ServerlessCacheName: str, ServerlessCacheSnapshotName: str, SnapshotType: str, NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, ServerlessCacheSnapshots: [ServerlessCacheSnapshot]?}

@endpoint POST /
@optional {ServerlessCacheName: str, MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, ServerlessCaches: [ServerlessCache]?}

@endpoint POST /
@optional {ServiceUpdateName: str, ServiceUpdateStatus: [str], MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, ServiceUpdates: [ServiceUpdate]?}

@endpoint POST /
@optional {ReplicationGroupId: str, CacheClusterId: str, SnapshotName: str, SnapshotSource: str, Marker: str, MaxRecords: int, ShowNodeGroupConfig: bool}
@returns(200) {Marker: str?, Snapshots: [Snapshot]?}

@endpoint POST /
@optional {ServiceUpdateName: str, ReplicationGroupIds: [str], CacheClusterIds: [str], Engine: str, ServiceUpdateStatus: [str], ServiceUpdateTimeRange: TimeRangeFilter, UpdateActionStatus: [str], ShowNodeLevelUpdateStatus: bool, MaxRecords: int, Marker: str}
@returns(200) {Marker: str?, UpdateActions: [UpdateAction]?}

@endpoint POST /
@optional {UserGroupId: str, MaxRecords: int, Marker: str}
@returns(200) {UserGroups: [UserGroup]?, Marker: str?}

@endpoint POST /
@optional {Engine: str, UserId: str, Filters: [Filter], MaxRecords: int, Marker: str}
@returns(200) {Users: [User]?, Marker: str?}

@endpoint POST /
@required {GlobalReplicationGroupId: str, ReplicationGroupId: str, ReplicationGroupRegion: str}
@returns(200) {GlobalReplicationGroup: GlobalReplicationGroup?{GlobalReplicationGroupId: str?, GlobalReplicationGroupDescription: str?, Status: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, Members: [GlobalReplicationGroupMember]?, ClusterEnabled: bool?, GlobalNodeGroups: [GlobalNodeGroup]?, AuthTokenEnabled: bool?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?}}

@endpoint POST /
@required {ServerlessCacheSnapshotName: str, S3BucketName: str}
@returns(200) {ServerlessCacheSnapshot: ServerlessCacheSnapshot?{ServerlessCacheSnapshotName: str?, ARN: str?, KmsKeyId: str?, SnapshotType: str?, Status: str?, CreateTime: str(timestamp)?, ExpiryTime: str(timestamp)?, BytesUsedForCache: str?, ServerlessCacheConfiguration: ServerlessCacheConfiguration?{ServerlessCacheName: str?, Engine: str?, MajorEngineVersion: str?}}}

@endpoint POST /
@required {GlobalReplicationGroupId: str, PrimaryRegion: str, PrimaryReplicationGroupId: str}
@returns(200) {GlobalReplicationGroup: GlobalReplicationGroup?{GlobalReplicationGroupId: str?, GlobalReplicationGroupDescription: str?, Status: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, Members: [GlobalReplicationGroupMember]?, ClusterEnabled: bool?, GlobalNodeGroups: [GlobalNodeGroup]?, AuthTokenEnabled: bool?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?}}

@endpoint POST /
@required {GlobalReplicationGroupId: str, NodeGroupCount: int, ApplyImmediately: bool}
@optional {RegionalConfigurations: [RegionalConfiguration]}
@returns(200) {GlobalReplicationGroup: GlobalReplicationGroup?{GlobalReplicationGroupId: str?, GlobalReplicationGroupDescription: str?, Status: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, Members: [GlobalReplicationGroupMember]?, ClusterEnabled: bool?, GlobalNodeGroups: [GlobalNodeGroup]?, AuthTokenEnabled: bool?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?}}

@endpoint POST /
@required {ReplicationGroupId: str, ApplyImmediately: bool}
@optional {NewReplicaCount: int, ReplicaConfiguration: [ConfigureShard]}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@endpoint POST /
@optional {CacheClusterId: str, ReplicationGroupId: str}
@returns(200) {ScaleUpModifications: [str]?, ScaleDownModifications: [str]?}

@endpoint POST /
@required {ResourceName: str}
@returns(200) {TagList: [Tag]?}

@endpoint POST /
@required {CacheClusterId: str}
@optional {NumCacheNodes: int, CacheNodeIdsToRemove: [str], AZMode: str, NewAvailabilityZones: [str], CacheSecurityGroupNames: [str], SecurityGroupIds: [str], PreferredMaintenanceWindow: str, NotificationTopicArn: str, CacheParameterGroupName: str, NotificationTopicStatus: str, ApplyImmediately: bool, EngineVersion: str, AutoMinorVersionUpgrade: bool, SnapshotRetentionLimit: int, SnapshotWindow: str, CacheNodeType: str, AuthToken: str, AuthTokenUpdateStrategy: str, LogDeliveryConfigurations: [LogDeliveryConfigurationRequest], IpDiscovery: str}
@returns(200) {CacheCluster: CacheCluster?{CacheClusterId: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, ClientDownloadLandingPage: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, CacheClusterStatus: str?, NumCacheNodes: int?, PreferredAvailabilityZone: str?, PreferredOutpostArn: str?, CacheClusterCreateTime: str(timestamp)?, PreferredMaintenanceWindow: str?, PendingModifiedValues: PendingModifiedValues?{NumCacheNodes: int?, CacheNodeIdsToRemove: [str]?, EngineVersion: str?, CacheNodeType: str?, AuthTokenStatus: str?, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?}, NotificationConfiguration: NotificationConfiguration?{TopicArn: str?, TopicStatus: str?}, CacheSecurityGroups: [CacheSecurityGroupMembership]?, CacheParameterGroup: CacheParameterGroupStatus?{CacheParameterGroupName: str?, ParameterApplyStatus: str?, CacheNodeIdsToReboot: [str]?}, CacheSubnetGroupName: str?, CacheNodes: [CacheNode]?, AutoMinorVersionUpgrade: bool?, SecurityGroups: [SecurityGroupMembership]?, ReplicationGroupId: str?, SnapshotRetentionLimit: int?, SnapshotWindow: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?, ReplicationGroupLogDeliveryEnabled: bool?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?}}

@endpoint POST /
@required {CacheParameterGroupName: str, ParameterNameValues: [ParameterNameValue]}
@returns(200) {CacheParameterGroupName: str?}

@endpoint POST /
@required {CacheSubnetGroupName: str}
@optional {CacheSubnetGroupDescription: str, SubnetIds: [str]}
@returns(200) {CacheSubnetGroup: CacheSubnetGroup?{CacheSubnetGroupName: str?, CacheSubnetGroupDescription: str?, VpcId: str?, Subnets: [Subnet]?, ARN: str?, SupportedNetworkTypes: [str]?}}

@endpoint POST /
@required {GlobalReplicationGroupId: str, ApplyImmediately: bool}
@optional {CacheNodeType: str, EngineVersion: str, CacheParameterGroupName: str, GlobalReplicationGroupDescription: str, AutomaticFailoverEnabled: bool}
@returns(200) {GlobalReplicationGroup: GlobalReplicationGroup?{GlobalReplicationGroupId: str?, GlobalReplicationGroupDescription: str?, Status: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, Members: [GlobalReplicationGroupMember]?, ClusterEnabled: bool?, GlobalNodeGroups: [GlobalNodeGroup]?, AuthTokenEnabled: bool?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?}}

@endpoint POST /
@required {ReplicationGroupId: str}
@optional {ReplicationGroupDescription: str, PrimaryClusterId: str, SnapshottingClusterId: str, AutomaticFailoverEnabled: bool, MultiAZEnabled: bool, NodeGroupId: str, CacheSecurityGroupNames: [str], SecurityGroupIds: [str], PreferredMaintenanceWindow: str, NotificationTopicArn: str, CacheParameterGroupName: str, NotificationTopicStatus: str, ApplyImmediately: bool, EngineVersion: str, AutoMinorVersionUpgrade: bool, SnapshotRetentionLimit: int, SnapshotWindow: str, CacheNodeType: str, AuthToken: str, AuthTokenUpdateStrategy: str, UserGroupIdsToAdd: [str], UserGroupIdsToRemove: [str], RemoveUserGroups: bool, LogDeliveryConfigurations: [LogDeliveryConfigurationRequest], IpDiscovery: str, TransitEncryptionEnabled: bool, TransitEncryptionMode: str, ClusterMode: str}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@endpoint POST /
@required {ReplicationGroupId: str, NodeGroupCount: int, ApplyImmediately: bool}
@optional {ReshardingConfiguration: [ReshardingConfiguration], NodeGroupsToRemove: [str], NodeGroupsToRetain: [str]}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@endpoint POST /
@required {ServerlessCacheName: str}
@optional {Description: str, CacheUsageLimits: CacheUsageLimits, RemoveUserGroup: bool, UserGroupId: str, SecurityGroupIds: [str], SnapshotRetentionLimit: int, DailySnapshotTime: str}
@returns(200) {ServerlessCache: ServerlessCache?{ServerlessCacheName: str?, Description: str?, CreateTime: str(timestamp)?, Status: str?, Engine: str?, MajorEngineVersion: str?, FullEngineVersion: str?, CacheUsageLimits: CacheUsageLimits?{DataStorage: DataStorage?{Maximum: int?, Minimum: int?, Unit: str}, ECPUPerSecond: ECPUPerSecond?{Maximum: int?, Minimum: int?}}, KmsKeyId: str?, SecurityGroupIds: [str]?, Endpoint: Endpoint?{Address: str?, Port: int?}, ReaderEndpoint: Endpoint?{Address: str?, Port: int?}, ARN: str?, UserGroupId: str?, SubnetIds: [str]?, SnapshotRetentionLimit: int?, DailySnapshotTime: str?}}

@endpoint POST /
@required {UserId: str}
@optional {AccessString: str, AppendAccessString: str, Passwords: [str], NoPasswordRequired: bool, AuthenticationMode: AuthenticationMode}
@returns(200) {UserId: str?, UserName: str?, Status: str?, Engine: str?, MinimumEngineVersion: str?, AccessString: str?, UserGroupIds: [str]?, Authentication: Authentication?{Type: str?, PasswordCount: int?}, ARN: str?}

@endpoint POST /
@required {UserGroupId: str}
@optional {UserIdsToAdd: [str], UserIdsToRemove: [str]}
@returns(200) {UserGroupId: str?, Status: str?, Engine: str?, UserIds: [str]?, MinimumEngineVersion: str?, PendingChanges: UserGroupPendingChanges?{UserIdsToRemove: [str]?, UserIdsToAdd: [str]?}, ReplicationGroups: [str]?, ServerlessCaches: [str]?, ARN: str?}

@endpoint POST /
@required {ReservedCacheNodesOfferingId: str}
@optional {ReservedCacheNodeId: str, CacheNodeCount: int, Tags: [Tag]}
@returns(200) {ReservedCacheNode: ReservedCacheNode?{ReservedCacheNodeId: str?, ReservedCacheNodesOfferingId: str?, CacheNodeType: str?, StartTime: str(timestamp)?, Duration: int?, FixedPrice: num(f64)?, UsagePrice: num(f64)?, CacheNodeCount: int?, ProductDescription: str?, OfferingType: str?, State: str?, RecurringCharges: [RecurringCharge]?, ReservationARN: str?}}

@endpoint POST /
@required {GlobalReplicationGroupId: str, ApplyImmediately: bool}
@returns(200) {GlobalReplicationGroup: GlobalReplicationGroup?{GlobalReplicationGroupId: str?, GlobalReplicationGroupDescription: str?, Status: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, Members: [GlobalReplicationGroupMember]?, ClusterEnabled: bool?, GlobalNodeGroups: [GlobalNodeGroup]?, AuthTokenEnabled: bool?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?}}

@endpoint POST /
@required {CacheClusterId: str, CacheNodeIdsToReboot: [str]}
@returns(200) {CacheCluster: CacheCluster?{CacheClusterId: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, ClientDownloadLandingPage: str?, CacheNodeType: str?, Engine: str?, EngineVersion: str?, CacheClusterStatus: str?, NumCacheNodes: int?, PreferredAvailabilityZone: str?, PreferredOutpostArn: str?, CacheClusterCreateTime: str(timestamp)?, PreferredMaintenanceWindow: str?, PendingModifiedValues: PendingModifiedValues?{NumCacheNodes: int?, CacheNodeIdsToRemove: [str]?, EngineVersion: str?, CacheNodeType: str?, AuthTokenStatus: str?, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?}, NotificationConfiguration: NotificationConfiguration?{TopicArn: str?, TopicStatus: str?}, CacheSecurityGroups: [CacheSecurityGroupMembership]?, CacheParameterGroup: CacheParameterGroupStatus?{CacheParameterGroupName: str?, ParameterApplyStatus: str?, CacheNodeIdsToReboot: [str]?}, CacheSubnetGroupName: str?, CacheNodes: [CacheNode]?, AutoMinorVersionUpgrade: bool?, SecurityGroups: [SecurityGroupMembership]?, ReplicationGroupId: str?, SnapshotRetentionLimit: int?, SnapshotWindow: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, ARN: str?, ReplicationGroupLogDeliveryEnabled: bool?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?}}

@endpoint POST /
@required {ResourceName: str, TagKeys: [str]}
@returns(200) {TagList: [Tag]?}

@endpoint POST /
@required {CacheParameterGroupName: str}
@optional {ResetAllParameters: bool, ParameterNameValues: [ParameterNameValue]}
@returns(200) {CacheParameterGroupName: str?}

@endpoint POST /
@required {CacheSecurityGroupName: str, EC2SecurityGroupName: str, EC2SecurityGroupOwnerId: str}
@returns(200) {CacheSecurityGroup: CacheSecurityGroup?{OwnerId: str?, CacheSecurityGroupName: str?, Description: str?, EC2SecurityGroups: [EC2SecurityGroup]?, ARN: str?}}

@endpoint POST /
@required {ReplicationGroupId: str, CustomerNodeEndpointList: [CustomerNodeEndpoint]}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@endpoint POST /
@required {ReplicationGroupId: str, NodeGroupId: str}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@endpoint POST /
@required {ReplicationGroupId: str, CustomerNodeEndpointList: [CustomerNodeEndpoint]}
@returns(200) {ReplicationGroup: ReplicationGroup?{ReplicationGroupId: str?, Description: str?, GlobalReplicationGroupInfo: GlobalReplicationGroupInfo?{GlobalReplicationGroupId: str?, GlobalReplicationGroupMemberRole: str?}, Status: str?, PendingModifiedValues: ReplicationGroupPendingModifiedValues?{PrimaryClusterId: str?, AutomaticFailoverStatus: str?, Resharding: ReshardingStatus?{SlotMigration: SlotMigration?}, AuthTokenStatus: str?, UserGroups: UserGroupsUpdateStatus?{UserGroupIdsToAdd: [str]?, UserGroupIdsToRemove: [str]?}, LogDeliveryConfigurations: [PendingLogDeliveryConfiguration]?, TransitEncryptionEnabled: bool?, TransitEncryptionMode: str?, ClusterMode: str?}, MemberClusters: [str]?, NodeGroups: [NodeGroup]?, SnapshottingClusterId: str?, AutomaticFailover: str?, MultiAZ: str?, ConfigurationEndpoint: Endpoint?{Address: str?, Port: int?}, SnapshotRetentionLimit: int?, SnapshotWindow: str?, ClusterEnabled: bool?, CacheNodeType: str?, AuthTokenEnabled: bool?, AuthTokenLastModifiedDate: str(timestamp)?, TransitEncryptionEnabled: bool?, AtRestEncryptionEnabled: bool?, MemberClustersOutpostArns: [str]?, KmsKeyId: str?, ARN: str?, UserGroupIds: [str]?, LogDeliveryConfigurations: [LogDeliveryConfiguration]?, ReplicationGroupCreateTime: str(timestamp)?, DataTiering: str?, AutoMinorVersionUpgrade: bool?, NetworkType: str?, IpDiscovery: str?, TransitEncryptionMode: str?, ClusterMode: str?}}

@end
