{
  "description": "GlobalCluster is the Schema for the GlobalClusters 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": "GlobalClusterSpec defines the desired state of GlobalCluster.\n\nA data type representing an Aurora global database.",
      "properties": {
        "databaseName": {
          "description": "The name for your database of up to 64 alphanumeric characters. If you don't\nspecify a name, Amazon Aurora doesn't create a database in the global database\ncluster.\n\nConstraints:\n\n  - Can't be specified if SourceDBClusterIdentifier is specified. In this\n    case, Amazon Aurora uses the database name from the source DB cluster.",
          "type": "string"
        },
        "deletionProtection": {
          "description": "Specifies whether to enable deletion protection for the new global database\ncluster. The global database can't be deleted when deletion protection is\nenabled.",
          "type": "boolean"
        },
        "engine": {
          "description": "The database engine to use for this global database cluster.\n\nValid Values: aurora-mysql | aurora-postgresql\n\nConstraints:\n\n  - Can't be specified if SourceDBClusterIdentifier is specified. In this\n    case, Amazon Aurora uses the engine of the source DB cluster.",
          "type": "string"
        },
        "engineVersion": {
          "description": "The engine version to use for this global database cluster.\n\nConstraints:\n\n  - Can't be specified if SourceDBClusterIdentifier is specified. In this\n    case, Amazon Aurora uses the engine version of the source DB cluster.",
          "type": "string"
        },
        "globalClusterIdentifier": {
          "description": "The cluster identifier for this global database cluster. This parameter is\nstored as a lowercase string.",
          "type": "string"
        },
        "sourceDBClusterIdentifier": {
          "description": "The Amazon Resource Name (ARN) to use as the primary cluster of the global\ndatabase.\n\nIf you provide a value for this parameter, don't specify values for the following\nsettings because Amazon Aurora uses the values from the specified source\nDB cluster:\n\n  - DatabaseName\n\n  - Engine\n\n  - EngineVersion\n\n  - StorageEncrypted",
          "type": "string"
        },
        "storageEncrypted": {
          "description": "Specifies whether to enable storage encryption for the new global database\ncluster.\n\nConstraints:\n\n  - Can't be specified if SourceDBClusterIdentifier is specified. In this\n    case, Amazon Aurora uses the setting from the source DB cluster.",
          "type": "boolean"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "GlobalClusterStatus defines the observed state of GlobalCluster",
      "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
        },
        "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"
        },
        "engineLifecycleSupport": {
          "description": "The life cycle type for the global cluster.\n\nFor more information, see CreateGlobalCluster.",
          "type": "string"
        },
        "failoverState": {
          "description": "A data object containing all properties for the current state of an in-process\nor pending switchover or failover process for this global cluster (Aurora\nglobal database). This object is empty unless the SwitchoverGlobalCluster\nor FailoverGlobalCluster operation was called on this global cluster.",
          "properties": {
            "fromDBClusterARN": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "toDBClusterARN": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "globalClusterMembers": {
          "description": "The list of primary and secondary clusters within the global database cluster.",
          "items": {
            "description": "A data structure with information about any primary and secondary clusters\nassociated with a global cluster (Aurora global database).",
            "properties": {
              "dbClusterARN": {
                "type": "string"
              },
              "globalWriteForwardingStatus": {
                "type": "string"
              },
              "isWriter": {
                "type": "boolean"
              },
              "readers": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "globalClusterResourceID": {
          "description": "The Amazon Web Services Region-unique, immutable identifier for the global\ndatabase cluster. This identifier is found in Amazon Web Services CloudTrail\nlog entries whenever the Amazon Web Services KMS key for the DB cluster is\naccessed.",
          "type": "string"
        },
        "status": {
          "description": "Specifies the current state of this global database cluster.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
