{
  "description": "RedisEnterpriseActiveActiveDatabase is the Schema for the redisenterpriseactiveactivedatabase API",
  "properties": {
    "apiVersion": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "RedisEnterpriseActiveActiveDatabaseSpec defines the desired state of RedisEnterpriseActiveActiveDatabase",
      "properties": {
        "globalConfigurations": {
          "description": "The Active-Active database global configurations, contains the global properties for each of the participating clusters/ instances databases within the Active-Active database.",
          "properties": {
            "activeActive": {
              "description": "Connection/ association to the Active-Active database.",
              "properties": {
                "name": {
                  "description": "The the corresponding Active-Active database name, Redis Enterprise Active Active Database custom resource name, this Resource is associated with. In case this resource is created manually at the active active database creation this field must be filled via the user, otherwise, the operator will assign this field automatically. Note: this feature is currently unsupported.",
                  "type": "string"
                },
                "participatingClusterName": {
                  "description": "The corresponding participating cluster name, Redis Enterprise Remote Cluster custom resource name, in the Active-Active database, In case this resource is created manually at the active active database creation this field must be filled via the user, otherwise, the operator will assign this field automatically. Note: this feature is currently unsupported.",
                  "type": "string"
                }
              },
              "required": [
                "name",
                "participatingClusterName"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "alertSettings": {
              "description": "Settings for database alerts. Note - Alert settings are not supported for Active-Active database.",
              "properties": {
                "bdb_backup_delayed": {
                  "description": "Periodic backup has been delayed for longer than specified threshold value [minutes]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_crdt_src_high_syncer_lag": {
                  "description": "Active-active source - sync lag is higher than specified threshold value [seconds]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_crdt_src_syncer_connection_error": {
                  "description": "Active-active source - sync has connection error while trying to connect replica source",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_crdt_src_syncer_general_error": {
                  "description": "Active-active source - sync encountered in general error",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_high_latency": {
                  "description": "Latency is higher than specified threshold value [micro-sec]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_high_throughput": {
                  "description": "Throughput is higher than specified threshold value [requests / sec.]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_long_running_action": {
                  "description": "An alert for state-machines that are running for too long",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_low_throughput": {
                  "description": "Throughput is lower than specified threshold value [requests / sec.]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_ram_dataset_overhead": {
                  "description": "Dataset RAM overhead of a shard has reached the threshold value [% of its RAM limit]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_ram_values": {
                  "description": "Percent of values kept in a shard's RAM is lower than [% of its key count]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_replica_src_high_syncer_lag": {
                  "description": "Replica-of source - sync lag is higher than specified threshold value [seconds]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_replica_src_syncer_connection_error": {
                  "description": "Replica-of source - sync has connection error while trying to connect replica source",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_shard_num_ram_values": {
                  "description": "Number of values kept in a shard's RAM is lower than [values]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bdb_size": {
                  "description": "Dataset size has reached the threshold value [% of the memory limit]",
                  "properties": {
                    "enabled": {
                      "description": "Alert enabled or disabled",
                      "type": "boolean"
                    },
                    "threshold": {
                      "description": "Threshold for alert going on/off",
                      "type": "string"
                    }
                  },
                  "required": [
                    "enabled",
                    "threshold"
                  ],
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "backup": {
              "description": "Target for automatic database backups.",
              "properties": {
                "abs": {
                  "properties": {
                    "absSecretName": {
                      "description": "The name of the secret that holds ABS credentials. The secret must contain the keys \"AccountName\" and \"AccountKey\", and these must hold the corresponding credentials",
                      "type": "string"
                    },
                    "container": {
                      "description": "Azure Blob Storage container name.",
                      "type": "string"
                    },
                    "subdir": {
                      "description": "Optional. Azure Blob Storage subdir under container.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "absSecretName",
                    "container"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "ftp": {
                  "properties": {
                    "url": {
                      "description": "a URI of the \"ftps://[USER[:PASSWORD]@]HOST[:PORT]/PATH[/]\" format",
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "gcs": {
                  "description": "GoogleStorage",
                  "properties": {
                    "bucketName": {
                      "description": "Google Storage bucket name.",
                      "type": "string"
                    },
                    "gcsSecretName": {
                      "description": "The name of the secret that holds the Google Cloud Storage credentials. The secret must contain the keys \"CLIENT_ID\", \"PRIVATE_KEY\", \"PRIVATE_KEY_ID\", \"CLIENT_EMAIL\" and these must hold the corresponding credentials. The keys should correspond to the values in the key JSON.",
                      "type": "string"
                    },
                    "subdir": {
                      "description": "Optional. Google Storage subdir under bucket.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "bucketName",
                    "gcsSecretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "interval": {
                  "description": "Backup Interval in seconds",
                  "type": "integer"
                },
                "mount": {
                  "description": "MountPointStorage",
                  "properties": {
                    "path": {
                      "description": "Path to the local mount point. You must create the mount point on all nodes, and the redislabs:redislabs user must have read and write permissions on the local mount point.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "path"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "s3": {
                  "properties": {
                    "awsSecretName": {
                      "description": "The name of the secret that holds the AWS credentials. The secret must contain the keys \"AWS_ACCESS_KEY_ID\" and \"AWS_SECRET_ACCESS_KEY\", and these must hold the corresponding credentials.",
                      "type": "string"
                    },
                    "bucketName": {
                      "description": "Amazon S3 bucket name.",
                      "type": "string"
                    },
                    "subdir": {
                      "description": "Optional. Amazon S3 subdir under bucket.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "awsSecretName",
                    "bucketName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "sftp": {
                  "properties": {
                    "sftp_url": {
                      "description": "SFTP url",
                      "type": "string"
                    },
                    "sftpSecretName": {
                      "description": "The name of the secret that holds SFTP credentials. The secret must contain the \"Key\" key, which is the SSH private key for connecting to the sftp server.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "sftpSecretName",
                    "sftp_url"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "swift": {
                  "properties": {
                    "auth_url": {
                      "description": "Swift service authentication URL.",
                      "type": "string"
                    },
                    "container": {
                      "description": "Swift object store container for storing the backup files.",
                      "type": "string"
                    },
                    "prefix": {
                      "description": "Optional. Prefix (path) of backup files in the swift container.",
                      "type": "string"
                    },
                    "swiftSecretName": {
                      "description": "The name of the secret that holds Swift credentials. The secret must contain the keys \"Key\" and \"User\", and these must hold the corresponding credentials: service access key and service user name (pattern for the latter does not allow special characters &,<,>,\")",
                      "type": "string"
                    }
                  },
                  "required": [
                    "auth_url",
                    "container",
                    "swiftSecretName"
                  ],
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "clientAuthenticationCertificates": {
              "description": "The Secrets containing TLS Client Certificate to use for Authentication",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "dataInternodeEncryption": {
              "description": "Internode encryption (INE) setting. An optional boolean setting, overriding a similar cluster-wide policy. If set to False, INE is guaranteed to be turned off for this DB (regardless of cluster-wide policy). If set to True, INE will be turned on, unless the capability is not supported by the DB ( in such a case we will get an error and database creation will fail). If left unspecified, will be disabled if internode encryption is not supported by the DB (regardless of cluster default). Deleting this property after explicitly setting its value shall have no effect.",
              "type": "boolean"
            },
            "databasePort": {
              "description": "Database port number. TCP port on which the database is available. Will be generated automatically if omitted. can not be changed after creation",
              "type": "integer"
            },
            "databaseSecretName": {
              "description": "The name of the secret that holds the password to the database (redis databases only). If secret does not exist, it will be created. To define the password, create an opaque secret and set the name in the spec. The password will be taken from the value of the 'password' key. Use an empty string as value within the secret to disable authentication for the database. Notes - For Active-Active databases this secret will not be automatically created, and also, memcached databases must not be set with a value, and a secret/password will not be automatically created for them. Use the memcachedSaslSecretName field to set authentication parameters for memcached databases.",
              "type": "string"
            },
            "defaultUser": {
              "description": "Is connecting with a default user allowed?  If disabled, the DatabaseSecret will not be created or updated",
              "type": "boolean"
            },
            "evictionPolicy": {
              "description": "Database eviction policy. see more https://docs.redislabs.com/latest/rs/administering/database-operations/eviction-policy/",
              "type": "string"
            },
            "isRof": {
              "description": "Whether it is an RoF database or not. Applicable only for databases of type \"REDIS\". Assumed to be false if left blank.",
              "type": "boolean"
            },
            "memcachedSaslSecretName": {
              "description": "Credentials used for binary authentication in memcached databases. The credentials should be saved as an opaque secret and the name of that secret should be configured using this field. For username, use 'username' as the key and the actual username as the value. For password, use 'password' as the key and the actual password as the value. Note that connections are not encrypted.",
              "type": "string"
            },
            "memorySize": {
              "description": "memory size of database. use formats like 100MB, 0.1GB. minimum value in 100MB. When redis on flash (RoF) is enabled, this value refers to RAM+Flash memory, and it must not be below 1GB.",
              "type": "string"
            },
            "modulesList": {
              "description": "List of modules associated with the database. The list of valid modules for the specific cluster can be retrieved from the status of the REC object. Use the \"name\" and \"versions\" fields for the specific module configuration. If specifying an explicit version for a module, automatic modules versions upgrade must be disabled by setting the '.upgradeSpec.upgradeModulesToLatest' field in the REC to 'false'. Note that the option to specify module versions is deprecated, and will be removed in future releases.",
              "items": {
                "description": "Redis Enterprise module (see https://redis.io/docs/latest/develop/reference/modules/)",
                "properties": {
                  "config": {
                    "description": "Module command line arguments e.g. VKEY_MAX_ENTITY_COUNT 30 30",
                    "type": "string"
                  },
                  "name": {
                    "description": "The name of the module, e.g. \"search\" or \"ReJSON\". The complete list of modules available in the cluster can be retrieved from the '.status.modules' field in the REC.",
                    "type": "string"
                  },
                  "version": {
                    "description": "The semantic version of the module, e.g. '1.6.12'. Optional for REDB, must be set for REAADB. Note that this field is deprecated, and will be removed in future releases.",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "ossCluster": {
              "description": "OSS Cluster mode option. Note that not all client libraries support OSS cluster mode.",
              "type": "boolean"
            },
            "persistence": {
              "description": "Database on-disk persistence policy",
              "enum": [
                "disabled",
                "aofEverySecond",
                "aofAlways",
                "snapshotEvery1Hour",
                "snapshotEvery6Hour",
                "snapshotEvery12Hour"
              ],
              "type": "string"
            },
            "proxyPolicy": {
              "description": "The policy used for proxy binding to the endpoint. Supported proxy policies are: single/all-master-shards/all-nodes When left blank, the default value will be chosen according to the value of ossCluster - single if disabled, all-master-shards when enabled",
              "type": "string"
            },
            "rackAware": {
              "description": "Whether database should be rack aware. This improves availability - more information: https://docs.redislabs.com/latest/rs/concepts/high-availability/rack-zone-awareness/",
              "type": "boolean"
            },
            "redisEnterpriseCluster": {
              "description": "Connection to Redis Enterprise Cluster",
              "properties": {
                "name": {
                  "description": "The name of the Redis Enterprise Cluster where the database should be stored.",
                  "type": "string"
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "redisVersion": {
              "description": "Redis OSS version. Version can be specified via <major.minor> prefix, or via channels - for existing databases - Upgrade Redis OSS version. For new databases - the version which the database will be created with. If set to 'major' - will always upgrade to the most recent major Redis version. If set to 'latest' - will always upgrade to the most recent Redis version. Depends on 'redisUpgradePolicy' - if you want to set the value to 'latest' for some databases, you must set redisUpgradePolicy on the cluster before. Possible values are 'major' or 'latest' When using upgrade - make sure to backup the database before. This value is used only for database type 'redis'. Note - Specifying Redis version is currently not supported for Active-Active database.",
              "type": "string"
            },
            "replicaSources": {
              "description": "What databases to replicate from",
              "items": {
                "properties": {
                  "clientKeySecret": {
                    "description": "Secret that defines the client certificate and key used by the syncer in the target database cluster. The secret must have 2 keys in its map: \"cert\" which is the PEM encoded certificate, and \"key\" which is the PEM encoded private key.",
                    "type": "string"
                  },
                  "compression": {
                    "description": "GZIP compression level (0-6) to use for replication.",
                    "type": "integer"
                  },
                  "replicaSourceName": {
                    "description": "The name of the resource from which the source database URI is derived. The type of resource must match the type specified in the ReplicaSourceType field.",
                    "type": "string"
                  },
                  "replicaSourceType": {
                    "description": "The type of resource from which the source database URI is derived. If set to 'SECRET', the source database URI is derived from the secret named in the ReplicaSourceName field. The secret must have a key named 'uri' that defines the URI of the source database in the form of 'redis://...'. The type of secret (kubernetes, vault, ...) is determined by the secret mechanism used by the underlying REC object. If set to 'REDB', the source database URI is derived from the RedisEnterpriseDatabase resource named in the ReplicaSourceName field.",
                    "type": "string"
                  },
                  "serverCertSecret": {
                    "description": "Secret that defines the server certificate used by the proxy in the source database cluster. The secret must have 1 key in its map: \"cert\" which is the PEM encoded certificate.",
                    "type": "string"
                  },
                  "tlsSniName": {
                    "description": "TLS SNI name to use for the replication link.",
                    "type": "string"
                  }
                },
                "required": [
                  "replicaSourceName",
                  "replicaSourceType"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "replication": {
              "description": "In-memory database replication. When enabled, database will have replica shard for every master - leading to higher availability. Defaults to false.",
              "type": "boolean"
            },
            "resp3": {
              "description": "Whether this database supports RESP3 protocol. Note - Deleting this property after explicitly setting its value shall have no effect. Please view the corresponding field in RS doc for more info.",
              "type": "boolean"
            },
            "rofRamSize": {
              "description": "The size of the RAM portion of an RoF database. Similarly to \"memorySize\" use formats like 100MB, 0.1GB It must be at least 10% of combined memory size (RAM+Flash), as specified by \"memorySize\".",
              "type": "string"
            },
            "rolesPermissions": {
              "description": "List of Redis Enteprise ACL and Role bindings to apply",
              "items": {
                "description": "Redis Enterprise Role and ACL Binding",
                "properties": {
                  "acl": {
                    "description": "Acl Name of RolePermissionType (note: use exact name of the ACL from the Redis Enterprise ACL list, case sensitive)",
                    "type": "string"
                  },
                  "role": {
                    "description": "Role Name of RolePermissionType (note: use exact name of the role from the Redis Enterprise role list, case sensitive)",
                    "type": "string"
                  },
                  "type": {
                    "description": "Type of Redis Enterprise Database Role Permission",
                    "type": "string"
                  }
                },
                "required": [
                  "acl",
                  "role",
                  "type"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "shardCount": {
              "description": "Number of database server-side shards",
              "type": "integer"
            },
            "shardingEnabled": {
              "description": "Toggles database sharding for REAADBs (Active Active databases) and enabled by default. This field is blocked for REDB (non-Active Active databases) and sharding is toggled via the shardCount field - when shardCount is 1 this is disabled otherwise enabled.",
              "type": "boolean"
            },
            "shardsPlacement": {
              "description": "Control the density of shards - should they reside on as few or as many nodes as possible. Available options are \"dense\" or \"sparse\". If left unset, defaults to \"dense\".",
              "type": "string"
            },
            "tlsMode": {
              "description": "Require SSL authenticated and encrypted connections to the database. enabled - all incoming connections to the Database must use SSL. disabled - no incoming connection to the Database should use SSL. replica_ssl - databases that replicate from this one need to use SSL.",
              "enum": [
                "disabled",
                "enabled",
                "replica_ssl"
              ],
              "type": "string"
            },
            "type": {
              "description": "The type of the database.",
              "enum": [
                "redis",
                "memcached"
              ],
              "type": "string"
            },
            "upgradeSpec": {
              "description": "Specifications for DB upgrade.",
              "properties": {
                "upgradeModulesToLatest": {
                  "description": "Upgrades the modules to the latest version that supports the DB version during a DB upgrade action, to upgrade the DB version view the 'redisVersion' field. Note - This field is currently not supported for Active-Active databases.",
                  "type": "boolean"
                }
              },
              "required": [
                "upgradeModulesToLatest"
              ],
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "participatingClusters": {
          "description": "The list of instances/ clusters specifications and configurations.",
          "items": {
            "properties": {
              "externalReplicationPort": {
                "description": "The desired replication endpoint's port number for users who utilize LoadBalancers for sync between AA replicas and need to provide the specific port number that the LoadBalancer listens to.",
                "type": "integer"
              },
              "name": {
                "description": "The name of the remote cluster CR to link.",
                "type": "string"
              },
              "namespace": {
                "description": "Namespace in which the REAADB object will be deployed to within the corresponding participating cluster. The user must ensure that the Redis Enterprise operator is configured to watch this namespace in the corresponding cluster, and the required RBAC configuration is properly set up. See https://redis.io/docs/latest/operate/kubernetes/re-clusters/multi-namespace/ for more information how to set up multiple namespaces. If no namespace is specified, then the REAADB is deployed to the REC's namespace in the corresponding cluster.",
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "redisEnterpriseCluster": {
          "description": "Connection to Redis Enterprise Cluster",
          "properties": {
            "name": {
              "description": "The name of the Redis Enterprise Cluster where the database should be stored.",
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "participatingClusters"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "RedisEnterpriseActiveActiveDatabaseStatus defines the observed state of RedisEnterpriseActiveActiveDatabase",
      "properties": {
        "clusterCertificatesGeneration": {
          "description": "Versions of the cluster's Proxy and Syncer certificates. In Active-Active databases, these are used to detect updates to the certificates, and trigger synchronization across the participating clusters. .",
          "format": "int64",
          "type": "integer"
        },
        "guid": {
          "description": "The active-active database corresponding GUID.",
          "type": "string"
        },
        "lastTaskUid": {
          "description": "The last active-active database task UID.",
          "type": "string"
        },
        "linkedRedbs": {
          "description": "The linked REDBs.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "participatingClusters": {
          "description": "The list of instances/ clusters statuses.",
          "items": {
            "description": "Status of participating cluster.",
            "properties": {
              "id": {
                "description": "The corresponding ID of the instance in the active-active database.",
                "format": "int64",
                "type": "integer"
              },
              "name": {
                "description": "The name of the remote cluster CR that is linked.",
                "type": "string"
              },
              "replicationStatus": {
                "description": "The replication status of the participating cluster",
                "enum": [
                  "up",
                  "down"
                ],
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "redisEnterpriseCluster": {
          "description": "The Redis Enterprise Cluster Object this Resource is associated with",
          "type": "string"
        },
        "replicationStatus": {
          "description": "The overall replication status",
          "enum": [
            "up",
            "down"
          ],
          "type": "string"
        },
        "secretsStatus": {
          "description": "The status of the secrets",
          "items": {
            "description": "Status of secrets.",
            "properties": {
              "name": {
                "description": "The name of the secret.",
                "type": "string"
              },
              "status": {
                "description": "The status of the secret.",
                "enum": [
                  "Valid",
                  "Invalid"
                ],
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "specStatus": {
          "description": "Whether the desired specification is valid",
          "type": "string"
        },
        "status": {
          "description": "The status of the active active database.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
