{
  "description": "AppHubApplication is the Schema for the AppHubApplication 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": "AppHubApplicationSpec defines the desired state of AppHubApplication",
      "properties": {
        "attributes": {
          "description": "Optional. Consumer provided attributes.",
          "properties": {
            "businessOwners": {
              "description": "Optional. Business team that ensures user needs are met and value is delivered",
              "items": {
                "properties": {
                  "displayName": {
                    "description": "Optional. Contact's name. Can have a maximum length of 63 characters.",
                    "type": "string"
                  },
                  "email": {
                    "description": "Required. Email address of the contacts.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "criticality": {
              "description": "Optional. User-defined criticality information.",
              "properties": {
                "type": {
                  "description": "Required. Criticality Type.",
                  "type": "string",
                  "x-kubernetes-validations": [
                    {
                      "message": "the field is immutable",
                      "rule": "self == oldSelf"
                    }
                  ]
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "developerOwners": {
              "description": "Optional. Developer team that owns development and coding.",
              "items": {
                "properties": {
                  "displayName": {
                    "description": "Optional. Contact's name. Can have a maximum length of 63 characters.",
                    "type": "string"
                  },
                  "email": {
                    "description": "Required. Email address of the contacts.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "environment": {
              "description": "Optional. User-defined environment information.",
              "properties": {
                "type": {
                  "description": "Required. Environment Type.",
                  "type": "string",
                  "x-kubernetes-validations": [
                    {
                      "message": "the field is immutable",
                      "rule": "self == oldSelf"
                    }
                  ]
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "operatorOwners": {
              "description": "Optional. Operator team that ensures runtime and operations.",
              "items": {
                "properties": {
                  "displayName": {
                    "description": "Optional. Contact's name. Can have a maximum length of 63 characters.",
                    "type": "string"
                  },
                  "email": {
                    "description": "Required. Email address of the contacts.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "description": {
          "description": "Optional. User-defined description of an Application. Can have a maximum length of 2048 characters.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. User-defined name for the Application. Can have a maximum length of 63 characters.",
          "type": "string"
        },
        "location": {
          "description": "Required. The location of the application.",
          "type": "string"
        },
        "projectRef": {
          "description": "Required. The host project of the application.",
          "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
        },
        "resourceID": {
          "description": "The AppHubApplication name. If not given, the metadata.name will be used.",
          "type": "string"
        },
        "scope": {
          "description": "Required. Immutable. Defines what data can be included into this Application. Limits which Services and Workloads can be registered.",
          "properties": {
            "type": {
              "description": "Required. Scope Type.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "AppHubApplicationStatus defines the config connector machine state of AppHubApplication",
      "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 AppHubApplication resource in Google Cloud .",
          "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"
        },
        "observedState": {
          "description": "ObservedState is the state of the resource as most recently observed in {{gcp_name_short}}.",
          "properties": {
            "createTime": {
              "description": "Output only. Create time.",
              "type": "string"
            },
            "state": {
              "description": "Output only. Application state.",
              "type": "string"
            },
            "uid": {
              "description": "Output only. A universally unique identifier (in UUID4 format) for the `Application`.",
              "type": "string"
            },
            "updateTime": {
              "description": "Output only. Update time.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
