{
  "description": "BigtableAppProfile is the Schema for the BigtableAppProfile 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": "BigtableAppProfileSpec defines the desired state of BigtableAppProfile",
      "properties": {
        "dataBoostIsolationReadOnly": {
          "description": "Specifies that this app profile is intended for read-only usage via the Data Boost feature. Please opt-in to this feature by setting the `alpha.cnrm.cloud.google.com/reconciler: direct` annotation.",
          "properties": {
            "computeBillingOwner": {
              "description": "The Compute Billing Owner for this Data Boost App Profile.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "description": {
          "description": "Long form description of the use case for this AppProfile.",
          "type": "string"
        },
        "instanceRef": {
          "description": "InstanceRef defines the resource reference to BigtableInstance, which \"External\" field holds the GCP identifier for the KRM object.",
          "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
        },
        "multiClusterRoutingClusterIds": {
          "description": "The set of clusters to route to, if using multi cluster routing. The order is ignored; clusters will be tried in order of distance. If left empty, all clusters are eligible.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "multiClusterRoutingUseAny": {
          "description": "Use a multi-cluster routing policy.",
          "type": "boolean"
        },
        "resourceID": {
          "description": "The BigtableAppProfile name. If not given, the metadata.name will be used.",
          "type": "string"
        },
        "singleClusterRouting": {
          "description": "Use a single-cluster routing policy.",
          "properties": {
            "allowTransactionalWrites": {
              "description": "Whether or not `CheckAndMutateRow` and `ReadModifyWriteRow` requests are allowed by this app profile. It is unsafe to send these requests to the same table/row/column in multiple clusters.",
              "type": "boolean"
            },
            "clusterId": {
              "description": "The cluster to which read/write requests should be routed.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "standardIsolation": {
          "description": "The standard options used for isolating this app profile's traffic from other use cases.",
          "properties": {
            "priority": {
              "description": "The priority of requests sent using this app profile.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "instanceRef"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "BigtableAppProfileStatus defines the config connector machine state of BigtableAppProfile",
      "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 BigtableAppProfile resource in GCP.",
          "type": "string"
        },
        "name": {
          "description": "The unique name of the app profile. Values are of the form `projects/{project}/instances/{instance}/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.",
          "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"
}
