{
  "description": "BigtableTable is the Schema for the BigtableTable API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More 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. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "BigtableTableSpec defines the desired state of BigtableTable",
      "properties": {
        "changeStreamRetention": {
          "description": "Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days..",
          "type": "string"
        },
        "columnFamily": {
          "description": "The names of the column families that should be created immediately upon table creation, specified by name. The values that may be set are specified here. At least one column family must be specified.",
          "items": {
            "properties": {
              "family": {
                "description": "The name of the column family.",
                "type": "string"
              }
            },
            "required": [
              "family"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "deletionProtection": {
          "description": "NOTE: DeletionProtection proto field is changed from string (1.38) to bool (1.40) in cloud.google.com/go/bigtable/admin/apiv2/adminpb\nSet to true to make the table protected against data loss. i.e. deleting\nthe following resources through Admin APIs are prohibited:\n\n* The table.\n* The column families in the table.\n* The instance containing the table.\n\nNote one can still delete the data stored in the table through Data APIs.",
          "type": "string"
        },
        "instanceRef": {
          "description": "Immutable. The instance to create the table in.",
          "oneOf": [
            {
              "not": {
                "required": [
                  "external"
                ]
              },
              "required": [
                "name"
              ]
            },
            {
              "not": {
                "anyOf": [
                  {
                    "required": [
                      "name"
                    ]
                  },
                  {
                    "required": [
                      "namespace"
                    ]
                  }
                ]
              },
              "required": [
                "external"
              ]
            }
          ],
          "properties": {
            "external": {
              "description": "A reference to an externally managed BigtableInstance resource.",
              "type": "string"
            },
            "name": {
              "description": "The name of a BigtableInstance resource.",
              "type": "string"
            },
            "namespace": {
              "description": "The namespace of a BigtableInstance resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "resourceID": {
          "description": "The BigtableTable name. If not given, the metadata.name will be used.",
          "type": "string"
        },
        "splitKeys": {
          "description": "A list of predefined keys to split the table on.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "instanceRef"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "BigtableTableStatus defines the config connector machine state of BigtableTable",
      "properties": {
        "conditions": {
          "description": "Conditions represent the latest available observations of the object's current state.",
          "items": {
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message indicating details about last transition.",
                "type": "string"
              },
              "reason": {
                "description": "Unique, one-word, CamelCase reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status is the status of the condition. Can be True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the condition.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "externalRef": {
          "description": "A unique specifier for the BigtableTable resource in GCP.",
          "type": "string"
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
