{
  "description": "ApigeeOrganization is the Schema for the ApigeeOrganization 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": "ApigeeOrganizationSpec defines the desired state of ApigeeOrganization",
      "properties": {
        "addonsConfig": {
          "description": "Addon configurations of the Apigee organization.",
          "properties": {
            "advancedApiOpsConfig": {
              "description": "Configuration for the Advanced API Ops add-on.",
              "properties": {
                "enabled": {
                  "description": "Flag that specifies whether the Advanced API Ops add-on is enabled.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "monetizationConfig": {
              "description": "Configuration for the Monetization add-on.",
              "properties": {
                "enabled": {
                  "description": "Flag that specifies whether the Monetization add-on is enabled.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "analyticsRegion": {
          "description": "Required. DEPRECATED: This field will eventually be deprecated and replaced with a differently-named field. Primary Google Cloud region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).",
          "type": "string"
        },
        "authorizedNetworkRef": {
          "description": "Compute Engine network used for Service Networking to be peered with Apigee runtime instances. See [Getting started with the Service Networking API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started). Valid only when [RuntimeType](#RuntimeType) is set to `CLOUD`. The value must be set before the creation of a runtime instance and can be updated only when there are no runtime instances. For example: `default`. Apigee also supports shared VPC (that is, the host network project is not the same as the one that is peering with Apigee). See [Shared VPC overview](https://cloud.google.com/vpc/docs/shared-vpc). To use a shared VPC network, use the following format: `projects/{host-project-id}/{region}/networks/{network-name}`. For example: `projects/my-sharedvpc-host/global/networks/mynetwork` **Note:** Not supported for Apigee hybrid.",
          "oneOf": [
            {
              "not": {
                "required": [
                  "external"
                ]
              },
              "required": [
                "name"
              ]
            },
            {
              "not": {
                "anyOf": [
                  {
                    "required": [
                      "name"
                    ]
                  },
                  {
                    "required": [
                      "namespace"
                    ]
                  }
                ]
              },
              "required": [
                "external"
              ]
            }
          ],
          "properties": {
            "external": {
              "description": "The value of an externally managed ComputeNetwork resource. Should be in the format \"https://www.googleapis.com/compute/{{version}}/projects/{{projectId}}/global/networks/{{networkId}}\" or \"projects/{{projectId}}/global/networks/{{networkId}}\"",
              "type": "string"
            },
            "name": {
              "description": "The name of a ComputeNetwork resource.",
              "type": "string"
            },
            "namespace": {
              "description": "The namespace of a ComputeNetwork resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "description": {
          "description": "Description of the Apigee organization.",
          "type": "string"
        },
        "displayName": {
          "description": "Display name for the Apigee organization. Unused, but reserved for future use.",
          "type": "string"
        },
        "projectRef": {
          "description": "Required. Name of the GCP project in which to associate the Apigee organization.",
          "oneOf": [
            {
              "not": {
                "required": [
                  "external"
                ]
              },
              "required": [
                "name"
              ]
            },
            {
              "not": {
                "anyOf": [
                  {
                    "required": [
                      "name"
                    ]
                  },
                  {
                    "required": [
                      "namespace"
                    ]
                  }
                ]
              },
              "required": [
                "external"
              ]
            }
          ],
          "properties": {
            "external": {
              "description": "The `projectID` field of a project, when not managed by Config Connector.",
              "type": "string"
            },
            "kind": {
              "description": "The kind of the Project resource; optional but must be `Project` if provided.",
              "type": "string"
            },
            "name": {
              "description": "The `name` field of a `Project` resource.",
              "type": "string"
            },
            "namespace": {
              "description": "The `namespace` field of a `Project` resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "properties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Properties defined in the Apigee organization profile.",
          "type": "object"
        },
        "resourceID": {
          "description": "The ApigeeOrganization name. If not given, the metadata.name will be used.",
          "type": "string"
        },
        "runtimeDatabaseEncryptionKeyRef": {
          "description": "Cloud KMS key name used for encrypting the data that is stored and replicated across runtime instances. Update is not allowed after the organization is created. If not specified or [RuntimeType](#RuntimeType) is `TRIAL`, a Google-Managed encryption key will be used. For example: \"projects/foo/locations/us/keyRings/bar/cryptoKeys/baz\". **Note:** Not supported for Apigee hybrid.",
          "oneOf": [
            {
              "not": {
                "required": [
                  "external"
                ]
              },
              "required": [
                "name"
              ]
            },
            {
              "not": {
                "anyOf": [
                  {
                    "required": [
                      "name"
                    ]
                  },
                  {
                    "required": [
                      "namespace"
                    ]
                  }
                ]
              },
              "required": [
                "external"
              ]
            }
          ],
          "properties": {
            "external": {
              "description": "A reference to an externally managed KMSCryptoKey. Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`.",
              "type": "string"
            },
            "name": {
              "description": "The `name` of a `KMSCryptoKey` resource.",
              "type": "string"
            },
            "namespace": {
              "description": "The `namespace` of a `KMSCryptoKey` resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "runtimeType": {
          "description": "Required. Runtime type of the Apigee organization based on the Apigee subscription purchased.",
          "type": "string"
        },
        "additionalProperties": false
      },
      "required": [
        "analyticsRegion",
        "projectRef",
        "runtimeType"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "ApigeeOrganizationStatus defines the config connector machine state of ApigeeOrganization",
      "properties": {
        "billingType": {
          "description": "Billing type of the Apigee organization. See [Apigee pricing](https://cloud.google.com/apigee/pricing).",
          "type": "string"
        },
        "caCertificate": {
          "description": "Output only. Base64-encoded public certificate for the root CA of the Apigee organization. Valid only when [RuntimeType](#RuntimeType) is `CLOUD`.",
          "format": "byte",
          "type": "string"
        },
        "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"
        },
        "createdAt": {
          "description": "Output only. Time that the Apigee organization was created in milliseconds since epoch.",
          "format": "int64",
          "type": "integer"
        },
        "environments": {
          "description": "Output only. List of environments in the Apigee organization.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "expiresAt": {
          "description": "Output only. Time that the Apigee organization is scheduled for deletion.",
          "format": "int64",
          "type": "integer"
        },
        "externalRef": {
          "description": "A unique specifier for the ApigeeOrganization resource in GCP.",
          "type": "string"
        },
        "lastModifiedAt": {
          "description": "Output only. Time that the Apigee organization was last modified in milliseconds since epoch.",
          "format": "int64",
          "type": "integer"
        },
        "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"
        },
        "observedState": {
          "description": "ObservedState is the state of the resource as most recently observed in GCP.",
          "type": "object"
        },
        "projectId": {
          "description": "Output only. Project ID associated with the Apigee organization.",
          "type": "string"
        },
        "state": {
          "description": "Output only. State of the organization. Values other than ACTIVE means the resource is not ready to use.",
          "type": "string"
        },
        "subscriptionType": {
          "description": "Output only. DEPRECATED: This will eventually be replaced by BillingType. Subscription type of the Apigee organization. Valid values include trial (free, limited, and for evaluation purposes only) or paid (full subscription has been purchased). See [Apigee pricing](https://cloud.google.com/apigee/pricing/).",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
