{
  "description": "CacheCluster is the Schema for the CacheClusters API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "CacheClusterSpec defines the desired state of CacheCluster.\n\nContains all of the attributes of a specific cluster.",
      "properties": {
        "authToken": {
          "description": "Reserved parameter. The password used to access a password protected server.\n\nPassword constraints:\n\n  - Must be only printable ASCII characters.\n\n  - Must be at least 16 characters and no more than 128 characters in length.",
          "properties": {
            "key": {
              "description": "Key is the key within the secret",
              "type": "string"
            },
            "name": {
              "description": "name is unique within a namespace to reference a secret resource.",
              "type": "string"
            },
            "namespace": {
              "description": "namespace defines the space within which the secret name must be unique.",
              "type": "string"
            }
          },
          "required": [
            "key"
          ],
          "type": "object",
          "x-kubernetes-map-type": "atomic",
          "additionalProperties": false
        },
        "autoMinorVersionUpgrade": {
          "description": "If you are running Valkey 7.2 and above or Redis OSS engine version 6.0 and\nabove, set this parameter to yes to opt-in to the next auto minor version\nupgrade campaign. This parameter is disabled for previous versions.",
          "type": "boolean"
        },
        "azMode": {
          "description": "Specifies whether the nodes in this Memcached cluster are created in a single\nAvailability Zone or created across multiple Availability Zones in the cluster's\nregion.\n\nThis parameter is only supported for Memcached clusters.\n\nIf the AZMode and PreferredAvailabilityZones are not specified, ElastiCache\nassumes single-az mode.",
          "type": "string"
        },
        "cacheClusterID": {
          "description": "The node group (shard) identifier. This parameter is stored as a lowercase\nstring.\n\nConstraints:\n\n  - A name must contain from 1 to 50 alphanumeric characters or hyphens.\n\n  - The first character must be a letter.\n\n  - A name cannot end with a hyphen or contain two consecutive hyphens.",
          "type": "string"
        },
        "cacheNodeType": {
          "description": "The compute and memory capacity of the nodes in the node group (shard).\n\nThe following node types are supported by ElastiCache. Generally speaking,\nthe current generation types provide more memory and computational power\nat lower cost when compared to their equivalent previous generation counterparts.\n\n  - General purpose: Current generation: M7g node types: cache.m7g.large,\n    cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge,\n    cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see Supported\n    Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion)\n    M6g node types (available only for Redis OSS engine version 5.0.6 onward\n    and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge,\n    cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge,\n    cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge,\n    cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types:\n    cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge\n    T4g node types (available only for Redis OSS engine version 5.0.6 onward\n    and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small,\n    cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium\n    T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium Previous\n    generation: (not recommended. Existing clusters are still supported but\n    creation of new clusters is not supported for these types.) T1 node types:\n    cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large,\n    cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge,\n    cache.m3.2xlarge\n\n  - Compute optimized: Previous generation: (not recommended. Existing clusters\n    are still supported but creation of new clusters is not supported for\n    these types.) C1 node types: cache.c1.xlarge\n\n  - Memory optimized: Current generation: R7g node types: cache.r7g.large,\n    cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge,\n    cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see Supported\n    Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion)\n    R6g node types (available only for Redis OSS engine version 5.0.6 onward\n    and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge,\n    cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge,\n    cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge,\n    cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types:\n    cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge,\n    cache.r4.16xlarge Previous generation: (not recommended. Existing clusters\n    are still supported but creation of new clusters is not supported for\n    these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge\n    R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge,\n    cache.r3.8xlarge\n\nAdditional node type info\n\n  - All current generation instance types are created in Amazon VPC by default.\n\n  - Valkey or Redis OSS append-only files (AOF) are not supported for T1\n    or T2 instances.\n\n  - Valkey or Redis OSS Multi-AZ with automatic failover is not supported\n    on T1 instances.\n\n  - The configuration variables appendonly and appendfsync are not supported\n    on Valkey, or on Redis OSS version 2.8.22 and later.",
          "type": "string"
        },
        "cacheParameterGroupName": {
          "description": "The name of the parameter group to associate with this cluster. If this argument\nis omitted, the default parameter group for the specified engine is used.\nYou cannot use any parameter group which has cluster-enabled='yes' when creating\na cluster.",
          "type": "string",
          "x-kubernetes-validations": [
            {
              "message": "Value is immutable once set",
              "rule": "self == oldSelf"
            }
          ]
        },
        "cacheParameterGroupRef": {
          "description": "AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference\ntype to provide more user friendly syntax for references using 'from' field\nEx:\nAPIIDRef:\n\n\tfrom:\n\t  name: my-api",
          "properties": {
            "from": {
              "description": "AWSResourceReference provides all the values necessary to reference another\nk8s resource for finding the identifier(Id/ARN/Name)",
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "cacheSecurityGroupNames": {
          "description": "A list of security group names to associate with this cluster.\n\nUse this parameter only when you are creating a cluster outside of an Amazon\nVirtual Private Cloud (Amazon VPC).",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "cacheSubnetGroupName": {
          "description": "The name of the subnet group to be used for the cluster.\n\nUse this parameter only when you are creating a cluster in an Amazon Virtual\nPrivate Cloud (Amazon VPC).\n\nIf you're going to launch your cluster in an Amazon VPC, you need to create\na subnet group before you start creating a cluster. For more information,\nsee Subnets and Subnet Groups (https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/SubnetGroups.html).",
          "type": "string"
        },
        "cacheSubnetGroupRef": {
          "description": "AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference\ntype to provide more user friendly syntax for references using 'from' field\nEx:\nAPIIDRef:\n\n\tfrom:\n\t  name: my-api",
          "properties": {
            "from": {
              "description": "AWSResourceReference provides all the values necessary to reference another\nk8s resource for finding the identifier(Id/ARN/Name)",
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "engine": {
          "description": "The name of the cache engine to be used for this cluster.\n\nValid values for this parameter are: memcached | redis",
          "type": "string"
        },
        "engineVersion": {
          "description": "The version number of the cache engine to be used for this cluster. To view\nthe supported cache engine versions, use the DescribeCacheEngineVersions\noperation.\n\nImportant: You can upgrade to a newer engine version (see Selecting a Cache\nEngine and Version (https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/SelectEngine.html#VersionManagement)),\nbut you cannot downgrade to an earlier engine version. If you want to use\nan earlier engine version, you must delete the existing cluster or replication\ngroup and create it anew with the earlier engine version.",
          "type": "string"
        },
        "ipDiscovery": {
          "description": "The network type you choose when modifying a cluster, either ipv4 | ipv6.\nIPv6 is supported for workloads using Valkey 7.2 and above, Redis OSS engine\nversion 6.2 and above or Memcached engine version 1.6.6 and above on all\ninstances built on the Nitro system (http://aws.amazon.com/ec2/nitro/).",
          "type": "string"
        },
        "logDeliveryConfigurations": {
          "description": "Specifies the destination, format and type of the logs.",
          "items": {
            "description": "Specifies the destination, format and type of the logs.",
            "properties": {
              "destinationDetails": {
                "description": "Configuration details of either a CloudWatch Logs destination or Kinesis\nData Firehose destination.",
                "properties": {
                  "cloudWatchLogsDetails": {
                    "description": "The configuration details of the CloudWatch Logs destination.",
                    "properties": {
                      "logGroup": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "kinesisFirehoseDetails": {
                    "description": "The configuration details of the Kinesis Data Firehose destination.",
                    "properties": {
                      "deliveryStream": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "destinationType": {
                "type": "string"
              },
              "enabled": {
                "type": "boolean"
              },
              "logFormat": {
                "type": "string"
              },
              "logType": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "networkType": {
          "description": "Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads\nusing Valkey 7.2 and above, Redis OSS engine version 6.2 and above or Memcached\nengine version 1.6.6 and above on all instances built on the Nitro system\n(http://aws.amazon.com/ec2/nitro/).",
          "type": "string"
        },
        "notificationTopicARN": {
          "description": "The Amazon Resource Name (ARN) of the Amazon Simple Notification Service\n(SNS) topic to which notifications are sent.\n\nThe Amazon SNS topic owner must be the same as the cluster owner.",
          "type": "string"
        },
        "notificationTopicRef": {
          "description": "AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference\ntype to provide more user friendly syntax for references using 'from' field\nEx:\nAPIIDRef:\n\n\tfrom:\n\t  name: my-api",
          "properties": {
            "from": {
              "description": "AWSResourceReference provides all the values necessary to reference another\nk8s resource for finding the identifier(Id/ARN/Name)",
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "numCacheNodes": {
          "description": "The initial number of cache nodes that the cluster has.\n\nFor clusters running Valkey or Redis OSS, this value must be 1. For clusters\nrunning Memcached, this value must be between 1 and 40.\n\nIf you need more than 40 nodes for your Memcached cluster, please fill out\nthe ElastiCache Limit Increase Request form at http://aws.amazon.com/contact-us/elasticache-node-limit-request/\n(http://aws.amazon.com/contact-us/elasticache-node-limit-request/).",
          "format": "int64",
          "type": "integer"
        },
        "outpostMode": {
          "description": "Specifies whether the nodes in the cluster are created in a single outpost\nor across multiple outposts.",
          "type": "string"
        },
        "port": {
          "description": "The port number on which each of the cache nodes accepts connections.",
          "format": "int64",
          "type": "integer"
        },
        "preferredAvailabilityZone": {
          "description": "The EC2 Availability Zone in which the cluster is created.\n\nAll nodes belonging to this cluster are placed in the preferred Availability\nZone. If you want to create your nodes across multiple Availability Zones,\nuse PreferredAvailabilityZones.\n\nDefault: System chosen Availability Zone.",
          "type": "string"
        },
        "preferredAvailabilityZones": {
          "description": "A list of the Availability Zones in which cache nodes are created. The order\nof the zones in the list is not important.\n\nThis option is only supported on Memcached.\n\nIf you are creating your cluster in an Amazon VPC (recommended) you can only\nlocate nodes in Availability Zones that are associated with the subnets in\nthe selected subnet group.\n\nThe number of Availability Zones listed must equal the value of NumCacheNodes.\n\nIf you want all the nodes in the same Availability Zone, use PreferredAvailabilityZone\ninstead, or repeat the Availability Zone multiple times in the list.\n\nDefault: System chosen Availability Zones.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "preferredMaintenanceWindow": {
          "description": "Specifies the weekly time range during which maintenance on the cluster is\nperformed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi\n(24H Clock UTC). The minimum maintenance window is a 60 minute period.",
          "type": "string"
        },
        "preferredOutpostARN": {
          "description": "The outpost ARN in which the cache cluster is created.",
          "type": "string"
        },
        "preferredOutpostARNs": {
          "description": "The outpost ARNs in which the cache cluster is created.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "replicationGroupID": {
          "description": "The ID of the replication group to which this cluster should belong. If this\nparameter is specified, the cluster is added to the specified replication\ngroup as a read replica; otherwise, the cluster is a standalone primary that\nis not part of any replication group.\n\nIf the specified replication group is Multi-AZ enabled and the Availability\nZone is not specified, the cluster is created in Availability Zones that\nprovide the best spread of read replicas across Availability Zones.\n\nThis parameter is only valid if the Engine parameter is redis.",
          "type": "string",
          "x-kubernetes-validations": [
            {
              "message": "Value is immutable once set",
              "rule": "self == oldSelf"
            }
          ]
        },
        "replicationGroupRef": {
          "description": "AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference\ntype to provide more user friendly syntax for references using 'from' field\nEx:\nAPIIDRef:\n\n\tfrom:\n\t  name: my-api",
          "properties": {
            "from": {
              "description": "AWSResourceReference provides all the values necessary to reference another\nk8s resource for finding the identifier(Id/ARN/Name)",
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "securityGroupIDs": {
          "description": "One or more VPC security groups associated with the cluster.\n\nUse this parameter only when you are creating a cluster in an Amazon Virtual\nPrivate Cloud (Amazon VPC).",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "snapshotARNs": {
          "description": "A single-element string list containing an Amazon Resource Name (ARN) that\nuniquely identifies a Valkey or Redis OSS RDB snapshot file stored in Amazon\nS3. The snapshot file is used to populate the node group (shard). The Amazon\nS3 object name in the ARN cannot contain any commas.\n\nThis parameter is only valid if the Engine parameter is redis.\n\nExample of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "snapshotName": {
          "description": "The name of a Valkey or Redis OSS snapshot from which to restore data into\nthe new node group (shard). The snapshot status changes to restoring while\nthe new node group (shard) is being created.\n\nThis parameter is only valid if the Engine parameter is redis.",
          "type": "string",
          "x-kubernetes-validations": [
            {
              "message": "Value is immutable once set",
              "rule": "self == oldSelf"
            }
          ]
        },
        "snapshotRef": {
          "description": "AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference\ntype to provide more user friendly syntax for references using 'from' field\nEx:\nAPIIDRef:\n\n\tfrom:\n\t  name: my-api",
          "properties": {
            "from": {
              "description": "AWSResourceReference provides all the values necessary to reference another\nk8s resource for finding the identifier(Id/ARN/Name)",
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "snapshotRetentionLimit": {
          "description": "The number of days for which ElastiCache retains automatic snapshots before\ndeleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot\ntaken today is retained for 5 days before being deleted.\n\nThis parameter is only valid if the Engine parameter is redis.\n\nDefault: 0 (i.e., automatic backups are disabled for this cache cluster).",
          "format": "int64",
          "type": "integer"
        },
        "snapshotWindow": {
          "description": "The daily time range (in UTC) during which ElastiCache begins taking a daily\nsnapshot of your node group (shard).\n\nExample: 05:00-09:00\n\nIf you do not specify this parameter, ElastiCache automatically chooses an\nappropriate time range.\n\nThis parameter is only valid if the Engine parameter is redis.",
          "type": "string"
        },
        "tags": {
          "description": "A list of tags to be added to this resource.",
          "items": {
            "description": "A tag that can be added to an ElastiCache cluster or replication group. Tags\nare composed of a Key/Value pair. You can use tags to categorize and track\nall your ElastiCache resources, with the exception of global replication\ngroup. When you add or remove tags on replication groups, those actions will\nbe replicated to all nodes in the replication group. A tag with a null Value\nis permitted.",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "transitEncryptionEnabled": {
          "description": "A flag that enables in-transit encryption when set to true.",
          "type": "boolean"
        }
      },
      "required": [
        "cacheClusterID"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "CacheClusterStatus defines the observed state of CacheCluster",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "atRestEncryptionEnabled": {
          "description": "A flag that enables encryption at-rest when set to true.\n\nYou cannot modify the value of AtRestEncryptionEnabled after the cluster\nis created. To enable at-rest encryption on a cluster you must set AtRestEncryptionEnabled\nto true when you create a cluster.\n\nRequired: Only available when creating a replication group in an Amazon VPC\nusing Redis OSS version 3.2.6, 4.x or later.\n\nDefault: false",
          "type": "boolean"
        },
        "authTokenEnabled": {
          "description": "A flag that enables using an AuthToken (password) when issuing Valkey or\nRedis OSS commands.\n\nDefault: false",
          "type": "boolean"
        },
        "authTokenLastModifiedDate": {
          "description": "The date the auth token was last modified",
          "format": "date-time",
          "type": "string"
        },
        "cacheClusterCreateTime": {
          "description": "The date and time when the cluster was created.",
          "format": "date-time",
          "type": "string"
        },
        "cacheClusterStatus": {
          "description": "The current state of this cluster, one of the following values: available,\ncreating, deleted, deleting, incompatible-network, modifying, rebooting cluster\nnodes, restore-failed, or snapshotting.",
          "type": "string"
        },
        "cacheNodes": {
          "description": "A list of cache nodes that are members of the cluster.",
          "items": {
            "description": "Represents an individual cache node within a cluster. Each cache node runs\nits own instance of the cluster's protocol-compliant caching software - either\nMemcached, Valkey or Redis OSS.\n\nThe following node types are supported by ElastiCache. Generally speaking,\nthe current generation types provide more memory and computational power\nat lower cost when compared to their equivalent previous generation counterparts.\n\n  - General purpose: Current generation: M7g node types: cache.m7g.large,\n    cache.m7g.xlarge, cache.m7g.2xlarge, cache.m7g.4xlarge, cache.m7g.8xlarge,\n    cache.m7g.12xlarge, cache.m7g.16xlarge For region availability, see Supported\n    Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion)\n    M6g node types (available only for Redis OSS engine version 5.0.6 onward\n    and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge,\n    cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge,\n    cache.m6g.16xlarge M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge,\n    cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types:\n    cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge\n    T4g node types (available only for Redis OSS engine version 5.0.6 onward\n    and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small,\n    cache.t4g.medium T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium\n    T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium Previous\n    generation: (not recommended. Existing clusters are still supported but\n    creation of new clusters is not supported for these types.) T1 node types:\n    cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large,\n    cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge,\n    cache.m3.2xlarge\n\n  - Compute optimized: Previous generation: (not recommended. Existing clusters\n    are still supported but creation of new clusters is not supported for\n    these types.) C1 node types: cache.c1.xlarge\n\n  - Memory optimized: Current generation: R7g node types: cache.r7g.large,\n    cache.r7g.xlarge, cache.r7g.2xlarge, cache.r7g.4xlarge, cache.r7g.8xlarge,\n    cache.r7g.12xlarge, cache.r7g.16xlarge For region availability, see Supported\n    Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion)\n    R6g node types (available only for Redis OSS engine version 5.0.6 onward\n    and for Memcached engine version 1.5.16 onward): cache.r6g.large, cache.r6g.xlarge,\n    cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge,\n    cache.r6g.16xlarge R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge,\n    cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types:\n    cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge,\n    cache.r4.16xlarge Previous generation: (not recommended. Existing clusters\n    are still supported but creation of new clusters is not supported for\n    these types.) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge\n    R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge,\n    cache.r3.8xlarge\n\nAdditional node type info\n\n  - All current generation instance types are created in Amazon VPC by default.\n\n  - Valkey or Redis OSS append-only files (AOF) are not supported for T1\n    or T2 instances.\n\n  - Valkey or Redis OSS Multi-AZ with automatic failover is not supported\n    on T1 instances.\n\n  - The configuration variables appendonly and appendfsync are not supported\n    on Valkey, or on Redis OSS version 2.8.22 and later.",
            "properties": {
              "cacheNodeCreateTime": {
                "format": "date-time",
                "type": "string"
              },
              "cacheNodeID": {
                "type": "string"
              },
              "cacheNodeStatus": {
                "type": "string"
              },
              "customerAvailabilityZone": {
                "type": "string"
              },
              "customerOutpostARN": {
                "type": "string"
              },
              "endpoint": {
                "description": "Represents the information required for client programs to connect to a cache\nnode. This value is read-only.",
                "properties": {
                  "address": {
                    "type": "string"
                  },
                  "port": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "parameterGroupStatus": {
                "type": "string"
              },
              "sourceCacheNodeID": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "cacheParameterGroup": {
          "description": "Status of the cache parameter group.",
          "properties": {
            "cacheNodeIDsToReboot": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "cacheParameterGroupName": {
              "type": "string"
            },
            "parameterApplyStatus": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "cacheSecurityGroups": {
          "description": "A list of cache security group elements, composed of name and status sub-elements.",
          "items": {
            "description": "Represents a cluster's status within a particular cache security group.",
            "properties": {
              "cacheSecurityGroupName": {
                "type": "string"
              },
              "status": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "clientDownloadLandingPage": {
          "description": "The URL of the web page where you can download the latest ElastiCache client\nlibrary.",
          "type": "string"
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "configurationEndpoint": {
          "description": "Represents a Memcached cluster endpoint which can be used by an application\nto connect to any node in the cluster. The configuration endpoint will always\nhave .cfg in it.\n\nExample: mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211",
          "properties": {
            "address": {
              "type": "string"
            },
            "port": {
              "format": "int64",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "notificationConfiguration": {
          "description": "Describes a notification topic and its status. Notification topics are used\nfor publishing ElastiCache events to subscribers using Amazon Simple Notification\nService (SNS).",
          "properties": {
            "topicARN": {
              "type": "string"
            },
            "topicStatus": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "pendingModifiedValues": {
          "description": "A group of settings that are applied to the cluster in the future, or that\nare currently being applied.",
          "properties": {
            "authTokenStatus": {
              "type": "string"
            },
            "cacheNodeIDsToRemove": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "cacheNodeType": {
              "type": "string"
            },
            "engineVersion": {
              "type": "string"
            },
            "numCacheNodes": {
              "format": "int64",
              "type": "integer"
            },
            "transitEncryptionEnabled": {
              "type": "boolean"
            },
            "transitEncryptionMode": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "replicationGroupLogDeliveryEnabled": {
          "description": "A boolean value indicating whether log delivery is enabled for the replication\ngroup.",
          "type": "boolean"
        },
        "securityGroups": {
          "description": "A list of VPC Security Groups associated with the cluster.",
          "items": {
            "description": "Represents a single cache security group and its status.",
            "properties": {
              "securityGroupID": {
                "type": "string"
              },
              "status": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "transitEncryptionMode": {
          "description": "A setting that allows you to migrate your clients to use in-transit encryption,\nwith no downtime.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
