swagger: '2.0'
info:
  description: Tanzu Mission Control.
  version: 0.0.1
  title: Swagger Tanzu Mission Control
host: <your_org>.tmc.cloud.vmware.com
schemes:
  - https
  - http
paths:
  '/v1alpha/account/provider/credentials:apply':
    post:
      summary: Apply a Credential.
      operationId: applyAccountProviderCredential
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.ApplyCredentialResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.ApplyCredentialRequest
      tags:
        - CredentialApplyHelper
  '/v1alpha/account/provider/credentials:iam/{full_name.name}':
    get:
      summary: Get policy for a Credential.
      operationId: getAccountProviderCredentialIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.GetCredentialIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name to give the credential.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org Id that owns this infra provider account and credential.
          in: query
          required: false
          type: string
      tags:
        - CredentialIAMPolicy
    put:
      summary: Update (overwrite) policy for a Credential - deleted if body is empty.
      operationId: updateAccountProviderCredentialIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.UpdateCredentialIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name to give the credential.
          in: path
          required: true
          type: string
        - name: body
          description: Credential policy.
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
      tags:
        - CredentialIAMPolicy
    patch:
      summary: Patch a Credential policy.
      operationId: patchAccountProviderCredentialIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.PatchCredentialIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name to give the credential.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.PatchCredentialIAMPolicyRequest
      tags:
        - CredentialIAMPolicy
  '/v1alpha/account/provider/credentials:iam/{full_name.name}/testPermissions':
    post:
      summary: Tests permissions for a Credential.
      operationId: testPermissionsAccountProviderCredentialIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.TestCredentialIAMPermissionsResponse
      parameters:
        - name: full_name.name
          description: Name to give the credential.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.TestCredentialIAMPermissionsRequest
      tags:
        - CredentialIAMPolicy
  '/v1alpha/account/provider/credential:schema':
    get:
      summary: Get a Credential schema.
      operationId: schemaAccountProviderCredentialSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - CredentialSchemaHelper
  '/v1alpha/account/provider/credential:template':
    get:
      summary: Get a Credential schema template.
      operationId: templateAccountProviderCredentialSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - CredentialSchemaHelper
  /v1alpha/account/provider/credentials:
    get:
      tags:
        - CredentialResourceService
      summary: List Credentials.
      operationId: listAccountProviderCredential
      parameters:
        - type: string
          description: TQL query string.
          name: query
          in: query
        - type: string
          format: int64
          description: Number of records to return.
          name: pagination_options.size
          in: query
        - type: string
          description: Token to specify a page of returning records.
          name: pagination_options.pageToken
          in: query
        - type: string
          description: Scope search to the specified name; supports globbing; default (*).
          name: search_scope.name
          in: query
        - type: string
          description: Sort Order.
          name: sortBy
          in: query
        - type: boolean
          format: boolean
          description: Include total count.
          name: includeTotalCount
          in: query
        - type: string
          format: uint64
          description: Offset at which to start returning records.
          name: pagination.offset
          in: query
        - type: string
          format: uint64
          description: Number of records to return.
          name: pagination.size
          in: query
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.ListCredentialsResponse
    post:
      tags:
        - CredentialResourceService
      summary: Create a Credential.
      operationId: createAccountProviderCredential
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.CreateCredentialRequest
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.CreateCredentialResponse
  '/v1alpha/account/provider/credentials/{name}':
    get:
      tags:
        - CredentialResourceService
      summary: Get a Credential.
      operationId: getAccountProviderCredential
      parameters:
        - type: string
          description: Name to give the credential.
          name: name
          in: path
          required: true
        - type: string
          description: Org Id that owns this infra provider account and credential.
          name: full_name.orgId
          in: query
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.GetCredentialResponse
    put:
      tags:
        - CredentialResourceService
      summary: Update (overwrite) a Credential.
      operationId: updateAccountProviderCredential
      parameters:
        - type: string
          description: Name to give the credential.
          name: name
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.UpdateCredentialRequest
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.UpdateCredentialResponse
    delete:
      tags:
        - CredentialResourceService
      summary: Delete a Credential.
      operationId: deleteAccountProviderCredential
      parameters:
        - type: string
          description: Name to give the credential.
          name: name
          in: path
          required: true
        - type: string
          description: Org Id that owns this infra provider account and credential.
          name: full_name.orgId
          in: query
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.DeleteCredentialResponse
    patch:
      tags:
        - CredentialResourceService
      summary: Patch a Credential.
      operationId: patchAccountProviderCredential
      parameters:
        - type: string
          description: Name to give the credential.
          name: name
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.PatchCredentialRequest
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.PatchCredentialResponse
  '/v1alpha/account/provider/permissiontemplate:schema':
    get:
      summary: Get a PermissionTemplate schema.
      operationId: schemaAccountProviderPermissiontemplateSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - PermissionTemplateSchemaHelper
  '/v1alpha/account/provider/permissiontemplate:template':
    get:
      summary: Get a PermissionTemplate schema template.
      operationId: templateAccountProviderPermissiontemplateSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - PermissionTemplateSchemaHelper
  /v1alpha/account/provider/permissiontemplates:
    get:
      summary: List PermissionTemplates.
      operationId: listAccountProviderPermissiontemplate
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.ListPermissionTemplatesResponse
      parameters:
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.group
          description: Scope search to the specified group; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - PermissionTemplateResourceService
  '/v1alpha/account/provider/permissiontemplates/{full_name.name}':
    get:
      summary: Get a PermissionTemplate.
      operationId: getAccountProviderPermissiontemplate
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.GetPermissionTemplateResponse
      parameters:
        - name: full_name.name
          description: Name of the permission template.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org Id.
          in: query
          required: false
          type: string
      tags:
        - PermissionTemplateResourceService
  '/v1alpha/cloud/accounts:apply':
    post:
      summary: Apply a Account.
      operationId: applyCloudAccount
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.ApplyAccountResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.ApplyAccountRequest
      tags:
        - AccountApplyHelper
  '/v1alpha/cloud/accounts:options':
    get:
      summary: List supported providers.
      operationId: listCloudAccountOptions
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.ListAccountOptionsResponse
      parameters:
        - name: query
          description: Query string.
          in: query
          required: false
          type: string
      tags:
        - AccountOptions
  '/v1alpha/cloud/accounts:options/{full_name.name}':
    get:
      summary: Get supported provider information.
      operationId: getCloudAccountOptions
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.GetAccountOptionsResponse
      parameters:
        - name: full_name.name
          description: Name of the provider.
          in: path
          required: true
          type: string
      tags:
        - AccountOptions
  '/v1alpha/cloud/account:schema':
    get:
      summary: Get a Account schema.
      operationId: schemaCloudAccountSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.AccountSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - AccountSchemaHelper
  '/v1alpha/cloud/account:template':
    get:
      summary: Get a Account schema template.
      operationId: templateCloudAccountSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.AccountTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - AccountSchemaHelper
  /v1alpha/cloud/accounts:
    get:
      summary: List Accounts.
      operationId: listCloudAccount
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.ListAccountsResponse
      parameters:
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - AccountResourceService
    post:
      summary: Create an Account.
      operationId: createCloudAccount
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.CreateAccountResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.CreateAccountRequest
      tags:
        - AccountResourceService
  '/v1alpha/cloud/accounts/{account.full_name.name}':
    put:
      summary: Update (overwrite) an Account.
      operationId: updateCloudAccount
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.UpdateAccountResponse
      parameters:
        - name: account.full_name.name
          description: Name of the account.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.UpdateAccountRequest
      tags:
        - AccountResourceService
    patch:
      summary: Patch an Account.
      operationId: patchCloudAccount
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.PatchAccountResponse
      parameters:
        - name: account.full_name.name
          description: Name of the account.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.PatchAccountRequest
      tags:
        - AccountResourceService
  '/v1alpha/cloud/accounts/{full_name.name}':
    get:
      summary: Get an Account.
      operationId: getCloudAccount
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.GetAccountResponse
      parameters:
        - name: full_name.name
          description: Name of the account.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
      tags:
        - AccountResourceService
    delete:
      summary: Delete an Account.
      operationId: deleteCloudAccount
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.DeleteAccountResponse
      parameters:
        - name: full_name.name
          description: Name of the account.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
      tags:
        - AccountResourceService
  '/v1alpha/clusters/{full_name.name}/auth/serverconfig':
    get:
      summary: Get server authentication configuration for a cluster.
      operationId: getClusterAuthServerconfig
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.auth.serverconfig.GetResponse
      parameters:
        - name: full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - ServerConfigService
  '/v1alpha/clusters/{full_name.name}/auth/userconfig':
    get:
      summary: Get user authentication configuration for a cluster.
      operationId: getClusterAuthUserconfig
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.GetResponse
      parameters:
        - name: full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - UserConfigService
  '/v1alpha/clusters:apply':
    post:
      summary: Apply a Cluster.
      operationId: applyCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.ApplyClusterResponse'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.ApplyClusterRequest'
      tags:
        - ClusterApplyHelper
  '/v1alpha/clusters/{full_name.name}/policies:effective':
    get:
      summary: Get Cluster effective policy set.
      operationId: getClusterEffectivePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.GetClusterEffectivePolicySetResponse
      parameters:
        - name: full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - ClusterEffectivePolicySet
  '/v1alpha/clusters:iam/{full_name.name}':
    get:
      summary: Get policy for a Cluster.
      operationId: getClusterIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.GetClusterIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - ClusterIAMPolicy
    put:
      summary: Update (overwrite) policy for a Cluster - deleted if body is empty.
      operationId: updateClusterIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.UpdateClusterIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: body
          description: Cluster policy.
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
      tags:
        - ClusterIAMPolicy
    patch:
      summary: Patch a Cluster policy.
      operationId: patchClusterIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.PatchClusterIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.PatchClusterIAMPolicyRequest
      tags:
        - ClusterIAMPolicy
  '/v1alpha/clusters:iam/{full_name.name}/testPermissions':
    post:
      summary: Tests permissions for a Cluster.
      operationId: testPermissionsClusterIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.TestClusterIAMPermissionsResponse
      parameters:
        - name: full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.TestClusterIAMPermissionsRequest
      tags:
        - ClusterIAMPolicy
  '/v1alpha/clusters:options':
    get:
      summary: List cluster options.
      operationId: listClusterOptions
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.ListClusterOptionsResponse
      parameters:
        - name: account_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: account_name.name
          description: Name of the account.
          in: query
          required: false
          type: string
      tags:
        - ClusterOptions
  '/v1alpha/cluster:schema':
    get:
      summary: Get a Cluster schema.
      operationId: schemaClusterSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.ClusterSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - ClusterSchemaHelper
  '/v1alpha/cluster:template':
    get:
      summary: Get a Cluster schema template.
      operationId: templateClusterSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.ClusterTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - ClusterSchemaHelper
  /v1alpha/clusters:
    get:
      summary: List Clusters.
      operationId: listCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.ListClustersResponse'
      parameters:
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.group
          description: Scope search to the specified group; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: search_scope.location
          description: >-
            Scope search to the specified location; supports globbing; default
            (*).
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - ClusterResourceService
    post:
      summary: Create a Cluster.
      operationId: createCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.CreateClusterResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.CreateClusterRequest'
      tags:
        - ClusterResourceService
  '/v1alpha/clusters/{cluster.full_name.name}':
    put:
      summary: Update (overwrite) a Cluster.
      operationId: updateCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.UpdateClusterResponse
      parameters:
        - name: cluster.full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.UpdateClusterRequest'
      tags:
        - ClusterResourceService
    patch:
      summary: Patch a Cluster.
      operationId: patchCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.PatchClusterResponse'
      parameters:
        - name: cluster.full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.PatchClusterRequest'
      tags:
        - ClusterResourceService
  '/v1alpha/clusters/{full_name.name}':
    get:
      summary: Get a Cluster.
      operationId: getCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.GetClusterResponse'
      parameters:
        - name: full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - ClusterResourceService
    delete:
      summary: Delete a Cluster.
      operationId: deleteCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.DeleteClusterResponse
      parameters:
        - name: full_name.name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
        - name: force
          description: Force delete.
          in: query
          required: false
          type: boolean
          format: boolean
      tags:
        - ClusterResourceService
  '/v1alpha/clusters/{inspection.full_name.cluster_name}/inspections:apply':
    post:
      summary: Apply a Inspection.
      operationId: applyClusterInspection
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.ApplyInspectionResponse
      parameters:
        - name: inspection.full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.ApplyInspectionRequest
      tags:
        - InspectionApplyHelper
  '/v1alpha/cluster/inspection:schema':
    get:
      summary: Get a Inspection schema.
      operationId: schemaClusterInspectionSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - InspectionSchemaHelper
  '/v1alpha/cluster/inspection:template':
    get:
      summary: Get a Inspection schema template.
      operationId: templateClusterInspectionSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - InspectionSchemaHelper
  '/v1alpha/clusters/{full_name.cluster_name}/inspections/{full_name.name}':
    get:
      summary: Get an Inspection.
      operationId: getClusterInspection
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.GetInspectionResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the inspection object.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - InspectionResourceService
    delete:
      summary: Delete an Inspection.
      operationId: deleteClusterInspection
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.DeleteInspectionResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the inspection object.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - InspectionResourceService
  '/v1alpha/clusters/{inspection.full_name.cluster_name}/inspections':
    post:
      summary: Create an Inspection.
      operationId: createClusterInspection
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.CreateInspectionResponse
      parameters:
        - name: inspection.full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.CreateInspectionRequest
      tags:
        - InspectionResourceService
  '/v1alpha/clusters/{search_scope.cluster_name}/inspections':
    get:
      summary: List Inspections.
      operationId: listClusterInspection
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.ListInspectionsResponse
      parameters:
        - name: search_scope.cluster_name
          description: >-
            Scope search to the specified cluster_name; supports globbing;
            default (*).
          in: path
          required: true
          type: string
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.location
          description: >-
            Scope search to the specified location; supports globbing; default
            (*).
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - InspectionResourceService
  '/v1alpha/clusters/{namespace.full_name.cluster_name}/namespaces:apply':
    post:
      summary: Apply a Namespace.
      operationId: applyClusterNamespace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.ApplyNamespaceResponse
      parameters:
        - name: namespace.full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.ApplyNamespaceRequest
      tags:
        - NamespaceApplyHelper
  '/v1alpha/clusters/{full_name.cluster_name}/namespaces/{full_name.name}/policies:effective':
    get:
      summary: Get Namespace effective policy set.
      operationId: getClusterNamespaceEffectivePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.GetNamespaceEffectivePolicySetResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of this Namespace.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of parent Cluster.
          in: query
          required: false
          type: string
      tags:
        - NamespaceEffectivePolicySet
  '/v1alpha/clusters/{full_name.cluster_name}/namespaces:iam/{full_name.name}':
    get:
      summary: Get policy for a Namespace.
      operationId: getClusterNamespaceIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.GetNamespaceIAMPolicyResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of this Namespace.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of parent Cluster.
          in: query
          required: false
          type: string
      tags:
        - NamespaceIAMPolicy
    put:
      summary: Update (overwrite) policy for a Namespace - deleted if body is empty.
      operationId: updateClusterNamespaceIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.UpdateNamespaceIAMPolicyResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of this Namespace.
          in: path
          required: true
          type: string
        - name: body
          description: Namespace policy.
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
      tags:
        - NamespaceIAMPolicy
    patch:
      summary: Patch a Namespace policy.
      operationId: patchClusterNamespaceIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.PatchNamespaceIAMPolicyResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of this Namespace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.PatchNamespaceIAMPolicyRequest
      tags:
        - NamespaceIAMPolicy
  '/v1alpha/clusters/{full_name.cluster_name}/namespaces:iam/{full_name.name}/testPermissions':
    post:
      summary: Tests permissions for a Namespace.
      operationId: testPermissionsClusterNamespaceIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.TestNamespaceIAMPermissionsResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of this Namespace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.TestNamespaceIAMPermissionsRequest
      tags:
        - NamespaceIAMPolicy
  '/v1alpha/cluster/namespace:schema':
    get:
      summary: Get a Namespace schema.
      operationId: schemaClusterNamespaceSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - NamespaceSchemaHelper
  '/v1alpha/cluster/namespace:template':
    get:
      summary: Get a Namespace schema template.
      operationId: templateClusterNamespaceSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - NamespaceSchemaHelper
  '/v1alpha/clusters/{full_name.cluster_name}/namespaces/{full_name.name}':
    get:
      summary: Get a Namespace.
      operationId: getClusterNamespace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.GetNamespaceResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of this Namespace.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of parent Cluster.
          in: query
          required: false
          type: string
      tags:
        - NamespaceResourceService
    delete:
      summary: Delete a Namespace.
      operationId: deleteClusterNamespace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.DeleteNamespaceResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of this Namespace.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of parent Cluster.
          in: query
          required: false
          type: string
      tags:
        - NamespaceResourceService
  '/v1alpha/clusters/{namespace.full_name.cluster_name}/namespaces':
    post:
      summary: Create a Namespace.
      operationId: createClusterNamespace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.CreateNamespaceResponse
      parameters:
        - name: namespace.full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.CreateNamespaceRequest
      tags:
        - NamespaceResourceService
  '/v1alpha/clusters/{namespace.full_name.cluster_name}/namespaces/{namespace.full_name.name}':
    put:
      summary: Update (overwrite) a Namespace.
      operationId: updateClusterNamespace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.UpdateNamespaceResponse
      parameters:
        - name: namespace.full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: namespace.full_name.name
          description: Name of this Namespace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.UpdateNamespaceRequest
      tags:
        - NamespaceResourceService
    patch:
      summary: Patch a Namespace.
      operationId: patchClusterNamespace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.PatchNamespaceResponse
      parameters:
        - name: namespace.full_name.cluster_name
          description: Name of parent Cluster.
          in: path
          required: true
          type: string
        - name: namespace.full_name.name
          description: Name of this Namespace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.PatchNamespaceRequest
      tags:
        - NamespaceResourceService
  '/v1alpha/clusters/{search_scope.cluster_name}/namespaces':
    get:
      summary: List Namespaces.
      operationId: listClusterNamespace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.ListNamespacesResponse
      parameters:
        - name: search_scope.cluster_name
          description: >-
            Scope search to the specified cluster_name; supports globbing;
            default (*).
          in: path
          required: true
          type: string
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.location
          description: >-
            Scope search to the specified location; supports globbing; default
            (*).
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: search_scope.workspaceName
          description: >-
            Scope search to the specified workspace_name; supports globbing;
            default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - NamespaceResourceService
  '/v1alpha/cluster/object:schema':
    get:
      summary: Get a Object schema.
      operationId: schemaClusterObjectSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - ObjectSchemaHelper
  '/v1alpha/cluster/object:template':
    get:
      summary: Get a Object schema template.
      operationId: templateClusterObjectSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - ObjectSchemaHelper
  '/v1alpha/clusters/{search_scope.cluster_name}/objects':
    get:
      summary: List Objects.
      operationId: listClusterObject
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ListObjectsResponse
      parameters:
        - name: search_scope.cluster_name
          description: >-
            Scope search to the specified cluster_name; supports globbing;
            default (*).
          in: path
          required: true
          type: string
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.location
          description: >-
            Scope search to the specified location; supports globbing; default
            (*).
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - ObjectResourceService
  '/v1alpha/clusters/{policy.full_name.cluster_name}/policies:apply':
    post:
      summary: Apply a Policy.
      operationId: applyClusterPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.ApplyPolicyResponse
      parameters:
        - name: policy.full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.ApplyPolicyRequest
      tags:
        - PolicyApplyHelper
  '/v1alpha/cluster/policy:schema':
    get:
      summary: Get a Policy schema.
      operationId: schemaClusterPolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.PolicySchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - PolicySchemaHelper
  '/v1alpha/cluster/policy:template':
    get:
      summary: Get a Policy schema template.
      operationId: templateClusterPolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.PolicyTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - PolicySchemaHelper
  '/v1alpha/clusters/{full_name.cluster_name}/policies/{full_name.name}':
    get:
      summary: Get a Policy.
      operationId: getClusterPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.GetPolicyResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the cluster policy.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - PolicyResourceService
    delete:
      summary: Delete a Policy.
      operationId: deleteClusterPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.DeletePolicyResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the cluster policy.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - PolicyResourceService
  '/v1alpha/clusters/{policy.full_name.cluster_name}/policies':
    post:
      summary: Create a Policy.
      operationId: createClusterPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.CreatePolicyResponse
      parameters:
        - name: policy.full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.CreatePolicyRequest
      tags:
        - PolicyResourceService
  '/v1alpha/clusters/{policy.full_name.cluster_name}/policies/{policy.full_name.name}':
    put:
      summary: Update (overwrite) a Policy.
      operationId: updateClusterPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.UpdatePolicyResponse
      parameters:
        - name: policy.full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: policy.full_name.name
          description: Name of the cluster policy.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.UpdatePolicyRequest
      tags:
        - PolicyResourceService
    patch:
      summary: Patch a Policy.
      operationId: patchClusterPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.PatchPolicyResponse
      parameters:
        - name: policy.full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: policy.full_name.name
          description: Name of the cluster policy.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.PatchPolicyRequest
      tags:
        - PolicyResourceService
  '/v1alpha/clusters/{search_scope.cluster_name}/policies':
    get:
      summary: List Policies.
      operationId: listClusterPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.ListPoliciesResponse
      parameters:
        - name: search_scope.cluster_name
          description: >-
            Scope search to the specified cluster_name; supports globbing;
            default (*).
          in: path
          required: true
          type: string
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.location
          description: >-
            Scope search to the specified location; supports globbing; default
            (*).
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - PolicyResourceService
  '/v1alpha/clusters/{full_name.cluster_name}/provisionedclusters/{full_name.name}/adminkubeconfig':
    get:
      summary: Get cluster admin kubeconfig.
      operationId: GetAdminKubeConfig
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.kubeconfig.GetAdminKubeconfigResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the provisioned cluster.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - KubeconfigService
  '/v1alpha/clusters/{full_name.cluster_name}/provisionedclusters/{full_name.name}/kubeconfig':
    get:
      summary: Get cluster kubeconfig.
      operationId: getClusterProvisionedclusterKubeconfig
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.kubeconfig.GetKubeconfigResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the provisioned cluster.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
        - name: option
          description: Authentication option.
          in: query
          required: false
          type: string
        - name: namespace
          description: >-
            Namespace option to get kubeconfig for a specific namespace. It is
            optional. If not specified, the cluster

            kubeconfig will be returned. Specifying a namespace is mainly for
            application developers who have access to a

            workspace and certain namespaces in a cluster to get a kubeconfig to
            access that cluster.
          in: query
          required: false
          type: string
      tags:
        - KubeconfigService
  '/v1alpha/clusters/{nodepool.full_name.cluster_name}/provisionedclusters/{nodepool.full_name.provisionedcluster_name}/nodepools:apply':
    post:
      summary: Apply a NodePool.
      operationId: applyClusterProvisionedclusterNodepool
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.ApplyNodePoolResponse
      parameters:
        - name: nodepool.full_name.cluster_name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: nodepool.full_name.provisionedcluster_name
          description: Name of the provsioned cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.ApplyNodePoolRequest
      tags:
        - NodePoolApplyHelper
  '/v1alpha/clusters/{full_name.cluster_name}/provisionedclusters/{full_name.provisionedcluster_name}/nodepool:options':
    get:
      summary: List node pool options.
      operationId: listClusterProvisionedclusterNodepoolOptions
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.ListNodePoolOptionsResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.provisionedcluster_name
          description: Name of the provsioned cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
        - name: full_name.name
          description: Name of the node pool in DNS-1123 format.
          in: query
          required: false
          type: string
        - name: account_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: account_name.name
          description: Name of the account.
          in: query
          required: false
          type: string
      tags:
        - NodePoolOptions
  '/v1alpha/cluster/provisionedcluster/nodepool:schema':
    get:
      summary: Get a NodePool schema.
      operationId: schemaClusterProvisionedclusterNodepoolSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - NodePoolSchemaHelper
  '/v1alpha/cluster/provisionedcluster/nodepool:template':
    get:
      summary: Get a NodePool schema template.
      operationId: templateClusterProvisionedclusterNodepoolSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - NodePoolSchemaHelper
  '/v1alpha/clusters/{full_name.cluster_name}/provisionedclusters/{full_name.provisionedcluster_name}/nodepools/{full_name.name}':
    get:
      summary: Get a NodePool.
      operationId: getClusterProvisionedclusterNodepool
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.GetNodePoolResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.provisionedcluster_name
          description: Name of the provsioned cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the node pool in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - NodePoolResourceService
    delete:
      summary: Delete a NodePool.
      operationId: deleteClusterProvisionedclusterNodepool
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.DeleteNodePoolResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.provisionedcluster_name
          description: Name of the provsioned cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the node pool in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
      tags:
        - NodePoolResourceService
  '/v1alpha/clusters/{nodepool.full_name.cluster_name}/provisionedclusters/{nodepool.full_name.provisionedcluster_name}/nodepools':
    post:
      summary: Create a NodePool.
      operationId: createClusterProvisionedclusterNodepool
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.CreateNodePoolResponse
      parameters:
        - name: nodepool.full_name.cluster_name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: nodepool.full_name.provisionedcluster_name
          description: Name of the provsioned cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.CreateNodePoolRequest
      tags:
        - NodePoolResourceService
  '/v1alpha/clusters/{nodepool.full_name.cluster_name}/provisionedclusters/{nodepool.full_name.provisionedcluster_name}/nodepools/{nodepool.full_name.name}':
    put:
      summary: Update (overwrite) a NodePool.
      operationId: updateClusterProvisionedclusterNodepool
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.UpdateNodePoolResponse
      parameters:
        - name: nodepool.full_name.cluster_name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: nodepool.full_name.provisionedcluster_name
          description: Name of the provsioned cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: nodepool.full_name.name
          description: Name of the node pool in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.UpdateNodePoolRequest
      tags:
        - NodePoolResourceService
    patch:
      summary: Patch a NodePool.
      operationId: patchClusterProvisionedclusterNodepool
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.PatchNodePoolResponse
      parameters:
        - name: nodepool.full_name.cluster_name
          description: Name of the cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: nodepool.full_name.provisionedcluster_name
          description: Name of the provsioned cluster in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: nodepool.full_name.name
          description: Name of the node pool in DNS-1123 format.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.PatchNodePoolRequest
      tags:
        - NodePoolResourceService
  '/v1alpha/clusters/{search_scope.cluster_name}/provisionedclusters/{search_scope.provisionedcluster_name}/nodepools':
    get:
      summary: List NodePools.
      operationId: listClusterProvisionedclusterNodepool
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.ListNodePoolsResponse
      parameters:
        - name: search_scope.cluster_name
          description: >-
            Scope search to the specified cluster_name; supports globbing;
            default (*).
          in: path
          required: true
          type: string
        - name: search_scope.provisionedcluster_name
          description: >-
            Scope search to the specified provisionedcluster_name; supports
            globbing; default (*).
          in: path
          required: true
          type: string
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.location
          description: >-
            Scope search to the specified location; supports globbing; default
            (*).
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - NodePoolResourceService
  '/v1alpha/clusters/{full_name.cluster_name}/provisionedclusters/{full_name.name}/versions':
    get:
      summary: Get returns a list of versions this cluster can be upgraded to.
      operationId: getClusterProvisionedclusterVersions
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.versions.GetResponse
      parameters:
        - name: full_name.cluster_name
          description: Name of the cluster.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the provisioned cluster.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: Org ID of the cluster organization.
          in: query
          required: false
          type: string
        - name: full_name.location
          description: Location of the cluster.
          in: query
          required: false
          type: string
        - name: includeIneligible
          description: >-
            If true, return all future versions even if they are not eligible
            for direct upgrade.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: includeAllOsFamilies
          description: >-
            If true, return versions even if they are not in the same OS family
            as the cluster.

            Example, show CentOS versions even though the current cluster is
            Ubuntu based.
          in: query
          required: false
          type: boolean
          format: boolean
      tags:
        - ClusterVersionsService
  '/v1alpha/clustergroups:apply':
    post:
      summary: Apply a ClusterGroup.
      operationId: applyClustergroup
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ApplyClusterGroupResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ApplyClusterGroupRequest
      tags:
        - ClusterGroupApplyHelper
  '/v1alpha/clustergroups/{full_name.name}/policies:effective':
    get:
      summary: Get ClusterGroup effective policy set.
      operationId: getClustergroupEffectivePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.GetClusterGroupEffectivePolicySetResponse
      parameters:
        - name: full_name.name
          description: Name of this ClusterGroup.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - ClusterGroupEffectivePolicySet
  '/v1alpha/clustergroups:iam/{full_name.name}':
    get:
      summary: Get policy for a ClusterGroup.
      operationId: getClustergroupIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.GetClusterGroupIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of this ClusterGroup.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - ClusterGroupIAMPolicy
    put:
      summary: Update (overwrite) policy for a ClusterGroup - deleted if body is empty.
      operationId: updateClustergroupIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.UpdateClusterGroupIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of this ClusterGroup.
          in: path
          required: true
          type: string
        - name: body
          description: ClusterGroup policy.
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
      tags:
        - ClusterGroupIAMPolicy
    patch:
      summary: Patch a ClusterGroup policy.
      operationId: patchClustergroupIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.PatchClusterGroupIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of this ClusterGroup.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.PatchClusterGroupIAMPolicyRequest
      tags:
        - ClusterGroupIAMPolicy
  '/v1alpha/clustergroups:iam/{full_name.name}/testPermissions':
    post:
      summary: Tests permissions for a ClusterGroup.
      operationId: testPermissionsClustergroupIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.TestClusterGroupIAMPermissionsResponse
      parameters:
        - name: full_name.name
          description: Name of this ClusterGroup.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.TestClusterGroupIAMPermissionsRequest
      tags:
        - ClusterGroupIAMPolicy
  '/v1alpha/clustergroup:schema':
    get:
      summary: Get a ClusterGroup schema.
      operationId: schemaClustergroupSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroupSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - ClusterGroupSchemaHelper
  '/v1alpha/clustergroup:template':
    get:
      summary: Get a ClusterGroup schema template.
      operationId: templateClustergroupSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroupTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - ClusterGroupSchemaHelper
  /v1alpha/clustergroups:
    get:
      summary: List ClusterGroups.
      operationId: listClustergroup
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ListClusterGroupsResponse
      parameters:
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - ClusterGroupResourceService
    post:
      summary: Create a ClusterGroup.
      operationId: createClustergroup
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.CreateClusterGroupResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.CreateClusterGroupRequest
      tags:
        - ClusterGroupResourceService
  '/v1alpha/clustergroups/{clustergroup.full_name.name}':
    put:
      summary: Update (overwrite) a ClusterGroup.
      operationId: updateClustergroup
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.UpdateClusterGroupResponse
      parameters:
        - name: clustergroup.full_name.name
          description: Name of this ClusterGroup.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.UpdateClusterGroupRequest
      tags:
        - ClusterGroupResourceService
    patch:
      summary: Patch a ClusterGroup.
      operationId: patchClustergroup
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.PatchClusterGroupResponse
      parameters:
        - name: clustergroup.full_name.name
          description: Name of this ClusterGroup.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.PatchClusterGroupRequest
      tags:
        - ClusterGroupResourceService
  '/v1alpha/clustergroups/{full_name.name}':
    get:
      summary: Get a ClusterGroup.
      operationId: getClustergroup
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.GetClusterGroupResponse
      parameters:
        - name: full_name.name
          description: Name of this ClusterGroup.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - ClusterGroupResourceService
    delete:
      summary: Delete a ClusterGroup.
      operationId: deleteClustergroup
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.DeleteClusterGroupResponse
      parameters:
        - name: full_name.name
          description: Name of this ClusterGroup.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - ClusterGroupResourceService
  '/v1alpha/clustergroups/{policy.full_name.clustergroup_name}/policies:apply':
    post:
      summary: Apply a Policy.
      operationId: applyClustergroupPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.ApplyPolicyResponse
      parameters:
        - name: policy.full_name.clustergroup_name
          description: Name of the ClusterGroup.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.ApplyPolicyRequest
      tags:
        - PolicyApplyHelper
  '/v1alpha/clustergroup/policy:schema':
    get:
      summary: Get a Policy schema.
      operationId: schemaClustergroupPolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.PolicySchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - PolicySchemaHelper
  '/v1alpha/clustergroup/policy:template':
    get:
      summary: Get a Policy schema template.
      operationId: templateClustergroupPolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.PolicyTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - PolicySchemaHelper
  '/v1alpha/clustergroups/{full_name.clustergroup_name}/policies/{full_name.name}':
    get:
      summary: Get a Policy.
      operationId: getClustergroupPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.GetPolicyResponse
      parameters:
        - name: full_name.clustergroup_name
          description: Name of the ClusterGroup.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the ClusterGroup policy.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - PolicyResourceService
    delete:
      summary: Delete a Policy.
      operationId: deleteClustergroupPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.DeletePolicyResponse
      parameters:
        - name: full_name.clustergroup_name
          description: Name of the ClusterGroup.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the ClusterGroup policy.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - PolicyResourceService
  '/v1alpha/clustergroups/{policy.full_name.clustergroup_name}/policies':
    post:
      summary: Create a Policy.
      operationId: createClustergroupPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.CreatePolicyResponse
      parameters:
        - name: policy.full_name.clustergroup_name
          description: Name of the ClusterGroup.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.CreatePolicyRequest
      tags:
        - PolicyResourceService
  '/v1alpha/clustergroups/{policy.full_name.clustergroup_name}/policies/{policy.full_name.name}':
    put:
      summary: Update (overwrite) a Policy.
      operationId: updateClustergroupPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.UpdatePolicyResponse
      parameters:
        - name: policy.full_name.clustergroup_name
          description: Name of the ClusterGroup.
          in: path
          required: true
          type: string
        - name: policy.full_name.name
          description: Name of the ClusterGroup policy.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.UpdatePolicyRequest
      tags:
        - PolicyResourceService
    patch:
      summary: Patch a Policy.
      operationId: patchClustergroupPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.PatchPolicyResponse
      parameters:
        - name: policy.full_name.clustergroup_name
          description: Name of the ClusterGroup.
          in: path
          required: true
          type: string
        - name: policy.full_name.name
          description: Name of the ClusterGroup policy.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.PatchPolicyRequest
      tags:
        - PolicyResourceService
  '/v1alpha/clustergroups/{search_scope.clustergroup_name}/policies':
    get:
      summary: List Policies.
      operationId: listClustergroupPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.ListPoliciesResponse
      parameters:
        - name: search_scope.clustergroup_name
          description: >-
            Scope search to the specified clustergroup_name; supports globbing;
            default (*).
          in: path
          required: true
          type: string
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - PolicyResourceService
  '/v1alpha/effectiveiampolicy:schema':
    get:
      summary: Get a EffectiveIAMPolicy schema.
      operationId: schemaEffectiveiampolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicySchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - EffectiveIAMPolicySchemaHelper
  '/v1alpha/effectiveiampolicy:template':
    get:
      summary: Get a EffectiveIAMPolicy schema template.
      operationId: templateEffectiveiampolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicyTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - EffectiveIAMPolicySchemaHelper
  /v1alpha/effectiveiampolicies:
    get:
      summary: List EffectiveIAMPolicies.
      operationId: listEffectiveiampolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.ListEffectiveIAMPoliciesResponse
      parameters:
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: search_scope.targetResourceRid
          description: >-
            Scope search to the specified target_resource_rid; supports
            globbing; default (*).
          in: query
          required: false
          type: string
        - name: search_scope.state
          description: Scope search to the specified state; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - EffectiveIAMPolicyResourceService
  /v1alpha/iam/directory/search:
    post:
      summary: Search users and groups (suitable for implementing autocomplete).
      operationId: Search
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.directory.SearchResponse'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.directory.SearchRequest'
      tags:
        - DirectoryService
  '/v1alpha/iam/role:schema':
    get:
      summary: Get a Role schema.
      operationId: schemaIamRoleSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.role.RoleSchemaResponse'
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - RoleSchemaHelper
  '/v1alpha/iam/role:template':
    get:
      summary: Get a Role schema template.
      operationId: templateIamRoleSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.iam.role.RoleTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - RoleSchemaHelper
  /v1alpha/iam/roles:
    get:
      summary: List Roles.
      operationId: listIamRole
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.role.ListRolesResponse'
      parameters:
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - RoleResourceService
  '/v1alpha/iam/roles/{full_name.name}':
    get:
      summary: Get a Role.
      operationId: getIamRole
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.role.GetRoleResponse'
      parameters:
        - name: full_name.name
          description: Name of the role.
          in: path
          required: true
          type: string
      tags:
        - RoleResourceService
  '/v1alpha/options/policytype/policyrecipe:schema':
    get:
      summary: Get a PolicyRecipe schema.
      operationId: schemaOptionsPolicytypePolicyrecipeSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipeSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - PolicyRecipeSchemaHelper
  '/v1alpha/options/policytype/policyrecipe:template':
    get:
      summary: Get a PolicyRecipe schema template.
      operationId: templateOptionsPolicytypePolicyrecipeSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipeTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - PolicyRecipeSchemaHelper
  '/v1alpha/options/policytypes/{full_name.policytype_name}/policyrecipes/{full_name.name}':
    get:
      summary: Get a PolicyRecipe.
      operationId: getOptionsPolicytypePolicyrecipe
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.GetPolicyRecipeResponse
      parameters:
        - name: full_name.policytype_name
          description: Name of the policy type.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the policy recipe; is unique for each policy type.
          in: path
          required: true
          type: string
      tags:
        - PolicyRecipeResourceService
  '/v1alpha/options/policytypes/{search_scope.policytype_name}/policyrecipes':
    get:
      summary: List PolicyRecipes.
      operationId: listOptionsPolicytypePolicyrecipe
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.ListPolicyRecipesResponse
      parameters:
        - name: search_scope.policytype_name
          description: >-
            Scope search to the specified policytype_name; supports globbing;
            default (*).
          in: path
          required: true
          type: string
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - PolicyRecipeResourceService
  '/v1alpha/options/policytype:schema':
    get:
      summary: Get a PolicyType schema.
      operationId: schemaOptionsPolicytypeSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.policytype.PolicyTypeSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - PolicyTypeSchemaHelper
  '/v1alpha/options/policytype:template':
    get:
      summary: Get a PolicyType schema template.
      operationId: templateOptionsPolicytypeSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.policytype.PolicyTypeTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - PolicyTypeSchemaHelper
  /v1alpha/options/policytypes:
    get:
      summary: List PolicyTypes.
      operationId: listOptionsPolicytype
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.policytype.ListPolicyTypesResponse
      parameters:
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - PolicyTypeResourceService
  '/v1alpha/options/policytypes/{full_name.name}':
    get:
      summary: Get a PolicyType.
      operationId: getOptionsPolicytype
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.policytype.GetPolicyTypeResponse
      parameters:
        - name: full_name.name
          description: Name of the PolicyType.
          in: path
          required: true
          type: string
      tags:
        - PolicyTypeResourceService
  '/v1alpha/organizations/{full_name.org_id}/policies:effective':
    get:
      summary: Get Organization effective policy set.
      operationId: getOrganizationEffectivePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.GetOrganizationEffectivePolicySetResponse
      parameters:
        - name: full_name.org_id
          description: ID of Organization.
          in: path
          required: true
          type: string
      tags:
        - OrganizationEffectivePolicySet
  '/v1alpha/organization:iam':
    get:
      summary: Get policy for organization.
      operationId: getOrganizationIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.GetOrganizationIAMPolicyResponse
      parameters:
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - OrganizationIAMPolicy
    put:
      summary: Update (overwrite) policy for organization - deletes if body is empty.
      operationId: updateOrganizationIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.UpdateOrganizationIAMPolicyResponse
      parameters:
        - name: body
          description: Organization policy.
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
      tags:
        - OrganizationIAMPolicy
    patch:
      summary: Patch policy for organization.
      operationId: patchOrganizationIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.PatchOrganizationIAMPolicyResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.PatchOrganizationIAMPolicyRequest
      tags:
        - OrganizationIAMPolicy
  '/v1alpha/organization:iam/testPermissions':
    post:
      summary: Tests permissions for organization.
      operationId: testPermissionsOrganizationIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.TestOrganizationIAMPermissionsResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.TestOrganizationIAMPermissionsRequest
      tags:
        - OrganizationIAMPolicy
  '/v1alpha/organization/policies:apply':
    post:
      summary: Apply a Policy.
      operationId: applyOrganizationPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.ApplyPolicyResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.ApplyPolicyRequest
      tags:
        - PolicyApplyHelper
  '/v1alpha/organization/policy:schema':
    get:
      summary: Get a Policy schema.
      operationId: schemaOrganizationPolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.PolicySchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - PolicySchemaHelper
  '/v1alpha/organization/policy:template':
    get:
      summary: Get a Policy schema template.
      operationId: templateOrganizationPolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.PolicyTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - PolicySchemaHelper
  /v1alpha/organization/policies:
    get:
      summary: List Policies.
      operationId: listOrganizationPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.ListPoliciesResponse
      parameters:
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - PolicyResourceService
    post:
      summary: Create a Policy.
      operationId: createOrganizationPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.CreatePolicyResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.CreatePolicyRequest
      tags:
        - PolicyResourceService
  '/v1alpha/organization/policies/{full_name.name}':
    get:
      summary: Get a Policy.
      operationId: getOrganizationPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.GetPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of the Organization policy.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - PolicyResourceService
    delete:
      summary: Delete a Policy.
      operationId: deleteOrganizationPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.DeletePolicyResponse
      parameters:
        - name: full_name.name
          description: Name of the Organization policy.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - PolicyResourceService
  '/v1alpha/organization/policies/{policy.full_name.name}':
    put:
      summary: Update (overwrite) a Policy.
      operationId: updateOrganizationPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.UpdatePolicyResponse
      parameters:
        - name: policy.full_name.name
          description: Name of the Organization policy.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.UpdatePolicyRequest
      tags:
        - PolicyResourceService
    patch:
      summary: Patch a Policy.
      operationId: patchOrganizationPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.PatchPolicyResponse
      parameters:
        - name: policy.full_name.name
          description: Name of the Organization policy.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.PatchPolicyRequest
      tags:
        - PolicyResourceService
  /v1alpha/system/binaries:
    get:
      summary: Request to get the links to the latest CLI binaries.
      operationId: getSystemBinaries
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.system.binaries.GetBinariesResponse
      tags:
        - BinariesService
  '/v1alpha/workspaces/{policy.full_name.workspace_name}/policies:apply':
    post:
      summary: Apply a Policy.
      operationId: applyWorkspacePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.ApplyPolicyResponse
      parameters:
        - name: policy.full_name.workspace_name
          description: Name of the Workspace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.ApplyPolicyRequest
      tags:
        - PolicyApplyHelper
  '/v1alpha/workspace/policy:schema':
    get:
      summary: Get a Policy schema.
      operationId: schemaWorkspacePolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.PolicySchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - PolicySchemaHelper
  '/v1alpha/workspace/policy:template':
    get:
      summary: Get a Policy schema template.
      operationId: templateWorkspacePolicySchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.PolicyTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - PolicySchemaHelper
  '/v1alpha/workspaces/{full_name.workspace_name}/policies/{full_name.name}':
    get:
      summary: Get a Policy.
      operationId: getWorkspacePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.GetPolicyResponse
      parameters:
        - name: full_name.workspace_name
          description: Name of the Workspace.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the Workspace policy.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - PolicyResourceService
    delete:
      summary: Delete a Policy.
      operationId: deleteWorkspacePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.DeletePolicyResponse
      parameters:
        - name: full_name.workspace_name
          description: Name of the Workspace.
          in: path
          required: true
          type: string
        - name: full_name.name
          description: Name of the Workspace policy.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - PolicyResourceService
  '/v1alpha/workspaces/{policy.full_name.workspace_name}/policies':
    post:
      summary: Create a Policy.
      operationId: createWorkspacePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.CreatePolicyResponse
      parameters:
        - name: policy.full_name.workspace_name
          description: Name of the Workspace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.CreatePolicyRequest
      tags:
        - PolicyResourceService
  '/v1alpha/workspaces/{policy.full_name.workspace_name}/policies/{policy.full_name.name}':
    put:
      summary: Update (overwrite) a Policy.
      operationId: updateWorkspacePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.UpdatePolicyResponse
      parameters:
        - name: policy.full_name.workspace_name
          description: Name of the Workspace.
          in: path
          required: true
          type: string
        - name: policy.full_name.name
          description: Name of the Workspace policy.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.UpdatePolicyRequest
      tags:
        - PolicyResourceService
    patch:
      summary: Patch a Policy.
      operationId: patchWorkspacePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.PatchPolicyResponse
      parameters:
        - name: policy.full_name.workspace_name
          description: Name of the Workspace.
          in: path
          required: true
          type: string
        - name: policy.full_name.name
          description: Name of the Workspace policy.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.PatchPolicyRequest
      tags:
        - PolicyResourceService
  '/v1alpha/workspaces/{search_scope.workspace_name}/policies':
    get:
      summary: List Policies.
      operationId: listWorkspacePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.ListPoliciesResponse
      parameters:
        - name: search_scope.workspace_name
          description: >-
            Scope search to the specified workspace_name; supports globbing;
            default (*).
          in: path
          required: true
          type: string
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - PolicyResourceService
  '/v1alpha/workspaces:apply':
    post:
      summary: Apply a Workspace.
      operationId: applyWorkspace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.ApplyWorkspaceResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.ApplyWorkspaceRequest
      tags:
        - WorkspaceApplyHelper
  '/v1alpha/workspaces/{full_name.name}/policies:effective':
    get:
      summary: Get Workspace effective policy set.
      operationId: getWorkspaceEffectivePolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.GetWorkspaceEffectivePolicySetResponse
      parameters:
        - name: full_name.name
          description: Name of this Workspace.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - WorkspaceEffectivePolicySet
  '/v1alpha/workspaces:iam/{full_name.name}':
    get:
      summary: Get policy for a Workspace.
      operationId: getWorkspaceIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.GetWorkspaceIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of this Workspace.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - WorkspaceIAMPolicy
    put:
      summary: Update (overwrite) policy for a Workspace - deleted if body is empty.
      operationId: updateWorkspaceIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.UpdateWorkspaceIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of this Workspace.
          in: path
          required: true
          type: string
        - name: body
          description: Workspace policy.
          in: body
          required: true
          schema:
            $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
      tags:
        - WorkspaceIAMPolicy
    patch:
      summary: Patch a Workspace policy.
      operationId: patchWorkspaceIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.PatchWorkspaceIAMPolicyResponse
      parameters:
        - name: full_name.name
          description: Name of this Workspace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.PatchWorkspaceIAMPolicyRequest
      tags:
        - WorkspaceIAMPolicy
  '/v1alpha/workspaces:iam/{full_name.name}/testPermissions':
    post:
      summary: Tests permissions for a Workspace.
      operationId: testPermissionsWorkspaceIam
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.TestWorkspaceIAMPermissionsResponse
      parameters:
        - name: full_name.name
          description: Name of this Workspace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.TestWorkspaceIAMPermissionsRequest
      tags:
        - WorkspaceIAMPolicy
  '/v1alpha/workspace:schema':
    get:
      summary: Get a Workspace schema.
      operationId: schemaWorkspaceSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.WorkspaceSchemaResponse
      parameters:
        - name: format
          description: |-
            Format of the schema.

             - YAML: Schema in OpenAPI YAML format.
             - JSON: Schema in OpenAPI JSON format.
             - PROTO: Schema in protobuf format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
            - PROTO
          default: YAML
      tags:
        - WorkspaceSchemaHelper
  '/v1alpha/workspace:template':
    get:
      summary: Get a Workspace schema template.
      operationId: templateWorkspaceSchema
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.WorkspaceTemplateResponse
      parameters:
        - name: format
          description: |-
            Format of the template.

             - YAML: Template in YAML format.
             - JSON: Template in JSON format.
          in: query
          required: false
          type: string
          enum:
            - YAML
            - JSON
          default: YAML
      tags:
        - WorkspaceSchemaHelper
  /v1alpha/workspaces:
    get:
      summary: List Workspaces.
      operationId: listWorkspace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.ListWorkspacesResponse
      parameters:
        - name: query
          description: TQL query string.
          in: query
          required: false
          type: string
        - name: pagination_options.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: int64
        - name: pagination_options.pageToken
          description: Token to specify a page of returning records.
          in: query
          required: false
          type: string
        - name: search_scope.name
          description: Scope search to the specified name; supports globbing; default (*).
          in: query
          required: false
          type: string
        - name: sortBy
          description: Sort Order.
          in: query
          required: false
          type: string
        - name: includeTotalCount
          description: Include total count.
          in: query
          required: false
          type: boolean
          format: boolean
        - name: pagination.offset
          description: Offset at which to start returning records.
          in: query
          required: false
          type: string
          format: uint64
        - name: pagination.size
          description: Number of records to return.
          in: query
          required: false
          type: string
          format: uint64
      tags:
        - WorkspaceResourceService
    post:
      summary: Create a Workspace.
      operationId: createWorkspace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.CreateWorkspaceResponse
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.CreateWorkspaceRequest
      tags:
        - WorkspaceResourceService
  '/v1alpha/workspaces/{full_name.name}':
    get:
      summary: Get a Workspace.
      operationId: getWorkspace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.GetWorkspaceResponse
      parameters:
        - name: full_name.name
          description: Name of this Workspace.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - WorkspaceResourceService
    delete:
      summary: Delete a Workspace.
      operationId: deleteWorkspace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.DeleteWorkspaceResponse
      parameters:
        - name: full_name.name
          description: Name of this Workspace.
          in: path
          required: true
          type: string
        - name: full_name.orgId
          description: ID of Organization.
          in: query
          required: false
          type: string
      tags:
        - WorkspaceResourceService
  '/v1alpha/workspaces/{workspace.full_name.name}':
    put:
      summary: Update (overwrite) a Workspace.
      operationId: updateWorkspace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.UpdateWorkspaceResponse
      parameters:
        - name: workspace.full_name.name
          description: Name of this Workspace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.UpdateWorkspaceRequest
      tags:
        - WorkspaceResourceService
    patch:
      summary: Patch a Workspace.
      operationId: patchWorkspace
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.PatchWorkspaceResponse
      parameters:
        - name: workspace.full_name.name
          description: Name of this Workspace.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: >-
              #/definitions/vmware.tanzu.mc.v1alpha.workspace.PatchWorkspaceRequest
      tags:
        - WorkspaceResourceService
definitions:
  vmware.tanzu.mc.v1alpha.account.provider.credential.AWSAccessKey:
    description: AWS access key id and secret access key.
    type: object
    properties:
      accessKeyId:
        description: >-
          The access key ID to use for your cloud infrastructure provider
          account.
        type: string
      secretAccessKey:
        description: >-
          The secret access key to use for your cloud infrastructure provider
          account.
        type: string
  vmware.tanzu.mc.v1alpha.account.provider.credential.AWSAssumeRole:
    description: AWS assume role ARN and external Id.
    type: object
    properties:
      externalId:
        description: External ID for the role ARN.
        type: string
      roleArn:
        description: Role ARN to assume.
        type: string
  vmware.tanzu.mc.v1alpha.account.provider.credential.AWSCredential:
    description: AWS account credential details.
    type: object
    properties:
      accessKey:
        description: AWS access key.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.AWSAccessKey
      assumeRole:
        description: AWS assume role.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.AWSAssumeRole
  vmware.tanzu.mc.v1alpha.account.provider.credential.ApplyCredentialRequest:
    type: object
    properties:
      credential:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
        description: Credential to apply.
    description: Request to apply a Credential.
  vmware.tanzu.mc.v1alpha.account.provider.credential.ApplyCredentialResponse:
    type: object
    properties:
      credential:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
        description: Credential applied.
    description: Response from applying a Credential.
  vmware.tanzu.mc.v1alpha.account.provider.credential.Credential:
    description: >-
      The credential object defines a cloud provider account connection and the

      accompanying metadata to identify its capabilities.


      Tanzu Mission Control services require scoped credentials to operate on
      resources in a cloud

      infrastructure provider account. This object maintains a list of
      associations

      identifying the Tanzu Mission Control services that the credential's
      permissions satisfy.

      The credential is always encrypted and securely stored.
    type: object
    properties:
      fullName:
        description: Full name of the infra provider account credential.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.FullName
      objectMeta:
        description: Metadata for the infra provider account credential.
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
      spec:
        description: Spec for the infra provider account credential.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialSpec
      status:
        description: Status of the infra provider account credential.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialStatus
      typeMeta:
        description: Metadata describing the type of the resource.
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
  vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialMetadata:
    description: CredentialMetadata identifies credential details and purposes.
    type: object
    properties:
      provider:
        description: The infra provider of this account credential.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.InfraProvider
      providerAcctId:
        description: The account ID for the cloud infrastructure provider account.
        type: string
      serviceAssociations:
        description: >-
          Service associations lists the Tanzu Mission Control service(s) that
          can use this credential.
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Service
  vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialSpec:
    description: CredentialSpec is an infra provider specific credential.
    type: object
    properties:
      awsCred:
        description: AWS credential.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.AWSCredential
      metadata:
        description: Properties of the credential.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialMetadata
  vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialStatus:
    description: Status of credential resource.
    type: object
    properties:
      commonStatus:
        description: Common statuses.
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
  vmware.tanzu.mc.v1alpha.account.provider.credential.FullName:
    description: |-
      Full name of the infra provider account credential.
      These values identify credentials and what purpose they serve.
    type: object
    properties:
      name:
        description: Name to give the credential.
        type: string
      orgId:
        description: Org Id that owns this infra provider account and credential.
        type: string
  vmware.tanzu.mc.v1alpha.account.provider.credential.InfraProvider:
    type: string
    enum:
      - UNKNOWN_PROVIDER
      - AWS
    default: UNKNOWN_PROVIDER
    description: |-
      One or more supported cloud infrastructure providers.

       - UNKNOWN_PROVIDER: Unknown infra provider.
       - AWS: AWS.
  vmware.tanzu.mc.v1alpha.account.provider.credential.Service:
    type: string
    enum:
      - UNKNOWN_SERVICE
      - ALL
      - LCM
      - DATA_PROTECTION
      - SONOBUOY
    default: UNKNOWN_SERVICE
    description: |-
      Service list.

       - UNKNOWN_SERVICE: Unknown service.
       - ALL: All.
       - LCM: LCM.
       - DATA_PROTECTION: DATA_PROTECTION.
       - SONOBUOY: SONOBUOY.
  vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta:
    type: object
    properties:
      group:
        type: string
        description: >-
          Group this resource belongs to, if none is given the group is
          `default`.
      labels:
        type: object
        additionalProperties:
          type: string
        description: Labels to apply to the object.
      uid:
        type: string
        description: UID for the object.
      resourceVersion:
        type: string
        description: 'Version of the resource, increments on changes.'
      creationTime:
        type: string
        format: date-time
        description: Creation time of the object.
      updateTime:
        type: string
        format: date-time
        description: Update time of the object.
      description:
        type: string
        description: Description of the resource.
      annotations:
        type: object
        additionalProperties:
          type: string
        description: >-
          Annotations for the object. Annotations hold system level information
          provisioned by controllers.
      parentReferences:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectReference'
        description: Hard object references to parents of this resource.
    description: Holds general shared object metadatas.
  vmware.tanzu.mc.v1alpha.common.meta.ObjectReference:
    type: object
    properties:
      rid:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.RID'
        description: RID for the object.
      uid:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.UID'
        description: UID for the object.
    description: ObjectReference references a foreign resource.
  vmware.tanzu.mc.v1alpha.common.meta.RID:
    type: object
    properties:
      value:
        type: string
        description: RID for the object.
    description: RID is a serialization of the FullName for a resource.
  vmware.tanzu.mc.v1alpha.common.meta.TypeMeta:
    type: object
    properties:
      kind:
        type: string
        description: Kind of the type.
      version:
        type: string
        description: Version of the type.
      package:
        type: string
        description: Package of the type.
    description: Holds general type metadatas.
  vmware.tanzu.mc.v1alpha.common.meta.UID:
    type: object
    properties:
      value:
        type: string
        description: UID for the object.
    description: UID is a unique identifier for a resource.
  vmware.tanzu.mc.v1alpha.common.status.ResourceHealth:
    type: object
    properties:
      health:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceHealth.Health
        description: Health of a resource.
      message:
        type: string
        title: 'Additional information e.g., reason for not HEALTHY'
    description: Health of a resource.
  vmware.tanzu.mc.v1alpha.common.status.ResourceHealth.Health:
    type: string
    enum:
      - UNKNOWN
      - HEALTHY
      - WARNING
      - UNHEALTHY
      - DISCONNECTED
    default: UNKNOWN
    description: |-
      Health describes the health of a resource.

       - UNKNOWN: Unknown health.
       - HEALTHY: Resource is healthy.
       - WARNING: Resource is in warning state.
       - UNHEALTHY: Resource is unhealthy.
       - DISCONNECTED: Resource is disconnected.
  vmware.tanzu.mc.v1alpha.common.status.ResourceState:
    type: object
    properties:
      state:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceState.State
        description: State of a resource.
      message:
        type: string
        description: 'Additional information e.g., reason for ERROR state.'
      stage:
        type: string
        description: >-
          Stage holds substages within a state e.g., RESIZING,
          CREATING_CONTROL_PLANE.
    description: State of a resource.
  vmware.tanzu.mc.v1alpha.common.status.ResourceState.State:
    type: string
    enum:
      - UNKNOWN
      - PENDING
      - PROCESSING
      - CREATING
      - COMPLETE
      - READY
      - DELETING
      - ERROR
      - DETACHING
    default: UNKNOWN
    description: |-
      State describes the state of a resource.

       - UNKNOWN: Unknown state.
       - PENDING: Resource is pending processing.
       - PROCESSING: Processing the resource.
       - CREATING: Resource is being created.
       - COMPLETE: Processing complete.
       - READY: Resource is ready state.
       - DELETING: Resource is being deleted.
       - ERROR: Error in processing.
       - DETACHING: Resource is being detached.
  vmware.tanzu.mc.v1alpha.common.status.ResourceStatus:
    type: object
    properties:
      state:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceState'
        description: State of a resource.
      health:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceHealth'
        description: Health of a resource.
    description: Status of a resource.
  vmware.tanzu.mc.v1alpha.account.provider.credential.GetCredentialIAMPolicyResponse:
    type: object
    properties:
      policyList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Credential policy.
    description: GetCredentialIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.account.provider.credential.PatchCredentialIAMPolicyRequest:
    type: object
    properties:
      fullName:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.FullName
        description: Credential full_name.
      bindingDeltaList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.BindingDelta'
        description: Binding delta to be applied.
    description: PatchCredentialIAMPolicy request message.
  vmware.tanzu.mc.v1alpha.account.provider.credential.PatchCredentialIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: New policy object.
    description: PatchCredentialIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.account.provider.credential.TestCredentialIAMPermissionsRequest:
    type: object
    properties:
      fullName:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.FullName
        description: Credential full_name.
      permissions:
        type: array
        items:
          type: string
        description: List of permissions to test.
    description: TestCredentialIAMPermissions request message.
  vmware.tanzu.mc.v1alpha.account.provider.credential.TestCredentialIAMPermissionsResponse:
    type: object
    properties:
      permissions:
        type: array
        items:
          type: string
        description: List of allowed permissions.
      uid:
        type: string
        description: >-
          Unique ID of the resource. Coupled with FullName (RID), provides a
          stable unique

          identifier for the resource.
    description: TestCredentialIAMPermissions response message.
  vmware.tanzu.mc.v1alpha.account.provider.credential.UpdateCredentialIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Credential policy set.
    description: UpdateCredentialIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.common.policy.BindingDelta:
    type: object
    properties:
      role:
        type: string
        description: Role for binding.
      subject:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.Subject'
        description: Subject of rolebinding.
      op:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.common.policy.BindingDelta.OpType
        description: Type of operation.
    description: Used for modify policy apis.
  vmware.tanzu.mc.v1alpha.common.policy.BindingDelta.OpType:
    type: string
    enum:
      - ADD
      - DELETE
    default: ADD
    description: |-
      Type of operation associated with the list of rolebindings.

       - ADD: Appending rolebindings to the existing policy.
       - DELETE: Deleting rolebindings from the existing policy.
  vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy:
    type: object
    properties:
      rid:
        type: string
        description: Resource ID of the resource that this access policy is applied on.
      version:
        type: integer
        format: int32
        description: Policy version number.
      roleBindings:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.RoleBinding'
        description: List of role bindings associated with the policy.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for this policy.
    description: Representation of an iam policy.
  vmware.tanzu.mc.v1alpha.common.policy.RoleBinding:
    type: object
    properties:
      role:
        type: string
        description: Role for this rolebinding -max length for role is 126.
      subjects:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.Subject'
        description: Subject of rolebinding.
    description: Representation of an iam role-binding in resource manager.
  vmware.tanzu.mc.v1alpha.common.policy.Subject:
    type: object
    properties:
      name:
        type: string
        description: Subject name - allow max characters for email - 320.
      kind:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.Subject.Kind'
        description: Subject type.
    description: Representation of a subject in resource manager.
  vmware.tanzu.mc.v1alpha.common.policy.Subject.Kind:
    type: string
    enum:
      - UNKNOWN
      - GROUP
      - SERVICEACCOUNT
      - USER
    default: UNKNOWN
    description: |-
      Kind of subject.

       - UNKNOWN: Subject is a unknown.
       - GROUP: Subject is a group.
       - SERVICEACCOUNT: Subject is a service.
       - USER: Subject is a user.
  vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Credential schema.
    description: Response with a Credential schema.
  vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.account.provider.credential.CredentialTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Credential schema template.
    description: Response with a Credential schema template.
  google.protobuf.Any:
    type: object
    properties:
      typeUrl:
        type: string
      value:
        type: string
        format: byte
  grpc.gateway.runtime.StreamError:
    type: object
    properties:
      grpcCode:
        type: integer
        format: int32
      httpCode:
        type: integer
        format: int32
      message:
        type: string
      httpStatus:
        type: string
      details:
        type: array
        items:
          $ref: '#/definitions/google.protobuf.Any'
  vmware.tanzu.mc.v1alpha.account.provider.credential.CreateCredentialRequest:
    description: Request to create a Credential.
    type: object
    properties:
      credential:
        description: Credential to create.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
  vmware.tanzu.mc.v1alpha.account.provider.credential.CreateCredentialResponse:
    description: Response from creating a Credential.
    type: object
    properties:
      credential:
        description: Credential created.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
  vmware.tanzu.mc.v1alpha.account.provider.credential.DeleteCredentialResponse:
    description: Response from deleting a Credential.
    type: object
    properties:
      message:
        description: Message regarding deletion.
        type: string
  vmware.tanzu.mc.v1alpha.account.provider.credential.GetCredentialResponse:
    description: Response from getting a Credential.
    type: object
    properties:
      credential:
        description: Credential returned.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
  vmware.tanzu.mc.v1alpha.account.provider.credential.ListCredentialsResponse:
    description: Response from listing Credentials.
    type: object
    properties:
      credentials:
        description: List of credentials.
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
      nextPageToken:
        description: Token to retrieve next page of records.
        type: string
      totalCount:
        description: Total count.
        type: string
        format: uint64
  vmware.tanzu.mc.v1alpha.account.provider.credential.PatchCredentialRequest:
    description: Request to patch a Credential.
    type: object
    properties:
      credential:
        description: Patch Credential.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
  vmware.tanzu.mc.v1alpha.account.provider.credential.PatchCredentialResponse:
    description: Response from patching a Credential.
    type: object
    properties:
      credential:
        description: Credential to patch.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
  vmware.tanzu.mc.v1alpha.account.provider.credential.SearchScope:
    description: 'Scope to search by, any fields left empty will be considered all (*).'
    type: object
    properties:
      name:
        description: Scope search to the specified name; supports globbing; default (*).
        type: string
  vmware.tanzu.mc.v1alpha.account.provider.credential.UpdateCredentialRequest:
    description: Request to update (overwrite) a Credential.
    type: object
    properties:
      credential:
        description: Update Credential.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
  vmware.tanzu.mc.v1alpha.account.provider.credential.UpdateCredentialResponse:
    description: Response from updating a Credential.
    type: object
    properties:
      credential:
        description: Credential updated.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
  vmware.tanzu.mc.v1alpha.account.provider.credential.WatchCredentialsResponse:
    description: Streamed response from watching Credentials.
    type: object
    properties:
      credential:
        description: Credential event.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Credential
      type:
        description: Type of event.
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.WatchCredentialsResponse.EventType
  vmware.tanzu.mc.v1alpha.account.provider.credential.WatchCredentialsResponse.EventType:
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
    type: string
    default: CREATE
    enum:
      - CREATE
      - UPDATE
      - DELETE
  vmware.tanzu.mc.v1alpha.common.options.OffsetPaginationOptions:
    type: object
    properties:
      offset:
        type: string
        format: uint64
        description: Offset at which to start returning records.
      size:
        type: string
        format: uint64
        description: Number of records to return.
    description: Options to paginate a response using offsets.
  vmware.tanzu.mc.v1alpha.common.options.TokenPaginationOptions:
    type: object
    properties:
      size:
        type: string
        format: int64
        description: Number of records to return.
      pageToken:
        type: string
        description: Token to specify a page of returning records.
    description: Options to paginate a response using page size and token.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: PermissionTemplate schema.
    description: Response with a PermissionTemplate schema.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: PermissionTemplate schema template.
    description: Response with a PermissionTemplate schema template.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: Org Id.
      name:
        type: string
        description: Name of the permission template.
    description: Full name of the permission template.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.GetPermissionTemplateResponse:
    type: object
    properties:
      permissiontemplate:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplate
        description: PermissionTemplate returned.
    description: Response from getting a PermissionTemplate.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.ListPermissionTemplatesResponse:
    type: object
    properties:
      permissiontemplates:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplate
        description: List of permissiontemplates.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing PermissionTemplates.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplate:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.FullName
        description: Full name for the permission template.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the permission template.
      spec:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateSpec
        description: Spec for PermissionTemplate.
      status:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateStatus
        description: Status of the PermissionTemplate.
    description: >-
      A permission template contains a set of permissions that an infrastructure
      provider

      account must have to allow an Tanzu Mission Control service to operate on
      resources.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateSpec:
    type: object
    properties:
      provider:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.InfraProvider
        description: Infrastructure provider that the template is for.
      providerAcctId:
        type: string
        description: |-
          Infrastructure provider account ID that the template is for.
          A template might be scoped for a particular provider account.
      serviceAssociation:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.credential.Service
        description: >-
          Service association identifies the Tanzu Mission Control service the
          permissions are scoped for.
      template:
        type: string
        description: The permission template itself.
    description: The Permission Template Spec.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplateStatus:
    type: object
    properties:
      commonStatus:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Common statuses.
    description: Status of PermissionTemplate resource.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.SearchScope:
    type: object
    properties:
      group:
        type: string
        description: Scope search to the specified group; supports globbing; default (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.WatchPermissionTemplatesResponse:
    type: object
    properties:
      permissiontemplate:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.PermissionTemplate
        description: PermissionTemplate event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.WatchPermissionTemplatesResponse.EventType
        description: Type of event.
    description: Streamed response from watching PermissionTemplates.
  vmware.tanzu.mc.v1alpha.account.provider.permissiontemplate.WatchPermissionTemplatesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.cloud.account.AWSRoleBasedConfig:
    type: object
    properties:
      role:
        type: string
        description: Role to assume.
    description: AWS role based config.
  vmware.tanzu.mc.v1alpha.cloud.account.AWSSecretBasedConfig:
    type: object
    properties:
      accountId:
        type: string
        description: User's AWS account ID.
      accessKey:
        type: string
        description: User's AWS access key.
      secretKey:
        type: string
        description: User's secret key.
    description: AWS secret based config.
  vmware.tanzu.mc.v1alpha.cloud.account.Account:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.FullName'
        description: Full name for the provider accounts.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the provisioned cluster object.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.AccountSpec'
        description: Spec for Account.
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.AccountStatus'
        description: Status of the Account.
    description: A cloud provider account details.
  vmware.tanzu.mc.v1alpha.cloud.account.AccountSpec:
    type: object
    properties:
      cloudProviderConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderVendorSpecificConfig
        description: User's cloud provider account.
    description: The Account spec.
  vmware.tanzu.mc.v1alpha.cloud.account.AccountStatus:
    type: object
    properties:
      commonStatus:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Common statuses.
    description: Status of Account resource.
  vmware.tanzu.mc.v1alpha.cloud.account.ApplyAccountRequest:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Account to apply.
    description: Request to apply an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.ApplyAccountResponse:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Account applied.
    description: Response from applying an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderAWSAccountConfiguration:
    type: object
    properties:
      awsRole:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.AWSRoleBasedConfig'
        description: Role based config.
      awsSecret:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.AWSSecretBasedConfig
        description: Secret based config.
    description: Cloud provider AWS specific account details.
  vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderAzureAccountConfiguration:
    type: object
    properties:
      accountId:
        type: string
        description: User's Azure account ID.
    description: Cloud provider Azure specific account details.
  vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderGCPAccountConfiguration:
    type: object
    properties:
      accountId:
        type: string
        description: User's GCP account ID.
    description: Cloud provider GCP specific account details.
  vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderVSphereAccountConfiguration:
    type: object
    properties:
      endpoint:
        type: string
        description: User's Vsphere endpoint.
    description: Cloud provider vSphere specific account details.
  vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderVendorSpecificConfig:
    type: object
    properties:
      awsConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderAWSAccountConfiguration
        description: Provider AWS specific config.
      azureConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderAzureAccountConfiguration
        description: Provider Azure specific config.
      vsphereConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderVSphereAccountConfiguration
        description: Provider vSphere specific config.
      gcpConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.CloudProviderGCPAccountConfiguration
        description: Provider GCP specific config.
    description: Cloud provider specific configuration for user accounts.
  vmware.tanzu.mc.v1alpha.cloud.account.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: Org ID of the cluster organization.
      name:
        type: string
        description: Name of the account.
    description: Full name of the provider accounts.
  vmware.tanzu.mc.v1alpha.cloud.account.GetAccountOptionsResponse:
    type: object
    properties:
      provider:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.infra.Provider'
        description: Account provider.
      awsInstanceType:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.InstanceTypeAWS'
        description: AWS specific instance types.
    description: Response containing account options.
  vmware.tanzu.mc.v1alpha.cloud.account.InstanceTypeAWS:
    type: object
    properties:
      instanceType:
        type: array
        items:
          type: string
        description: List of instance type.
    description: AWS vendor-specific instance type.
  vmware.tanzu.mc.v1alpha.cloud.account.ListAccountOptionsResponse:
    type: object
    properties:
      providerList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.infra.Provider'
        description: List of providers.
    description: Response to list account options.
  vmware.tanzu.mc.v1alpha.common.infra.FullName:
    type: object
    properties:
      name:
        type: string
        description: Name of the provider.
    description: Full name of the cloud providers.
  vmware.tanzu.mc.v1alpha.common.infra.Provider:
    type: object
    properties:
      name:
        type: string
        description: Name of the provider.
      providerInfo:
        type: string
        description: Provider information.
    description: The provider spec spec.
  vmware.tanzu.mc.v1alpha.cloud.account.AccountSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.cloud.account.AccountSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Account schema.
    description: Response with an Account schema.
  vmware.tanzu.mc.v1alpha.cloud.account.AccountTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.cloud.account.AccountTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Account schema template.
    description: Response with an Account schema template.
  vmware.tanzu.mc.v1alpha.cloud.account.CreateAccountRequest:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Account to create.
    description: Request to create an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.CreateAccountResponse:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Account created.
    description: Response from creating an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.DeleteAccountResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.GetAccountResponse:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Account returned.
    description: Response from getting an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.ListAccountsResponse:
    type: object
    properties:
      accounts:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: List of accounts.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Accounts.
  vmware.tanzu.mc.v1alpha.cloud.account.PatchAccountRequest:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Patch Account.
    description: Request to patch an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.PatchAccountResponse:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Account to patch.
    description: Response from patching an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.SearchScope:
    type: object
    properties:
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.cloud.account.UpdateAccountRequest:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Update Account.
    description: Request to update (overwrite) an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.UpdateAccountResponse:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Account updated.
    description: Response from updating an Account.
  vmware.tanzu.mc.v1alpha.cloud.account.WatchAccountsResponse:
    type: object
    properties:
      account:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cloud.account.Account'
        description: Account event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cloud.account.WatchAccountsResponse.EventType
        description: Type of event.
    description: Streamed response from watching Accounts.
  vmware.tanzu.mc.v1alpha.cloud.account.WatchAccountsResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.cluster.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: Org ID of the cluster organization.
      location:
        type: string
        description: Location of the cluster.
      name:
        type: string
        description: Name of the cluster in DNS-1123 format.
    description: Scope for the Cluster.
  vmware.tanzu.mc.v1alpha.cluster.auth.serverconfig.AuthenticationWebhook:
    type: object
    properties:
      endpoint:
        type: string
        description: Webhook URL endpoint.
      certificateAuthorityData:
        type: string
        description: >-
          TLS Certificate Authority (CA) in base64 encoded PEM format (same as
          kubeconfig).
      cacheTtl:
        type: string
        description: Token cache TTL.
    description: Authentication webhook endpoint configuration.
  vmware.tanzu.mc.v1alpha.cluster.auth.serverconfig.GetResponse:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.FullName'
        description: Cluster full_name.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the cluster server authentication config.
      status:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.auth.serverconfig.ServerConfigStatus
        description: Status for the ServerConfig.
    description: Response containing a cluster's server auth config.
  vmware.tanzu.mc.v1alpha.cluster.auth.serverconfig.ServerConfigStatus:
    type: object
    properties:
      authenticationWebhook:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.auth.serverconfig.AuthenticationWebhook
        description: Webhook configuration for this cluster's API server.
    description: The status of a ServerConfig.
  vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.AuthInfo:
    type: object
    properties:
      exec:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.ExecConfig
        description: Exec mirrors the "exec" field in the kubeconfig API.
    description: AuthInfo mirrors the similar type in the kubeconfig API.
  vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.ExecConfig:
    type: object
    properties:
      command:
        type: string
        description: Command to execute.
      args:
        type: array
        items:
          type: string
        description: Arguments to pass to the command when executing it.
      env:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.ExecEnvVar
        description: >-
          Env defines additional environment variables to expose to the process.
          These

          are unioned with the host's environment, as well as variables
          client-go uses

          to pass argument to the plugin.
      apiVersion:
        type: string
        description: >-
          Preferred input version of the ExecInfo. The returned ExecCredentials
          MUST use

          the same encoding version as the input.
    description: ExecConfig mirrors the similar type in the kubeconfig API.
  vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.ExecEnvVar:
    type: object
    properties:
      name:
        type: string
        description: Name of the environment variable.
      value:
        type: string
        description: Value for this environment variable.
    description: ExecEnvVar mirrors the similar type in the kubeconfig API.
  vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.GetResponse:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.FullName'
        description: Cluster full_name.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the cluster user authentication config.
      status:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.UserConfigStatus
        description: Status for the UserConfig.
    description: Response containing a cluster's user auth config.
  vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.UserConfigStatus:
    type: object
    properties:
      user:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.auth.userconfig.AuthInfo'
        description: AuthInfo mirrors the "user" field in the kubeconfig API.
    description: The status of a UserConfig.
  vmware.tanzu.mc.v1alpha.cluster.ApplyClusterRequest:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Cluster to apply.
    description: Request to apply a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.ApplyClusterResponse:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Cluster applied.
    description: Response from applying a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.Cluster:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.FullName'
        description: Full name for the cluster type.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the cluster object.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.ClusterSpec'
        description: Spec for the cluster.
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.ClusterStatus'
        description: Status for the cluster.
    description: >-
      Manage Kubernetes cluster operations with the cluster resource. Clusters
      can be provisioned from scratch or attached.

      The cluster resource has subresources available that provide additional
      operations.
    title: A Kubernetes cluster
  vmware.tanzu.mc.v1alpha.cluster.ClusterSpec:
    type: object
    properties:
      agent:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.agent.AgentSpec'
        description: Agent spec for the cluster.
      provisionedcluster:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterSpec
        description: ProvisionedCluster spec for the cluster.
      clusterGroupName:
        type: string
        description: Name of the cluster group to which this cluster belongs.
    description: The cluster spec.
  vmware.tanzu.mc.v1alpha.cluster.ClusterStatus:
    type: object
    properties:
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Common statuses.
      agent:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.agent.AgentStatus'
        description: Agent status for the cluster.
      health:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.health.HealthStatus'
        description: |-
          Health status for the cluster.
          This will be part of ClusterAgentStatus.
      provisionedcluster:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterStatus
        description: ProvisionedCluster status for the cluster.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.ClusterStatus.ClusterType
        description: Type of the cluster.
    description: Status of the cluster.
  vmware.tanzu.mc.v1alpha.cluster.ClusterStatus.ClusterType:
    type: string
    enum:
      - UNKNOWN
      - ATTACHED
      - PROVISIONED
    default: UNKNOWN
    description: |-
      Enum for cluster type.

       - UNKNOWN: UNKNOWN cluster type.
       - ATTACHED: ATTACHED cluster type.
       - PROVISIONED: PROVISIONED cluster type.
  vmware.tanzu.mc.v1alpha.cluster.agent.AgentSpec:
    type: object
    properties:
      extensions:
        type: array
        items:
          type: string
        description: |-
          List of the extensions to be deployed on the cluster (optional).
          The canonical names of the extensions to be deployed must be provided.
      namespace:
        type: string
        description: |-
          Namespace in which to deploy cluster agent extensions (optional).
          Defaults to "vmware-system-tmc" if no namespace is provided.
      clusterGroupName:
        type: string
        description: Name of the cluster group to which this cluster belongs.
    description: Spec of the agent resource.
  vmware.tanzu.mc.v1alpha.cluster.agent.AgentStatus:
    type: object
    properties:
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Common status.
      deploymentLink:
        type: string
        description: URL to fetch the installation YAML.
      metadata:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.agent.ClusterMetadata'
        description: Minimal metadata of the cluster.
      extensions:
        type: array
        items:
          type: string
        description: List of the extensions running on the cluster.
    description: Status of the agent resource.
  vmware.tanzu.mc.v1alpha.cluster.agent.ClusterMetadata:
    type: object
    properties:
      kubeServerVersion:
        type: string
        description: Kubernetes Server Git Version.
      masterNodeCount:
        type: string
        format: int64
        description: Total number of master nodes.
      workerNodeCount:
        type: string
        format: int64
        description: Total number of worker nodes.
      namespacesCount:
        type: string
        format: int64
        description: Total number of namespaces.
      podCount:
        type: string
        format: int64
        description: Total number of pods.
      vcpuCount:
        type: string
        format: int64
        description: Total vCPU.
      physicalMemory:
        type: string
        format: int64
        description: Total physical memory.
      region:
        type: string
        description: Cluster region.
      cloudProvider:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.agent.ClusterMetadata.CloudProvider
        description: Cluster cloud provider.
      lastUpdate:
        type: string
        format: date-time
        description: Timestamp when metadata was last updated on this cluster.
    description: Cluster metadata.
  vmware.tanzu.mc.v1alpha.cluster.agent.ClusterMetadata.CloudProvider:
    type: string
    enum:
      - UNKNOWN
      - NONE
      - AWS_EC2
      - GCP_GCE
      - AZURE_COMPUTE
      - VMWARE_VSPHERE
      - OPENSHIFT
    default: UNKNOWN
    description: |-
      CloudProvider definition - indicate the cloud provider.

       - UNKNOWN: Unknown cloud provider (default).
       - NONE: No cloud provider (likely bare metal).
       - AWS_EC2: AmazonWeb Services EC2.
       - GCP_GCE: Google.
       - AZURE_COMPUTE: Azure Compute.
       - VMWARE_VSPHERE: VMWare vSphere.
       - OPENSHIFT: OpenShift.
  vmware.tanzu.mc.v1alpha.cluster.health.ComponentGroupHealth:
    type: object
    properties:
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Overall Health status of the component.
      message:
        type: string
        description: Message providing details.
      componentsHealth:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.health.ComponentHealth'
        description: Health status of the components.
    title: |-
      Number of ComponentHealth objects and
      provides a summary health status for this category of data.
      e.g. multiple etcd instances
  vmware.tanzu.mc.v1alpha.cluster.health.ComponentHealth:
    type: object
    properties:
      instance:
        type: string
        description: Instance name of a component.
      timestamp:
        type: string
        format: date-time
        description: Timestamp of the record.
      healthStatus:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Health status of a component.
      message:
        type: string
        description: Message providing details.
    description: Health data for a component.
  vmware.tanzu.mc.v1alpha.cluster.health.HealthStatus:
    type: object
    properties:
      timestamp:
        type: string
        format: date-time
        description: Timestamp of the record.
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Health status of the cluster.
      message:
        type: string
        description: Message providing details.
      allocatedMemory:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.health.ResourceAllocation
        description: Memopry allocation of a cluster.
      allocatedCpu:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.health.ResourceAllocation
        description: CPU allocation of a cluster.
      numberOfNodes:
        type: integer
        format: int32
        description: Number of nodes in cluster.
      nodesHealth:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.health.NodeHealth'
        description: List of nodes and their health status in the cluster.
      etcdHealth:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.health.ComponentGroupHealth
        description: List of ETCD components' health status.
      schedulerHealth:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.health.ComponentHealth'
        description: Scheduler's health status.
      controllerManagerHealth:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.health.ComponentHealth'
        description: Controller manager's health status.
    description: >-
      Health Provides information about cluster metadata, overall cluster health
      status,

      individial component healths, resource allocations and number of pods per
      component.
  vmware.tanzu.mc.v1alpha.cluster.health.NodeHealth:
    type: object
    properties:
      nodeState:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.health.ComponentHealth'
        description: Status of Node.
      role:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.health.NodeRole'
        description: Role of Node.
      utilization:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.health.ResourceMetrics'
        description: Resource utilization of a component.
      message:
        type: string
        description: Message contains the raw data of the node.
      kubeletVersion:
        type: string
        description: Kubelet version reported by the node.
    description: Detailed health data for a node of cluster.
  vmware.tanzu.mc.v1alpha.cluster.health.NodeRole:
    type: string
    enum:
      - ROLE_UNDEFINED
      - ROLE_MASTER
      - ROLE_WORKER
    default: ROLE_UNDEFINED
    description: |-
      Roles of cluster nodes.

       - ROLE_UNDEFINED: Role undefined.
       - ROLE_MASTER: Role master.
       - ROLE_WORKER: Role worker.
  vmware.tanzu.mc.v1alpha.cluster.health.ResourceAllocation:
    type: object
    properties:
      allocatable:
        type: number
        format: float
        description: Allocatable is quantity of resource that can be allocated.
      requested:
        type: number
        format: float
        description: Requested is requested quantity of the resource.
      units:
        type: string
        description: >-
          Units is the unit on which resource can be measured e.g. mb,
          millicores etc.
    description: ResourceAllocation is used for CPU and Memory metrics of a cluster.
  vmware.tanzu.mc.v1alpha.cluster.health.ResourceMetrics:
    type: object
    properties:
      cpuCapacity:
        type: integer
        format: int32
        description: CPU capacity of a component.
      cpuAllocatable:
        type: integer
        format: int32
        description: CPU allocatable for a component.
      cpuUsage:
        type: integer
        format: int32
        description: CPU usage of a component.
      cpuLimits:
        type: integer
        format: int32
        description: CPU limit of a component.
      memCapacity:
        type: number
        format: float
        description: Memory capacity of a component.
      memAllocatable:
        type: number
        format: float
        description: Memory allocatable for a component.
      memUsage:
        type: number
        format: float
        description: Memory usage of a component.
      memLimits:
        type: number
        format: float
        description: Memory limits of a component.
      numberOfPods:
        type: integer
        format: int32
        description: Number of pods in a component.
    description: CPU and Memory metrics of a component.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.NetworkSpecAWSConfig:
    type: object
    properties:
      vpc:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.VPCAWSConfig
        description: This field describes VPC Config.
      subnets:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.SubnetAWSConfig
        description: This is a List of subnets.
    description: >-
      Network spec can be used to specify VPC and subnets used in the cluster or
      parameters to create VPC and subnets.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterNetworkConfig:
    type: object
    properties:
      podCidr:
        type: string
        description: Pod CIDR for Kubernetes pods.
      serviceCidr:
        type: string
        description: Service CIDR for Kubernetes services.
    description: Network related configuration for provisioned cluster.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterSpec:
    type: object
    properties:
      networkConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterNetworkConfig
        description: Network information for provisioned cluster.
      highAvailability:
        type: boolean
        format: boolean
        description: |-
          High Availability or Non High Availability cluster. HA cluster
          creates three control plane machines, and non-HA creates just one.
      cloudProviderConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorConfig
        description: Cloud vendor-specific config.
      version:
        type: string
        description: Kubernetes version of the cluster.
      accountName:
        type: string
        description: Name of the account in which to create the cluster.
      nodePool:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: |-
          List of node pools.
          At least one node pool is needed.
      clusterGroupName:
        type: string
        description: The cluster Group to which this cluster belongs.
    description: The provisioned cluster spec.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterStatus:
    type: object
    properties:
      commonStatus:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Common statuses.
      clusterState:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterStatus.ClusterState
        description: Current state of the cluster.
      conditions:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.Condition'
        description: >-
          The Conditions attached to this cluster resource.


          Condition 'UpgradeProgressing' with Status 'True' means an upgrade of
          the control plane

          and/or node pools is in progress. If the Status is 'False', the
          upgrade has halted due to an

          error.


          Condition 'VersionIsLatest' with Status 'True' indicates the cluster
          is using the latest

          version of Kubernetes supported by Tanzu. If the Status is 'False'
          this indicates that the

          cluster could be upgraded to a newer version. This condition may have
          a Status of 'Unknown'

          during cluster creation and upgrades.
      currentVersion:
        type: string
        description: >-
          The current version of the cluster's control plane. During an upgrade,

          the current_version may differ from the version defined in the Spec.
          The

          current_version will always be equal to the oldest Kubernetes version

          running amongst the control plane nodes.
      computedState:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterStatus.ClusterState
        description: >-
          Computed state of the cluster based on conditions. If state is
          'UNKNOWN', a user can

          interpret the state of the cluster via conditions.
    description: Status of provisioned cluster resource.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterStatus.ClusterState:
    type: string
    enum:
      - UNKNOWN
      - CREATING
      - READY
      - ERROR
      - PENDING_DELETE
      - UPGRADING
      - UPGRADE_FAILED
    default: UNKNOWN
    description: |-
      State describes the state of a resource.

       - UNKNOWN: Unknown state.
       - CREATING: Resource is pending processing.
       - READY: Processing the resource.
       - ERROR: Processing complete.
       - PENDING_DELETE: Error in processing.
       - UPGRADING: An upgrade is in progress.
       - UPGRADE_FAILED: An upgrade has failed.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorAWSConfig:
    type: object
    properties:
      controlPlaneVmFlavor:
        type: string
        description: Control plane instance type.
      sshKeyName:
        type: string
        description: SSH key name.
      region:
        type: string
        description: Region.
      azList:
        type: array
        items:
          type: string
        description: List of availability zones.
      networkSpec:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.NetworkSpecAWSConfig
        description: >-
          Network spec can be used to specify VPC and subnets used in the
          cluster or parameters to create VPC and subnets.
    description: AWS vendor-specific provider configuration for provisioned cluster object.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorAzureConfig:
    type: object
    properties:
      controlPlaneVmFlavor:
        type: string
        description: Control plane instance type.
    description: >-
      Azure vendor-specific provider configuration for provisioned cluster
      object.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorConfig:
    type: object
    properties:
      awsConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorAWSConfig
        description: AWS specific config.
      azureConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorAzureConfig
        description: Azure specific config.
      vsphereConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorVSphereConfig
        description: VSphere specific config.
      gcpConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorGCPConfig
        description: GCP specific config.
    description: Cloud provider specific config for provisioned cluster.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorGCPConfig:
    type: object
    properties:
      controlPlaneVmFlavor:
        type: string
        description: Control plane instance type.
    description: GCP vendor-specific provider configuration for provisioned cluster object.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.ProvisionedClusterVendorVSphereConfig:
    type: object
    properties:
      controlPlaneVmFlavor:
        type: string
        description: Control plane instance type.
    description: >-
      VSphere vendor-specific provider configuration for provisioned cluster
      object.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.SubnetAWSConfig:
    type: object
    properties:
      id:
        type: string
        description: >-
          AWS subnet ID. The rest of the fields are ignored if this field is
          specified..
      cidrBlock:
        type: string
        description: |-
          CIDR for AWS subnet.
          This CIDR block must in the range of AWS VPC CIDR block..
      availabilityZone:
        type: string
        title: AWS availability zone e.g. us-west-2a
      isPublic:
        type: boolean
        format: boolean
        description: Public subnet or private subnet.
    description: Subnet configuration for network spec.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.VPCAWSConfig:
    type: object
    properties:
      id:
        type: string
        description: >-
          AWS VPC ID. The rest of the fields are ignored if this field is
          specified..
      cidrBlock:
        type: string
        description: |-
          CIDR for AWS VPC.
          A valid example is 10.0.0.0/16.
          For the allowed ranges, please refer to AWS documentation..
    description: VPC configuration for network spec.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: Org ID of the cluster organization.
      location:
        type: string
        description: Location of the cluster.
      clusterName:
        type: string
        description: Name of the cluster in DNS-1123 format.
      provisionedclusterName:
        type: string
        description: Name of the provsioned cluster in DNS-1123 format.
      name:
        type: string
        description: Name of the node pool in DNS-1123 format.
    description: Full name of the node pool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Type meta for resource.
      fullName:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.FullName
        description: Full name for the node pool.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the node pool object.
      errorReason:
        type: string
        description: Error message.
      spec:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolSpec
        description: Spec for node pool.
      status:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolStatus
        description: Status of the node pool.
    description: A group of nodes within a cluster that all have the same configuration.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolSpec:
    type: object
    properties:
      cloudProviderConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorConfig
        description: Cloud vendor-specific config.
      workerNodeCount:
        type: string
        format: int64
        description: Number of worker nodes.
      taint:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodeTaint
        description: 'If specified, the node''s taints.'
      nodeLabelMap:
        type: object
        additionalProperties:
          type: string
        description: Node labels.
      cloudLabelMap:
        type: object
        additionalProperties:
          type: string
        description: Cloud labels.
      version:
        type: string
        description: Kubernetes version of the node pool.
    description: The node pool spec.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolStatus:
    type: object
    properties:
      commonStatus:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Common statuses.
      nodePoolState:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolStatus.NodePoolState
        description: Current state of the node pool.
      conditions:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.Condition'
        description: >-
          The conditions attached to this node pool resource.


          Condition 'UpgradeProgressing' with Status 'True' means an upgrade of
          the nodes in this node

          pool is in progress. If the Status is 'False', the upgrade has halted
          due to an error.


          Condition 'VersionIsLatest' with Status 'True' indicates the node pool
          is using the latest

          version of Kubernetes supported by Tanzu. If the Status is 'False'
          this indicates that the

          node pool could be upgraded to a newer version. This condition may
          have a Status of 'Unknown'

          during node pool creation and upgrades.
      currentVersion:
        type: string
        description: |-
          The current version of the node pool. During an upgrade, the
          current_version may differ from the version defined in the Spec. The
          current_version will always be equal to the oldest Kubernetes version
          running amongst the node pool nodes.
      computedState:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolStatus.NodePoolState
        description: >-
          Computed state of the node pool based on conditions. If state is
          'UNKNOWN', a user can

          interpret the state of the node pool via conditions.
    description: Status of node pool resource.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolStatus.NodePoolState:
    type: string
    enum:
      - UNKNOWN
      - CREATING
      - READY
      - ERROR
      - PENDING_DELETE
      - RESIZING
      - UPGRADING
      - UPGRADE_FAILED
      - WAITING
    default: UNKNOWN
    description: |-
      State describes the state of a resource.

       - UNKNOWN: Unknown state.
       - CREATING: Resource is pending processing.
       - READY: Processing the resource.
       - ERROR: Processing complete.
       - PENDING_DELETE: Error in processing.
       - RESIZING: Resizing state.
       - UPGRADING: An upgrade is in progress.
       - UPGRADE_FAILED: An upgrade has failed.
       - WAITING: The cluster is not created yet. so wait till then.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorAWSConfig:
    type: object
    properties:
      instanceType:
        type: string
        description: Node instance type.
      zone:
        type: array
        items:
          type: string
        description: List of available zones.
    description: AWS vendor-specific provider configuration for node pool object.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorAzureConfig:
    type: object
    description: Azure vendor-specific provider configuration for node pool object.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorConfig:
    type: object
    properties:
      awsConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorAWSConfig
        description: AWS specific config.
      azureConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorAzureConfig
        description: Azure specific config.
      vsphereConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorVSphereConfig
        description: VSphere specific config.
      gcpConfig:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorGCPConfig
        description: GCP specific config.
    description: Cloud provider specific config for node pool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorGCPConfig:
    type: object
    description: GCP vendor-specific provider configuration for node pool object.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolVendorVSphereConfig:
    type: object
    description: VSphere vendor-specific provider configuration for node pool object.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodeTaint:
    type: object
    properties:
      taintEffect:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodeTaint.Effect
        description: Current effect state of the node pool.
      key:
        type: string
        description: The taint key to be applied to a node.
      value:
        type: string
        description: The taint value corresponding to the taint key.
    description: |-
      The node this Taint is attached to has the "effect" on
      any pod that does not tolerate the Taint.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodeTaint.Effect:
    type: string
    enum:
      - UNKNOWN
      - NO_SCHEDULE
      - NO_EXECUTE
      - PREFER_NO_SCHEDULE
      - EFFECT_UNSPECIFIED
    default: UNKNOWN
    description: >-
      The effect of the taint on pods that do not tolerate the taint.

      Valid effects are NoSchedule, NoExecute, PreferNoSchedule and
      EffectUnspecified.

       - UNKNOWN: Unknown effect.
       - NO_SCHEDULE: Pods that do not tolerate this taint are not scheduled on the node.
       - NO_EXECUTE: Pods are evicted from the node if are already running on the node.
       - PREFER_NO_SCHEDULE: Avoids scheduling Pods that do not tolerate this taint onto the node.
       - EFFECT_UNSPECIFIED: Unspecified effect.
  vmware.tanzu.mc.v1alpha.common.status.Condition:
    type: object
    properties:
      type:
        type: string
        description: Type of condition.
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.Condition.Status'
        description: |-
          Status of the condition, one of True, False, Unknown.
          Default is Unknown.
      severity:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.Condition.Severity'
        description: |-
          Severity of condition, one of Error, Warning, Info.
          Default is Error.
      lastTransitionTime:
        type: string
        format: date-time
        description: Last time the condition transit from one status to another.
      reason:
        type: string
        description: One-word reason for the condition's last transition.
      message:
        type: string
        description: Human readable message indicating details about last transition.
    title: >-
      Condition describes the status of resource.

      Each resource should provide meaningful set of conditions.

      For Tanzu, each resource must support 'Ready' and 'Scheduled' conditions

      Here is meaning of base conditions and their states:

      Condition 'Ready' with Status 'True' means user action has reached the
      desired state

      Condition 'Ready' with Status 'False' means user action failed to reach
      desired state.

      Condition 'Scheduled' with Status 'False' means user action can not be
      scheduled due to some reason

      Condition 'Scheduled' with Status 'True', Ready unknown means job is
      scheduled and system is working/will work on reaching to desires state

      Condition 'Scheduled' with Status 'Unknown' means system does not know the
      status of the action
  vmware.tanzu.mc.v1alpha.common.status.Condition.Severity:
    type: string
    enum:
      - ERROR
      - WARNING
      - INFO
    default: ERROR
    description: |-
      Severity expresses the severity of a Condition Type failing.

       - ERROR: Failure of a condition type should be viewed as an error.
       - WARNING: Failure of a condition type should be viewed as a warning, but that things could still work.
       - INFO: Failure of a condition type should be viewed as purely informational, and that things could still work.
  vmware.tanzu.mc.v1alpha.common.status.Condition.Status:
    type: string
    enum:
      - UNKNOWN
      - 'TRUE'
      - 'FALSE'
    default: UNKNOWN
    description: |-
      Status describes the state of condition.

       - UNKNOWN: Controller is actively working to achieve the condition.
       - TRUE: Reconciliation has succeeded. Once all transition conditions have succeeded, the "happy state" condition should be set to True..
       - FALSE: Reconciliation has failed. This should be a terminal failure state until user action occurs.
  vmware.tanzu.mc.v1alpha.cluster.GetClusterEffectivePolicySetResponse:
    type: object
    properties:
      policySet:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.EffectivePolicySet'
        description: Cluster effective policy set.
    description: GetClusterEffectivePolicySet response message.
  vmware.tanzu.mc.v1alpha.common.policy.EffectivePolicySet:
    type: object
    properties:
      rid:
        type: string
        description: ID of the resource that these policies are effective on.
      rtype:
        type: string
        description: Type of the resource.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for this set of policies.
      inheritedEffectivePolicies:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicySpec'
        description: >-
          Set of effective policies (PolicyRID: PolicySpec) that are inherited
          from the parent resource.
      directEffectivePolicies:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicySpec'
        description: >-
          Set of effective policies (PolicyRID: PolicySpec) that are directly
          set on the resource.
      directIneffectivePolicies:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicySpec'
        description: >-
          Set of ineffective policies (PolicyRID: PolicySpec) that are directly
          set on the resource.
    description: Representation of an effective policy set.
  vmware.tanzu.mc.v1alpha.common.policy.List:
    type: object
    properties:
      values:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicyValues'
        description: List of PolicyValues.
    description: List input value.
  vmware.tanzu.mc.v1alpha.common.policy.Map:
    type: object
    properties:
      value:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicyValues'
        description: >-
          Key-value pairs where the key is a string, and value can be any
          PolicyValue.
    description: Key-Value pair input value.
  vmware.tanzu.mc.v1alpha.common.policy.PolicySpec:
    type: object
    properties:
      policyType:
        type: string
        description: Type of the policy object.
      recipeName:
        type: string
        description: Recipe name for the custom template defined for each policy type.
      inputValues:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicyValues'
        description: Recipe variable values.
      policy:
        type: string
        description: Generated policy contents (read-only).
    description: The policy spec.
  vmware.tanzu.mc.v1alpha.common.policy.PolicyValues:
    type: object
    properties:
      int:
        type: integer
        format: int32
        description: Integer value.
      str:
        type: string
        description: String value.
      boolean:
        type: boolean
        format: boolean
        description: Boolean value.
      map:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.Map'
        description: Map of key-value pairs.
      list:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.List'
        description: List of PolicyValues.
    description: Policy input values.
  vmware.tanzu.mc.v1alpha.cluster.GetClusterIAMPolicyResponse:
    type: object
    properties:
      policyList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Cluster policy.
    description: GetClusterIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.cluster.PatchClusterIAMPolicyRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.FullName'
        description: Cluster full_name.
      bindingDeltaList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.BindingDelta'
        description: Binding delta to be applied.
    description: PatchClusterIAMPolicy request message.
  vmware.tanzu.mc.v1alpha.cluster.PatchClusterIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: New policy object.
    description: PatchClusterIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.cluster.TestClusterIAMPermissionsRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.FullName'
        description: Cluster full_name.
      permissions:
        type: array
        items:
          type: string
        description: List of permissions to test.
    description: TestClusterIAMPermissions request message.
  vmware.tanzu.mc.v1alpha.cluster.TestClusterIAMPermissionsResponse:
    type: object
    properties:
      permissions:
        type: array
        items:
          type: string
        description: List of allowed permissions.
      uid:
        type: string
        description: >-
          Unique ID of the resource. Coupled with FullName (RID), provides a
          stable unique

          identifier for the resource.
    description: TestClusterIAMPermissions response message.
  vmware.tanzu.mc.v1alpha.cluster.UpdateClusterIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Cluster policy set.
    description: UpdateClusterIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.cluster.ListClusterOptionsResponse:
    type: object
    properties:
      awsOptions:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSProviderOptions
        description: AWS specific cluster options.
    description: Response from listing cluster options.
  vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSAccountAccessStatus:
    type: object
    properties:
      state:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSAccountAccessStatus.State
        description: The status of our access to target AWS account.
      message:
        type: string
        description: The detailed message explaining the reason for the state.
    description: The status of the access to the target AWS account.
  vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSAccountAccessStatus.State:
    type: string
    enum:
      - UNKNOWN
      - PENDING
      - SUCCEEDED
      - FAILED
    default: UNKNOWN
    description: |-
      The state of our access to the AWS account.

       - UNKNOWN: Unknown status.
       - PENDING: Still in the process of accessing the customer's AWS account.
       - SUCCEEDED: Successfully accessed customer's AWS account.
       - FAILED: Failed to access customer's AWS account.
  vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSProviderOptions:
    type: object
    properties:
      regionalOptions:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSRegionalOptions
        description: List of regional options for the AWS cloud provider.
      accessStatus:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSAccountAccessStatus
        description: The information about of our access to the AWS account.
    description: AWS cloud provider specific options.
  vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSRegionalOptions:
    type: object
    properties:
      regionName:
        type: string
        description: Name of the AWS region.
      versionList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.cluster.Version'
        description: List of supported Kubernetes versions.
      zoneOptions:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSZoneOptions
        description: >-
          List of zones and their options within the region (eg. zone format:
          us-west-2a).
      vpcOptions:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSVPCOptions'
        description: List of VPCs.
      sshKeyName:
        type: array
        items:
          type: string
        description: List of AWS SSH key name.
    description: AWS cloud provider specific regional options.
  vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSSubnetOptions:
    type: object
    properties:
      subnetId:
        type: string
        description: ID of the AWS subnet.
      name:
        type: string
        description: Name of the AWS subnet.
      cidr:
        type: string
        description: CIDR of the AWS subnet.
      availabilityZone:
        type: string
        description: Availability zone that the subnet is belonged to.
      public:
        type: boolean
        format: boolean
        description: Public or private subnet.
    description: AWS cloud provider specific subnet options.
  vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSVPCOptions:
    type: object
    properties:
      vpcId:
        type: string
        description: ID of the AWS VPC.
      subnet:
        type: array
        items:
          type: string
        description: List of subnets that is supported in the VPC.
      subnetOptions:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSSubnetOptions
        description: List of subnets that is supported in the VPC.
      name:
        type: string
        description: Name of the AWS VPC.
      cidr:
        type: string
        description: CIDR of the AWS VPC.
    description: AWS cloud provider specific vpc options.
  vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSZoneOptions:
    type: object
    properties:
      zoneName:
        type: string
        description: Name of the AWS zone.
      instanceType:
        type: array
        items:
          type: string
        description: List of instance types that is supported in the zone.
    description: AWS cloud provider specific zone options.
  vmware.tanzu.mc.v1alpha.common.cluster.Version:
    type: object
    properties:
      name:
        type: string
        description: Name of the kubernetes version.
      isDefault:
        type: boolean
        format: boolean
        description: Is default version.
      isEligible:
        type: boolean
        format: boolean
        description: Is this version eligible to be used in the current context.
      upstreamVersion:
        type: string
        description: The upstream Kubernetes version.
      osFamily:
        type: string
        description: The OS family this version belongs to.
      metadata:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.cluster.VersionMetadata'
        description: The metadata associated with this version.
    description: The kubernetes version spec.
  vmware.tanzu.mc.v1alpha.common.cluster.VersionMetadata:
    type: object
    properties:
      description:
        type: string
        description: A general description of the version.
      osDescription:
        type: string
        description: >-
          A description of the operating system. Example, "Ubuntu 18.04 LTS" or
          "Amazon Linux 2".
    description: Metadata that is associated with this version.
  vmware.tanzu.mc.v1alpha.cluster.ClusterSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.cluster.ClusterSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Cluster schema.
    description: Response with a Cluster schema.
  vmware.tanzu.mc.v1alpha.cluster.ClusterTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.cluster.ClusterTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Cluster schema template.
    description: Response with a Cluster schema template.
  vmware.tanzu.mc.v1alpha.cluster.CreateClusterRequest:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Cluster to create.
    description: Request to create a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.CreateClusterResponse:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Cluster created.
    description: Response from creating a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.DeleteClusterResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.GetClusterResponse:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Cluster returned.
    description: Response from getting a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.ListClustersResponse:
    type: object
    properties:
      clusters:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: List of clusters.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Clusters.
  vmware.tanzu.mc.v1alpha.cluster.PatchClusterRequest:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Patch Cluster.
    description: Request to patch a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.PatchClusterResponse:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Cluster to patch.
    description: Response from patching a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.SearchScope:
    type: object
    properties:
      group:
        type: string
        description: Scope search to the specified group; supports globbing; default (*).
      location:
        type: string
        description: >-
          Scope search to the specified location; supports globbing; default
          (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.cluster.UpdateClusterRequest:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Update Cluster.
    description: Request to update (overwrite) a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.UpdateClusterResponse:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Cluster updated.
    description: Response from updating a Cluster.
  vmware.tanzu.mc.v1alpha.cluster.WatchClustersResponse:
    type: object
    properties:
      cluster:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.Cluster'
        description: Cluster event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.WatchClustersResponse.EventType
        description: Type of event.
    description: Streamed response from watching Clusters.
  vmware.tanzu.mc.v1alpha.cluster.WatchClustersResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.cluster.inspection.ApplyInspectionRequest:
    type: object
    properties:
      inspection:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.Inspection'
        description: Inspection to apply.
    description: Request to apply an Inspection.
  vmware.tanzu.mc.v1alpha.cluster.inspection.ApplyInspectionResponse:
    type: object
    properties:
      inspection:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.Inspection'
        description: Inspection applied.
    description: Response from applying an Inspection.
  vmware.tanzu.mc.v1alpha.cluster.inspection.CISSpec:
    type: object
    properties:
      cisTargets:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.CISSpec.Targets
        description: List of Targets that the CIS plugin will run against.
    description: CIS security inspection specification.
  vmware.tanzu.mc.v1alpha.cluster.inspection.CISSpec.Targets:
    type: string
    enum:
      - UNKNOWN
      - MASTER
      - NODE
      - ETCD
      - CONTROL_PLANE
      - POLICIES
    default: UNKNOWN
    description: |-
      Targets is an enumeration of targets that CIS can run against.

       - UNKNOWN: Unknown refers to an undefined target.
       - MASTER: Target is the Master Node.
       - NODE: Target is all nodes apart from the Master.
       - ETCD: Target is the ETCD.
       - CONTROL_PLANE: Target is the control plane components.
       - POLICIES: Target is the policies on the cluster.
  vmware.tanzu.mc.v1alpha.cluster.inspection.ConformanceSpec:
    type: object
    description: Conformance inspection specification.
  vmware.tanzu.mc.v1alpha.cluster.inspection.E2ESpec:
    type: object
    description: E2E inspection specification.
  vmware.tanzu.mc.v1alpha.cluster.inspection.FieldSelector:
    type: object
    properties:
      namespace:
        type: string
        description: >-
          Regular expression for the targeted namespaces (for example, ".*" for
          all namespace, "default|vmware-system-tmc" for OR logic).
      objectKind:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.FieldSelector.ObjectKind
        description: >-
          Kind of the targeted object.

          When object_kind is provided, object_name should also be provided.

          If namespace field is also specified, namespace field should provide
          an exact namespace name, not a regex.
      objectName:
        type: string
        description: >-
          Name of the targeted object.

          When object_name is provided, object_kind should also be provided.

          If namespace field is also specified, namespace field should provide
          an exact namespace name, not a regex.
    title: >-
      Each field selector contains one or more chained operators, with AND
      logic.

      For example:

      to get logs from all namespaces: {"namespace"=".*"}

      to get logs form all the pods of a specified namespace:
      {"namespace"="ns1"}

      to get logs from a specified pod:
      {"namespace"="ns1","kind"="pod","name"="pod1"}
  vmware.tanzu.mc.v1alpha.cluster.inspection.FieldSelector.ObjectKind:
    type: string
    enum:
      - UNKNOWN
      - POD
    default: UNKNOWN
    description: |-
      Kind of to be filtered object.

       - UNKNOWN: Unknown kind.
       - POD: Field selector by Pod name.
  vmware.tanzu.mc.v1alpha.cluster.inspection.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: Org ID of the cluster organization.
      location:
        type: string
        description: Location of the cluster.
      clusterName:
        type: string
        description: Name of the cluster.
      name:
        type: string
        description: Name of the inspection object.
    description: FullName of the inspection.
  vmware.tanzu.mc.v1alpha.cluster.inspection.Inspection:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.FullName'
        description: Full name for the inspection.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the cluster object.
      spec:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionSpec
        description: Inspection spec.
      status:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionStatus
        description: Status of the Inspection object.
    description: >-
      Running an inspection verifies whether the cluster is certified conformant
      or security compliant.

      It is a diagnostic tool that helps you understand the state of a cluster
      by running a set of tests and

      provides clear informative reports about the cluster.
    title: Run an inspection on a cluster
  vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionSpec:
    type: object
    properties:
      scanType:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionSpec.InspectionType
        description: Type of the scan.
      conformanceSpec:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.ConformanceSpec
        description: Conformance inspection specification.
      e2eSpec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.E2ESpec'
        description: E2E inspection specification.
      liteSpec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.LiteSpec'
        description: Lite inspection specification.
      logsSpec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.LogsSpec'
        description: Logs inspection specification.
      cisSpec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.CISSpec'
        description: CIS security inspection specification.
    description: The cluster Inspection Spec.
  vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionSpec.InspectionType:
    type: string
    enum:
      - CONFORMANCE
      - E2E
      - LITE
      - LOGS
      - CIS
    default: CONFORMANCE
    description: |-
      Types of scan.

       - CONFORMANCE: Conformance inspection.
       - E2E: E2E inspection.
       - LITE: Lite inspection.
       - LOGS: Inspection to get logs.
       - CIS: Inspection to run CIS Security Benchmark.
  vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionStage:
    type: object
    properties:
      status:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionStage.Status
        description: State of a resource.
    description: Different stages of a sonobuoy inspection.
  vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionStage.Status:
    type: string
    enum:
      - UNKNOWN
      - RUNNING
      - PENDING
      - COMPLETE
      - UPLOAD
      - FINISH
      - STOP
      - ERROR
      - QUEUED
      - CANCEL
    default: UNKNOWN
    description: |-
      Status describes the status of the inspection.

       - UNKNOWN: Unknown - to be used if status of the current inspection is unknown.
       - RUNNING: Running - to indicate the inspection is currently running.
       - PENDING: Pending - to indicate that the inspection is waiting to be started.
       - COMPLETE: Complete - to indicate that the sonobuoy open source has completed the inspection.
       - UPLOAD: Upload - to indicate that the inspection results are being uploaded to S3.
       - FINISH: Finish - to indicate that the inspection has completed inspection + uploaded results to S3 successfully.
       - STOP: Stop - to stop the sonobuoy inspection.
       - ERROR: Error - to indicate that an error had occurred during the inspection.
       - QUEUED: Queued - to indicate that the inspection is queued and waiting to be applied.
       - CANCEL: CANCEL - to indicate that the inspection is canceled.
  vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionStatus:
    type: object
    properties:
      inspectionstatus:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionStage
        description: Common status for an resource.
      report:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.Report'
        description: Report details.
      conditions:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.Condition'
        description: >-
          Condition 'Scheduled' with Status 'Unknown' indicates that the
          inspection is pending

          Condition 'Scheduled' with 'True' and Condition 'Ready' with 'Unknown'
          indicates that the inspection is running

          Condition 'Ready' with 'True' indicates that the inspection is
          complete

          Condition 'Ready' with 'False' indicates that the inspection is in
          error state.
      computedState:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionStage.Status
        description: >-
          Computed state of the inspection based on conditions. If state is
          'UNKNOWN', use conditions to

          interpret the state of the inspection.
    description: Status of the inspection.
  vmware.tanzu.mc.v1alpha.cluster.inspection.LiteSpec:
    type: object
    description: Lite inspection specification.
  vmware.tanzu.mc.v1alpha.cluster.inspection.LogsSpec:
    type: object
    properties:
      labelSelector:
        type: string
        title: |-
          Filtering candidate pods by their labels.
          Label selector could use either of:
               - exact match, e.g. "key1=value1", "key2!=value2"
               - set based restriction, e.g. "x in (foo,baz)", "z notin (bar)"
          Multiple label selectors could be provided, separated by comma:
               - e.g. "app=nginx,layer in (frontend, backend)"
      fieldSelectors:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.FieldSelector
        description: >-
          A list of field selectors, with OR logic.

          For example, to get logs from two specified namespaces
          [{"namespace":"default"},{"namespace":"vmware-system-tmc"}].

          This selector could be set along with LabelSelector or on its own.
      previous:
        type: boolean
        format: boolean
        description: |-
          If set to true, return previous terminated container logs.
          Defaults to false.
      limitDuration:
        type: string
        description: Collect logs for a limited duration until current time.
      sinceTime:
        type: string
        format: date-time
        description: A timestamp from which to collect logs.
      timestamps:
        type: boolean
        format: boolean
        description: >-
          If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of
          every line

          of log output. Defaults to false.
      tailLines:
        type: string
        format: int64
        title: >-
          If set, the number of lines from the end of the logs to show. If not
          specified,

          logs are shown from the creation of the container or sinceSeconds or
          sinceTime
      limitBytes:
        type: string
        format: int64
        description: >-
          If set, the number of bytes to read from the server before terminating
          the

          log output. This may not display a complete final line of logging, and
          may return

          slightly more or slightly less than the specified limit.
    title: >-
      Logs inspection specification.

      Include parameters to control which pod to collect logs, and the scope of
      logs.

      All the fields are optional.

      If not specified, default behavior is to get logs from the namespace that
      Inspection is running
  vmware.tanzu.mc.v1alpha.cluster.inspection.Report:
    type: object
    properties:
      info:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.ReportInfo'
        description: Meta-info of this report.
      diagnostic:
        type: object
        additionalProperties:
          type: string
        description: Map of all the diagnostic files in the report tarball.
      results:
        type: object
        additionalProperties:
          type: string
        description: Map of all the files ending in .xml.
      meta:
        type: object
        additionalProperties:
          type: string
        description: >-
          Map of files with metadata information about the scan (Config, query
          time, run).
      hosts:
        type: object
        additionalProperties:
          type: string
        description: 'Map of files containing host information (config, healthz).'
      tarballDownloadUrl:
        type: string
        description: Download URL for the .tar.gz file with this full report.
    description: Encapsulates the data for a Inspection run.
  vmware.tanzu.mc.v1alpha.cluster.inspection.ReportInfo:
    type: object
    properties:
      reportId:
        type: string
        description: Internal ID of the run.
      runDatetime:
        type: string
        format: date-time
        description: Date and time of the run.
      scanType:
        type: string
        description: The scan type.
      numInspections:
        type: string
        format: int64
        description: Total number of inspections as part of the scan.
      numFailed:
        type: string
        format: int64
        description: Number of inspections failed.
      result:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.ReportInfo.Result
        description: >-
          Result is a success / failure condition based on the result of the
          scan.
    description: |-
      Contains the metadata for a single report
      (e.g. report id, etc).
  vmware.tanzu.mc.v1alpha.cluster.inspection.ReportInfo.Result:
    type: string
    enum:
      - UNKNOWN
      - SUCCESS
      - FAILURE
    default: UNKNOWN
    description: |-
      Result describes the status of the inspection.

       - UNKNOWN: Unknown result indicates the scan result is unknown.
       - SUCCESS: Success - to be used if all the tests are part of the scan are successful.
       - FAILURE: Failure - to indicate that one or more test as part of the scan failed.
  vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Inspection schema.
    description: Response with an Inspection schema.
  vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.cluster.inspection.InspectionTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Inspection schema template.
    description: Response with an Inspection schema template.
  vmware.tanzu.mc.v1alpha.cluster.inspection.CreateInspectionRequest:
    type: object
    properties:
      inspection:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.Inspection'
        description: Inspection to create.
    description: Request to create an Inspection.
  vmware.tanzu.mc.v1alpha.cluster.inspection.CreateInspectionResponse:
    type: object
    properties:
      inspection:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.Inspection'
        description: Inspection created.
    description: Response from creating an Inspection.
  vmware.tanzu.mc.v1alpha.cluster.inspection.DeleteInspectionResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting an Inspection.
  vmware.tanzu.mc.v1alpha.cluster.inspection.GetInspectionResponse:
    type: object
    properties:
      inspection:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.Inspection'
        description: Inspection returned.
    description: Response from getting an Inspection.
  vmware.tanzu.mc.v1alpha.cluster.inspection.ListInspectionsResponse:
    type: object
    properties:
      inspections:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.inspection.Inspection'
        description: List of inspections.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Inspections.
  vmware.tanzu.mc.v1alpha.cluster.inspection.SearchScope:
    type: object
    properties:
      location:
        type: string
        description: >-
          Scope search to the specified location; supports globbing; default
          (*).
      clusterName:
        type: string
        description: >-
          Scope search to the specified cluster_name; supports globbing; default
          (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.cluster.namespace.ApplyNamespaceRequest:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Namespace to apply.
    description: Request to apply a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.ApplyNamespaceResponse:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Namespace applied.
    description: Response from applying a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: ID of Organization.
      location:
        type: string
        description: Location of parent Cluster.
      clusterName:
        type: string
        description: Name of parent Cluster.
      name:
        type: string
        description: Name of this Namespace.
    description: |-
      Full name of the namespace. This includes the object name along
      with any parents or further identifiers.
  vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.FullName'
        description: Full name for the Namespace.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the Namespace object.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceSpec'
        description: Spec for the Namespace.
      status:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceStatus
        description: Status for the Namespace.
    description: A managed Kubernetes namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceSpec:
    type: object
    properties:
      workspaceName:
        type: string
        description: Name of Workspace which this Namespace belongs to.
      attach:
        type: boolean
        format: boolean
        description: Attach specifies whether the namespace is being created or attached.
    description: The Namespace spec.
  vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceStatus:
    type: object
    properties:
      state:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceStatus.State
        description: The overall state of the namespace.
      conditions:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.Condition'
        description: >-
          The conditions attached to this namespace.


          Below are the conditions that will be set on this resource:

          - "Processing": Set to true when we start creating/attaching the
          namespace.

          - "Scheduled": Set to true when we have created the intent to
          create/attach the namespace.

          - "Ready": Set to true when the namespace is successfully
          created/attached.
    description: Status of the namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceStatus.State:
    type: string
    enum:
      - UNKNOWN
      - CREATING
      - ATTACHING
      - UPDATING
      - READY
      - ERROR
    default: UNKNOWN
    description: |-
      The overall state of the namespace.

       - UNKNOWN: Unknown is the default state set when the initial request is received.
       - CREATING: Creating state is set when the namespace is being created.
       - ATTACHING: Attaching state is set when the namespace is being attached.
       - UPDATING: Updating state is set when the namespace is being updated.
       - READY: Ready state is set when the namespace is successfully created/attached/updated.
       - ERROR: Error state is set when there was a failure while creating/attaching/updating the namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.GetNamespaceEffectivePolicySetResponse:
    type: object
    properties:
      policySet:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.EffectivePolicySet'
        description: Namespace effective policy set.
    description: GetNamespaceEffectivePolicySet response message.
  vmware.tanzu.mc.v1alpha.cluster.namespace.GetNamespaceIAMPolicyResponse:
    type: object
    properties:
      policyList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Namespace policy.
    description: GetNamespaceIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.cluster.namespace.PatchNamespaceIAMPolicyRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.FullName'
        description: Namespace full_name.
      bindingDeltaList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.BindingDelta'
        description: Binding delta to be applied.
    description: PatchNamespaceIAMPolicy request message.
  vmware.tanzu.mc.v1alpha.cluster.namespace.PatchNamespaceIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: New policy object.
    description: PatchNamespaceIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.cluster.namespace.TestNamespaceIAMPermissionsRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.FullName'
        description: Namespace full_name.
      permissions:
        type: array
        items:
          type: string
        description: List of permissions to test.
    description: TestNamespaceIAMPermissions request message.
  vmware.tanzu.mc.v1alpha.cluster.namespace.TestNamespaceIAMPermissionsResponse:
    type: object
    properties:
      permissions:
        type: array
        items:
          type: string
        description: List of allowed permissions.
      uid:
        type: string
        description: >-
          Unique ID of the resource. Coupled with FullName (RID), provides a
          stable unique

          identifier for the resource.
    description: TestNamespaceIAMPermissions response message.
  vmware.tanzu.mc.v1alpha.cluster.namespace.UpdateNamespaceIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Namespace policy set.
    description: UpdateNamespaceIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Namespace schema.
    description: Response with a Namespace schema.
  vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.cluster.namespace.NamespaceTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Namespace schema template.
    description: Response with a Namespace schema template.
  vmware.tanzu.mc.v1alpha.cluster.namespace.CreateNamespaceRequest:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Namespace to create.
    description: Request to create a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.CreateNamespaceResponse:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Namespace created.
    description: Response from creating a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.DeleteNamespaceResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.EnumerateNamespacesResponse:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Namespace object.
    description: Streamed response from enumerating Namespaces.
  vmware.tanzu.mc.v1alpha.cluster.namespace.GetNamespaceResponse:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Namespace returned.
    description: Response from getting a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.ListNamespacesResponse:
    type: object
    properties:
      namespaces:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: List of namespaces.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Namespaces.
  vmware.tanzu.mc.v1alpha.cluster.namespace.PatchNamespaceRequest:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Patch Namespace.
    description: Request to patch a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.PatchNamespaceResponse:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Namespace to patch.
    description: Response from patching a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.SearchScope:
    type: object
    properties:
      location:
        type: string
        description: >-
          Scope search to the specified location; supports globbing; default
          (*).
      clusterName:
        type: string
        description: >-
          Scope search to the specified cluster_name; supports globbing; default
          (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
      workspaceName:
        type: string
        description: >-
          Scope search to the specified workspace_name; supports globbing;
          default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.cluster.namespace.UpdateNamespaceRequest:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Update Namespace.
    description: Request to update (overwrite) a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.UpdateNamespaceResponse:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Namespace updated.
    description: Response from updating a Namespace.
  vmware.tanzu.mc.v1alpha.cluster.namespace.WatchNamespacesResponse:
    type: object
    properties:
      namespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.Namespace'
        description: Namespace event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.namespace.WatchNamespacesResponse.EventType
        description: Type of event.
    description: Streamed response from watching Namespaces.
  vmware.tanzu.mc.v1alpha.cluster.namespace.WatchNamespacesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Object schema.
    description: Response with an Object schema.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Object schema template.
    description: Response with an Object schema template.
  k8s.io.api.apps.v1.DaemonSet:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.apps.v1.DaemonSetSpec'
        title: >-
          The desired behavior of this daemon set.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.apps.v1.DaemonSetStatus'
        title: >-
          The current status of this daemon set. This data may be

          out of date by some window of time.

          Populated by the system.

          Read-only.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    description: DaemonSet represents the configuration of a daemon set.
  k8s.io.api.apps.v1.DaemonSetCondition:
    type: object
    properties:
      type:
        type: string
        description: Type of DaemonSet condition.
      status:
        type: string
        description: 'Status of the condition, one of True, False, Unknown.'
      lastTransitionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time the condition transitioned from one status to another.
          +optional
      reason:
        type: string
        title: |-
          The reason for the condition's last transition.
          +optional
      message:
        type: string
        title: |-
          A human readable message indicating details about the transition.
          +optional
    description: DaemonSetCondition describes the state of a DaemonSet at a certain point.
  k8s.io.api.apps.v1.DaemonSetSpec:
    type: object
    properties:
      selector:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector'
        title: >-
          A label query over pods that are managed by the daemon set.

          Must match in order to be controlled.

          It must match the pod template's labels.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
      template:
        $ref: '#/definitions/k8s.io.api.core.v1.PodTemplateSpec'
        title: >-
          An object that describes the pod that will be created.

          The DaemonSet will create exactly one copy of this pod on every node

          that matches the template's node selector (or on every node if no node

          selector is specified).

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
      updateStrategy:
        $ref: '#/definitions/k8s.io.api.apps.v1.DaemonSetUpdateStrategy'
        title: |-
          An update strategy to replace existing DaemonSet pods with new pods.
          +optional
      minReadySeconds:
        type: integer
        format: int32
        title: >-
          The minimum number of seconds for which a newly created DaemonSet pod
          should

          be ready without any of its container crashing, for it to be
          considered

          available. Defaults to 0 (pod will be considered available as soon as
          it

          is ready).

          +optional
      revisionHistoryLimit:
        type: integer
        format: int32
        title: >-
          The number of old history to retain to allow rollback.

          This is a pointer to distinguish between explicit zero and not
          specified.

          Defaults to 10.

          +optional
    description: DaemonSetSpec is the specification of a daemon set.
  k8s.io.api.apps.v1.DaemonSetStatus:
    type: object
    properties:
      currentNumberScheduled:
        type: integer
        format: int32
        title: >-
          The number of nodes that are running at least 1

          daemon pod and are supposed to run the daemon pod.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
      numberMisscheduled:
        type: integer
        format: int32
        title: >-
          The number of nodes that are running the daemon pod, but are

          not supposed to run the daemon pod.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
      desiredNumberScheduled:
        type: integer
        format: int32
        title: >-
          The total number of nodes that should be running the daemon

          pod (including nodes correctly running the daemon pod).

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
      numberReady:
        type: integer
        format: int32
        description: |-
          The number of nodes that should be running the daemon pod and have one
          or more of the daemon pod running and ready.
      observedGeneration:
        type: string
        format: int64
        title: |-
          The most recent generation observed by the daemon set controller.
          +optional
      updatedNumberScheduled:
        type: integer
        format: int32
        title: |-
          The total number of nodes that are running updated daemon pod
          +optional
      numberAvailable:
        type: integer
        format: int32
        title: |-
          The number of nodes that should be running the
          daemon pod and have one or more of the daemon pod running and
          available (ready for at least spec.minReadySeconds)
          +optional
      numberUnavailable:
        type: integer
        format: int32
        title: |-
          The number of nodes that should be running the
          daemon pod and have none of the daemon pod running and available
          (ready for at least spec.minReadySeconds)
          +optional
      collisionCount:
        type: integer
        format: int32
        title: |-
          Count of hash collisions for the DaemonSet. The DaemonSet controller
          uses this field as a collision avoidance mechanism when it needs to
          create the name for the newest ControllerRevision.
          +optional
      conditions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.apps.v1.DaemonSetCondition'
        title: >-
          Represents the latest available observations of a DaemonSet's current
          state.

          +optional

          +patchMergeKey=type

          +patchStrategy=merge
    description: DaemonSetStatus represents the current status of a daemon set.
  k8s.io.api.apps.v1.DaemonSetUpdateStrategy:
    type: object
    properties:
      type:
        type: string
        title: >-
          Type of daemon set update. Can be "RollingUpdate" or "OnDelete".
          Default is RollingUpdate.

          +optional
      rollingUpdate:
        $ref: '#/definitions/k8s.io.api.apps.v1.RollingUpdateDaemonSet'
        title: >-
          Rolling update config params. Present only if type = "RollingUpdate".

          ---

          TODO: Update this to follow our convention for oneOf, whatever we
          decide it

          to be. Same as Deployment `strategy.rollingUpdate`.

          See https://github.com/kubernetes/kubernetes/issues/35345

          +optional
    description: >-
      DaemonSetUpdateStrategy is a struct used to control the update strategy
      for a DaemonSet.
  k8s.io.api.apps.v1.Deployment:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: |-
          Standard object metadata.
          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.apps.v1.DeploymentSpec'
        title: |-
          Specification of the desired behavior of the Deployment.
          +optional
      status:
        $ref: '#/definitions/k8s.io.api.apps.v1.DeploymentStatus'
        title: |-
          Most recently observed status of the Deployment.
          +optional
    description: Deployment enables declarative updates for Pods and ReplicaSets.
  k8s.io.api.apps.v1.DeploymentCondition:
    type: object
    properties:
      type:
        type: string
        description: Type of deployment condition.
      status:
        type: string
        description: 'Status of the condition, one of True, False, Unknown.'
      lastUpdateTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        description: The last time this condition was updated.
      lastTransitionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        description: Last time the condition transitioned from one status to another.
      reason:
        type: string
        description: The reason for the condition's last transition.
      message:
        type: string
        description: A human readable message indicating details about the transition.
    description: >-
      DeploymentCondition describes the state of a deployment at a certain
      point.
  k8s.io.api.apps.v1.DeploymentSpec:
    type: object
    properties:
      replicas:
        type: integer
        format: int32
        title: >-
          Number of desired pods. This is a pointer to distinguish between
          explicit

          zero and not specified. Defaults to 1.

          +optional
      selector:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector'
        description: |-
          Label selector for pods. Existing ReplicaSets whose pods are
          selected by this will be the ones affected by this deployment.
          It must match the pod template's labels.
      template:
        $ref: '#/definitions/k8s.io.api.core.v1.PodTemplateSpec'
        description: Template describes the pods that will be created.
      strategy:
        $ref: '#/definitions/k8s.io.api.apps.v1.DeploymentStrategy'
        title: |-
          The deployment strategy to use to replace existing pods with new ones.
          +optional
          +patchStrategy=retainKeys
      minReadySeconds:
        type: integer
        format: int32
        title: >-
          Minimum number of seconds for which a newly created pod should be
          ready

          without any of its container crashing, for it to be considered
          available.

          Defaults to 0 (pod will be considered available as soon as it is
          ready)

          +optional
      revisionHistoryLimit:
        type: integer
        format: int32
        title: >-
          The number of old ReplicaSets to retain to allow rollback.

          This is a pointer to distinguish between explicit zero and not
          specified.

          Defaults to 10.

          +optional
      paused:
        type: boolean
        format: boolean
        title: |-
          Indicates that the deployment is paused.
          +optional
      progressDeadlineSeconds:
        type: integer
        format: int32
        description: >-
          The maximum time in seconds for a deployment to make progress before
          it

          is considered to be failed. The deployment controller will continue to

          process failed deployments and a condition with a
          ProgressDeadlineExceeded

          reason will be surfaced in the deployment status. Note that progress
          will

          not be estimated during the time a deployment is paused. Defaults to
          600s.
    description: >-
      DeploymentSpec is the specification of the desired behavior of the
      Deployment.
  k8s.io.api.apps.v1.DeploymentStatus:
    type: object
    properties:
      observedGeneration:
        type: string
        format: int64
        title: |-
          The generation observed by the deployment controller.
          +optional
      replicas:
        type: integer
        format: int32
        title: >-
          Total number of non-terminated pods targeted by this deployment (their
          labels match the selector).

          +optional
      updatedReplicas:
        type: integer
        format: int32
        title: >-
          Total number of non-terminated pods targeted by this deployment that
          have the desired template spec.

          +optional
      readyReplicas:
        type: integer
        format: int32
        title: |-
          Total number of ready pods targeted by this deployment.
          +optional
      availableReplicas:
        type: integer
        format: int32
        title: >-
          Total number of available pods (ready for at least minReadySeconds)
          targeted by this deployment.

          +optional
      unavailableReplicas:
        type: integer
        format: int32
        title: >-
          Total number of unavailable pods targeted by this deployment. This is
          the total number of

          pods that are still required for the deployment to have 100% available
          capacity. They may

          either be pods that are running but not yet available or pods that
          still have not been created.

          +optional
      conditions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.apps.v1.DeploymentCondition'
        title: >-
          Represents the latest available observations of a deployment's current
          state.

          +patchMergeKey=type

          +patchStrategy=merge
      collisionCount:
        type: integer
        format: int32
        title: >-
          Count of hash collisions for the Deployment. The Deployment controller
          uses this

          field as a collision avoidance mechanism when it needs to create the
          name for the

          newest ReplicaSet.

          +optional
    description: DeploymentStatus is the most recently observed status of the Deployment.
  k8s.io.api.apps.v1.DeploymentStrategy:
    type: object
    properties:
      type:
        type: string
        title: >-
          Type of deployment. Can be "Recreate" or "RollingUpdate". Default is
          RollingUpdate.

          +optional
      rollingUpdate:
        $ref: '#/definitions/k8s.io.api.apps.v1.RollingUpdateDeployment'
        title: >-
          Rolling update config params. Present only if DeploymentStrategyType =

          RollingUpdate.

          ---

          TODO: Update this to follow our convention for oneOf, whatever we
          decide it

          to be.

          +optional
    description: DeploymentStrategy describes how to replace existing pods with new ones.
  k8s.io.api.apps.v1.ReplicaSet:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          If the Labels of a ReplicaSet are empty, they are defaulted to

          be the same as the Pod(s) that the ReplicaSet manages.

          Standard object's metadata. More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.apps.v1.ReplicaSetSpec'
        title: >-
          Spec defines the specification of the desired behavior of the
          ReplicaSet.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.apps.v1.ReplicaSetStatus'
        title: >-
          Status is the most recently observed status of the ReplicaSet.

          This data may be out of date by some window of time.

          Populated by the system.

          Read-only.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    description: >-
      ReplicaSet ensures that a specified number of pod replicas are running at
      any given time.
  k8s.io.api.apps.v1.ReplicaSetCondition:
    type: object
    properties:
      type:
        type: string
        description: Type of replica set condition.
      status:
        type: string
        description: 'Status of the condition, one of True, False, Unknown.'
      lastTransitionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          The last time the condition transitioned from one status to another.
          +optional
      reason:
        type: string
        title: |-
          The reason for the condition's last transition.
          +optional
      message:
        type: string
        title: |-
          A human readable message indicating details about the transition.
          +optional
    description: >-
      ReplicaSetCondition describes the state of a replica set at a certain
      point.
  k8s.io.api.apps.v1.ReplicaSetSpec:
    type: object
    properties:
      replicas:
        type: integer
        format: int32
        title: >-
          Replicas is the number of desired replicas.

          This is a pointer to distinguish between explicit zero and
          unspecified.

          Defaults to 1.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller

          +optional
      minReadySeconds:
        type: integer
        format: int32
        title: >-
          Minimum number of seconds for which a newly created pod should be
          ready

          without any of its container crashing, for it to be considered
          available.

          Defaults to 0 (pod will be considered available as soon as it is
          ready)

          +optional
      selector:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector'
        title: >-
          Selector is a label query over pods that should match the replica
          count.

          Label keys and values that must match in order to be controlled by
          this replica set.

          It must match the pod template's labels.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
      template:
        $ref: '#/definitions/k8s.io.api.core.v1.PodTemplateSpec'
        title: >-
          Template is the object that describes the pod that will be created if

          insufficient replicas are detected.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template

          +optional
    description: ReplicaSetSpec is the specification of a ReplicaSet.
  k8s.io.api.apps.v1.ReplicaSetStatus:
    type: object
    properties:
      replicas:
        type: integer
        format: int32
        title: >-
          Replicas is the most recently oberved number of replicas.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
      fullyLabeledReplicas:
        type: integer
        format: int32
        title: >-
          The number of pods that have labels matching the labels of the pod
          template of the replicaset.

          +optional
      readyReplicas:
        type: integer
        format: int32
        title: |-
          The number of ready replicas for this replica set.
          +optional
      availableReplicas:
        type: integer
        format: int32
        title: >-
          The number of available replicas (ready for at least minReadySeconds)
          for this replica set.

          +optional
      observedGeneration:
        type: string
        format: int64
        title: >-
          ObservedGeneration reflects the generation of the most recently
          observed ReplicaSet.

          +optional
      conditions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.apps.v1.ReplicaSetCondition'
        title: >-
          Represents the latest available observations of a replica set's
          current state.

          +optional

          +patchMergeKey=type

          +patchStrategy=merge
    description: ReplicaSetStatus represents the current status of a ReplicaSet.
  k8s.io.api.apps.v1.RollingUpdateDaemonSet:
    type: object
    properties:
      maxUnavailable:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString'
        title: >-
          The maximum number of DaemonSet pods that can be unavailable during
          the

          update. Value can be an absolute number (ex: 5) or a percentage of
          total

          number of DaemonSet pods at the start of the update (ex: 10%).
          Absolute

          number is calculated from percentage by rounding up.

          This cannot be 0.

          Default value is 1.

          Example: when this is set to 30%, at most 30% of the total number of
          nodes

          that should be running the daemon pod (i.e.
          status.desiredNumberScheduled)

          can have their pods stopped for an update at any given

          time. The update starts by stopping at most 30% of those DaemonSet
          pods

          and then brings up new DaemonSet pods in their place. Once the new
          pods

          are available, it then proceeds onto other DaemonSet pods, thus
          ensuring

          that at least 70% of original number of DaemonSet pods are available
          at

          all times during the update.

          +optional
    description: Spec to control the desired behavior of daemon set rolling update.
  k8s.io.api.apps.v1.RollingUpdateDeployment:
    type: object
    properties:
      maxUnavailable:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString'
        title: >-
          The maximum number of pods that can be unavailable during the update.

          Value can be an absolute number (ex: 5) or a percentage of desired
          pods (ex: 10%).

          Absolute number is calculated from percentage by rounding down.

          This can not be 0 if MaxSurge is 0.

          Defaults to 25%.

          Example: when this is set to 30%, the old ReplicaSet can be scaled
          down to 70% of desired pods

          immediately when the rolling update starts. Once new pods are ready,
          old ReplicaSet

          can be scaled down further, followed by scaling up the new ReplicaSet,
          ensuring

          that the total number of pods available at all times during the update
          is at

          least 70% of desired pods.

          +optional
      maxSurge:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString'
        title: >-
          The maximum number of pods that can be scheduled above the desired
          number of

          pods.

          Value can be an absolute number (ex: 5) or a percentage of desired
          pods (ex: 10%).

          This can not be 0 if MaxUnavailable is 0.

          Absolute number is calculated from percentage by rounding up.

          Defaults to 25%.

          Example: when this is set to 30%, the new ReplicaSet can be scaled up
          immediately when

          the rolling update starts, such that the total number of old and new
          pods do not exceed

          130% of desired pods. Once old pods have been killed,

          new ReplicaSet can be scaled up further, ensuring that total number of
          pods running

          at any time during the update is at most 130% of desired pods.

          +optional
    description: Spec to control the desired behavior of rolling update.
  k8s.io.api.apps.v1.RollingUpdateStatefulSetStrategy:
    type: object
    properties:
      partition:
        type: integer
        format: int32
        title: |-
          Partition indicates the ordinal at which the StatefulSet should be
          partitioned.
          Default value is 0.
          +optional
    description: >-
      RollingUpdateStatefulSetStrategy is used to communicate parameter for
      RollingUpdateStatefulSetStrategyType.
  k8s.io.api.apps.v1.StatefulSet:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: +optional
      spec:
        $ref: '#/definitions/k8s.io.api.apps.v1.StatefulSetSpec'
        title: |-
          Spec defines the desired identities of pods in this set.
          +optional
      status:
        $ref: '#/definitions/k8s.io.api.apps.v1.StatefulSetStatus'
        title: |-
          Status is the current status of Pods in this StatefulSet. This data
          may be out of date by some window of time.
          +optional
    description: |-
      StatefulSet represents a set of pods with consistent identities.
      Identities are defined as:
       - Network: A single stable DNS and hostname.
       - Storage: As many VolumeClaims as requested.
      The StatefulSet guarantees that a given network identity will always
      map to the same storage identity.
  k8s.io.api.apps.v1.StatefulSetCondition:
    type: object
    properties:
      type:
        type: string
        description: Type of statefulset condition.
      status:
        type: string
        description: 'Status of the condition, one of True, False, Unknown.'
      lastTransitionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time the condition transitioned from one status to another.
          +optional
      reason:
        type: string
        title: |-
          The reason for the condition's last transition.
          +optional
      message:
        type: string
        title: |-
          A human readable message indicating details about the transition.
          +optional
    description: >-
      StatefulSetCondition describes the state of a statefulset at a certain
      point.
  k8s.io.api.apps.v1.StatefulSetSpec:
    type: object
    properties:
      replicas:
        type: integer
        format: int32
        title: >-
          replicas is the desired number of replicas of the given Template.

          These are replicas in the sense that they are instantiations of the

          same Template, but individual replicas also have a consistent
          identity.

          If unspecified, defaults to 1.

          TODO: Consider a rename of this field.

          +optional
      selector:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector'
        title: >-
          selector is a label query over pods that should match the replica
          count.

          It must match the pod template's labels.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
      template:
        $ref: '#/definitions/k8s.io.api.core.v1.PodTemplateSpec'
        description: >-
          template is the object that describes the pod that will be created if

          insufficient replicas are detected. Each pod stamped out by the
          StatefulSet

          will fulfill this Template, but have a unique identity from the rest

          of the StatefulSet.
      volumeClaimTemplates:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.PersistentVolumeClaim'
        title: >-
          volumeClaimTemplates is a list of claims that pods are allowed to
          reference.

          The StatefulSet controller is responsible for mapping network
          identities to

          claims in a way that maintains the identity of a pod. Every claim in

          this list must have at least one matching (by name) volumeMount in one

          container in the template. A claim in this list takes precedence over

          any volumes in the template, with the same name.

          TODO: Define the behavior if a claim already exists with the same
          name.

          +optional
      serviceName:
        type: string
        description: >-
          serviceName is the name of the service that governs this StatefulSet.

          This service must exist before the StatefulSet, and is responsible for

          the network identity of the set. Pods get DNS/hostnames that follow
          the

          pattern: pod-specific-string.serviceName.default.svc.cluster.local

          where "pod-specific-string" is managed by the StatefulSet controller.
      podManagementPolicy:
        type: string
        title: >-
          podManagementPolicy controls how pods are created during initial scale
          up,

          when replacing pods on nodes, or when scaling down. The default policy
          is

          `OrderedReady`, where pods are created in increasing order (pod-0,
          then

          pod-1, etc) and the controller will wait until each pod is ready
          before

          continuing. When scaling down, the pods are removed in the opposite
          order.

          The alternative policy is `Parallel` which will create pods in
          parallel

          to match the desired scale without waiting, and on scale down will
          delete

          all pods at once.

          +optional
      updateStrategy:
        $ref: '#/definitions/k8s.io.api.apps.v1.StatefulSetUpdateStrategy'
        description: |-
          updateStrategy indicates the StatefulSetUpdateStrategy that will be
          employed to update Pods in the StatefulSet when a revision is made to
          Template.
      revisionHistoryLimit:
        type: integer
        format: int32
        description: >-
          revisionHistoryLimit is the maximum number of revisions that will

          be maintained in the StatefulSet's revision history. The revision
          history

          consists of all revisions not represented by a currently applied

          StatefulSetSpec version. The default value is 10.
    description: A StatefulSetSpec is the specification of a StatefulSet.
  k8s.io.api.apps.v1.StatefulSetStatus:
    type: object
    properties:
      observedGeneration:
        type: string
        format: int64
        title: >-
          observedGeneration is the most recent generation observed for this
          StatefulSet. It corresponds to the

          StatefulSet's generation, which is updated on mutation by the API
          Server.

          +optional
      replicas:
        type: integer
        format: int32
        description: replicas is the number of Pods created by the StatefulSet controller.
      readyReplicas:
        type: integer
        format: int32
        description: >-
          readyReplicas is the number of Pods created by the StatefulSet
          controller that have a Ready Condition.
      currentReplicas:
        type: integer
        format: int32
        description: >-
          currentReplicas is the number of Pods created by the StatefulSet
          controller from the StatefulSet version

          indicated by currentRevision.
      updatedReplicas:
        type: integer
        format: int32
        description: >-
          updatedReplicas is the number of Pods created by the StatefulSet
          controller from the StatefulSet version

          indicated by updateRevision.
      currentRevision:
        type: string
        description: >-
          currentRevision, if not empty, indicates the version of the
          StatefulSet used to generate Pods in the

          sequence [0,currentReplicas).
      updateRevision:
        type: string
        title: >-
          updateRevision, if not empty, indicates the version of the StatefulSet
          used to generate Pods in the sequence

          [replicas-updatedReplicas,replicas)
      collisionCount:
        type: integer
        format: int32
        title: >-
          collisionCount is the count of hash collisions for the StatefulSet.
          The StatefulSet controller

          uses this field as a collision avoidance mechanism when it needs to
          create the name for the

          newest ControllerRevision.

          +optional
      conditions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.apps.v1.StatefulSetCondition'
        title: >-
          Represents the latest available observations of a statefulset's
          current state.

          +optional

          +patchMergeKey=type

          +patchStrategy=merge
    description: StatefulSetStatus represents the current state of a StatefulSet.
  k8s.io.api.apps.v1.StatefulSetUpdateStrategy:
    type: object
    properties:
      type:
        type: string
        title: |-
          Type indicates the type of the StatefulSetUpdateStrategy.
          Default is RollingUpdate.
          +optional
      rollingUpdate:
        $ref: '#/definitions/k8s.io.api.apps.v1.RollingUpdateStatefulSetStrategy'
        title: >-
          RollingUpdate is used to communicate parameters when Type is
          RollingUpdateStatefulSetStrategyType.

          +optional
    description: >-
      StatefulSetUpdateStrategy indicates the strategy that the StatefulSet

      controller will use to perform updates. It includes any additional
      parameters

      necessary to perform the update for the indicated strategy.
  k8s.io.api.batch.v1.Job:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.batch.v1.JobSpec'
        title: >-
          Specification of the desired behavior of a job.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.batch.v1.JobStatus'
        title: >-
          Current status of a job.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    description: Job represents the configuration of a single job.
  k8s.io.api.batch.v1.JobCondition:
    type: object
    properties:
      type:
        type: string
        description: 'Type of job condition, Complete or Failed.'
      status:
        type: string
        description: 'Status of the condition, one of True, False, Unknown.'
      lastProbeTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time the condition was checked.
          +optional
      lastTransitionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time the condition transit from one status to another.
          +optional
      reason:
        type: string
        title: |-
          (brief) reason for the condition's last transition.
          +optional
      message:
        type: string
        title: |-
          Human readable message indicating details about last transition.
          +optional
    description: JobCondition describes current state of a job.
  k8s.io.api.batch.v1.JobSpec:
    type: object
    properties:
      parallelism:
        type: integer
        format: int32
        title: >-
          Specifies the maximum desired number of pods the job should

          run at any given time. The actual number of pods running in steady
          state will

          be less than this number when ((.spec.completions -
          .status.successful) < .spec.parallelism),

          i.e. when the work left to do is less than max parallelism.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

          +optional
      completions:
        type: integer
        format: int32
        title: >-
          Specifies the desired number of successfully finished pods the

          job should be run with.  Setting to nil means that the success of any

          pod signals the success of all pods, and allows parallelism to have
          any positive

          value.  Setting to 1 means that parallelism is limited to 1 and the
          success of that

          pod signals the success of the job.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

          +optional
      activeDeadlineSeconds:
        type: string
        format: int64
        title: >-
          Specifies the duration in seconds relative to the startTime that the
          job may be active

          before the system tries to terminate it; value must be positive
          integer

          +optional
      backoffLimit:
        type: integer
        format: int32
        title: |-
          Specifies the number of retries before marking this job failed.
          Defaults to 6
          +optional
      selector:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector'
        title: >-
          A label query over pods that should match the pod count.

          Normally, the system sets this field for you.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

          +optional
      manualSelector:
        type: boolean
        format: boolean
        title: >-
          manualSelector controls generation of pod labels and pod selectors.

          Leave `manualSelector` unset unless you are certain what you are
          doing.

          When false or unset, the system pick labels unique to this job

          and appends those labels to the pod template.  When true,

          the user is responsible for picking unique labels and specifying

          the selector.  Failure to pick a unique label may cause this

          and other jobs to not function correctly.  However, You may see

          `manualSelector=true` in jobs that were created with the old
          `extensions/v1beta1`

          API.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector

          +optional
      template:
        $ref: '#/definitions/k8s.io.api.core.v1.PodTemplateSpec'
        title: >-
          Describes the pod that will be created when executing a job.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
      ttlSecondsAfterFinished:
        type: integer
        format: int32
        title: >-
          ttlSecondsAfterFinished limits the lifetime of a Job that has finished

          execution (either Complete or Failed). If this field is set,

          ttlSecondsAfterFinished after the Job finishes, it is eligible to be

          automatically deleted. When the Job is being deleted, its lifecycle

          guarantees (e.g. finalizers) will be honored. If this field is unset,

          the Job won't be automatically deleted. If this field is set to zero,

          the Job becomes eligible to be deleted immediately after it finishes.

          This field is alpha-level and is only honored by servers that enable
          the

          TTLAfterFinished feature.

          +optional
    description: JobSpec describes how the job execution will look like.
  k8s.io.api.batch.v1.JobStatus:
    type: object
    properties:
      conditions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.batch.v1.JobCondition'
        title: >-
          The latest available observations of an object's current state.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

          +optional

          +patchMergeKey=type

          +patchStrategy=merge
      startTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: >-
          Represents time when the job was acknowledged by the job controller.

          It is not guaranteed to be set in happens-before order across separate
          operations.

          It is represented in RFC3339 form and is in UTC.

          +optional
      completionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Represents time when the job was completed. It is not guaranteed to
          be set in happens-before order across separate operations.
          It is represented in RFC3339 form and is in UTC.
          +optional
      active:
        type: integer
        format: int32
        title: |-
          The number of actively running pods.
          +optional
      succeeded:
        type: integer
        format: int32
        title: |-
          The number of pods which reached phase Succeeded.
          +optional
      failed:
        type: integer
        format: int32
        title: |-
          The number of pods which reached phase Failed.
          +optional
    description: JobStatus represents the current state of a Job.
  k8s.io.api.batch.v1beta1.CronJob:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.batch.v1beta1.CronJobSpec'
        title: >-
          Specification of the desired behavior of a cron job, including the
          schedule.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.batch.v1beta1.CronJobStatus'
        title: >-
          Current status of a cron job.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    description: CronJob represents the configuration of a single cron job.
  k8s.io.api.batch.v1beta1.CronJobSpec:
    type: object
    properties:
      schedule:
        type: string
        description: 'The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.'
      startingDeadlineSeconds:
        type: string
        format: int64
        title: >-
          Optional deadline in seconds for starting the job if it misses
          scheduled

          time for any reason.  Missed jobs executions will be counted as failed
          ones.

          +optional
      concurrencyPolicy:
        type: string
        title: >-
          Specifies how to treat concurrent executions of a Job.

          Valid values are:

          - "Allow" (default): allows CronJobs to run concurrently;

          - "Forbid": forbids concurrent runs, skipping next run if previous run
          hasn't finished yet;

          - "Replace": cancels currently running job and replaces it with a new
          one

          +optional
      suspend:
        type: boolean
        format: boolean
        title: >-
          This flag tells the controller to suspend subsequent executions, it
          does

          not apply to already started executions.  Defaults to false.

          +optional
      jobTemplate:
        $ref: '#/definitions/k8s.io.api.batch.v1beta1.JobTemplateSpec'
        description: Specifies the job that will be created when executing a CronJob.
      successfulJobsHistoryLimit:
        type: integer
        format: int32
        title: >-
          The number of successful finished jobs to retain.

          This is a pointer to distinguish between explicit zero and not
          specified.

          Defaults to 3.

          +optional
      failedJobsHistoryLimit:
        type: integer
        format: int32
        title: >-
          The number of failed finished jobs to retain.

          This is a pointer to distinguish between explicit zero and not
          specified.

          Defaults to 1.

          +optional
    description: >-
      CronJobSpec describes how the job execution will look like and when it
      will actually run.
  k8s.io.api.batch.v1beta1.CronJobStatus:
    type: object
    properties:
      active:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.ObjectReference'
        title: |-
          A list of pointers to currently running jobs.
          +optional
      lastScheduleTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Information when was the last time the job was successfully scheduled.
          +optional
    description: CronJobStatus represents the current state of a cron job.
  k8s.io.api.batch.v1beta1.JobTemplateSpec:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata of the jobs created from this template.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.batch.v1.JobSpec'
        title: >-
          Specification of the desired behavior of the job.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    title: >-
      JobTemplateSpec describes the data a Job should have when created from a
      template
  k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource:
    type: object
    properties:
      volumeID:
        type: string
        title: >-
          Unique ID of the persistent disk resource in AWS (Amazon EBS volume).

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
      fsType:
        type: string
        title: >-
          Filesystem type of the volume that you want to mount.

          Tip: Ensure that the filesystem type is supported by the host
          operating system.

          Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

          TODO: how do we prevent errors in the filesystem from compromising the
          machine

          +optional
      partition:
        type: integer
        format: int32
        title: >-
          The partition in the volume that you want to mount.

          If omitted, the default is to mount by volume name.

          Examples: For volume /dev/sda1, you specify the partition as "1".

          Similarly, the volume partition for /dev/sda is "0" (or you can leave
          the property empty).

          +optional
      readOnly:
        type: boolean
        format: boolean
        title: >-
          Specify "true" to force and set the ReadOnly property in VolumeMounts
          to "true".

          If omitted, the default is "false".

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

          +optional
    description: |-
      Represents a Persistent Disk resource in AWS.

      An AWS EBS disk must exist before mounting to a container. The disk
      must also be in the same AWS zone as the kubelet. An AWS EBS disk
      can only be mounted as read/write once. AWS EBS volumes support
      ownership management and SELinux relabeling.
  k8s.io.api.core.v1.Affinity:
    type: object
    properties:
      nodeAffinity:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeAffinity'
        title: |-
          Describes node affinity scheduling rules for the pod.
          +optional
      podAffinity:
        $ref: '#/definitions/k8s.io.api.core.v1.PodAffinity'
        title: >-
          Describes pod affinity scheduling rules (e.g. co-locate this pod in
          the same node, zone, etc. as some other pod(s)).

          +optional
      podAntiAffinity:
        $ref: '#/definitions/k8s.io.api.core.v1.PodAntiAffinity'
        title: >-
          Describes pod anti-affinity scheduling rules (e.g. avoid putting this
          pod in the same node, zone, etc. as some other pod(s)).

          +optional
    description: Affinity is a group of affinity scheduling rules.
  k8s.io.api.core.v1.AttachedVolume:
    type: object
    properties:
      name:
        type: string
        title: Name of the attached volume
      devicePath:
        type: string
        title: >-
          DevicePath represents the device path where the volume should be
          available
    title: AttachedVolume describes a volume attached to a node
  k8s.io.api.core.v1.AzureDiskVolumeSource:
    type: object
    properties:
      diskName:
        type: string
        title: The Name of the data disk in the blob storage
      diskURI:
        type: string
        title: The URI the data disk in the blob storage
      cachingMode:
        type: string
        title: |-
          Host Caching mode: None, Read Only, Read Write.
          +optional
      fsType:
        type: string
        title: >-
          Filesystem type to mount.

          Must be a filesystem type supported by the host operating system.

          Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.

          +optional
      readOnly:
        type: boolean
        format: boolean
        title: |-
          Defaults to false (read/write). ReadOnly here will force
          the ReadOnly setting in VolumeMounts.
          +optional
      kind:
        type: string
        title: >-
          Expected values Shared: multiple blob disks per storage account 
          Dedicated: single blob disk per storage account  Managed: azure
          managed data disk (only in managed availability set). defaults to
          shared
    description: >-
      AzureDisk represents an Azure Data Disk mount on the host and bind mount
      to the pod.
  k8s.io.api.core.v1.AzureFileVolumeSource:
    type: object
    properties:
      secretName:
        type: string
        title: the name of secret that contains Azure Storage Account Name and Key
      shareName:
        type: string
        title: Share Name
      readOnly:
        type: boolean
        format: boolean
        title: |-
          Defaults to false (read/write). ReadOnly here will force
          the ReadOnly setting in VolumeMounts.
          +optional
    description: >-
      AzureFile represents an Azure File Service mount on the host and bind
      mount to the pod.
  k8s.io.api.core.v1.CSIVolumeSource:
    type: object
    properties:
      driver:
        type: string
        description: >-
          Driver is the name of the CSI driver that handles this volume.

          Consult with your admin for the correct name as registered in the
          cluster.
      readOnly:
        type: boolean
        format: boolean
        title: |-
          Specifies a read-only configuration for the volume.
          Defaults to false (read/write).
          +optional
      fsType:
        type: string
        title: >-
          Filesystem type to mount. Ex. "ext4", "xfs", "ntfs".

          If not provided, the empty value is passed to the associated CSI
          driver

          which will determine the default filesystem to apply.

          +optional
      volumeAttributes:
        type: object
        additionalProperties:
          type: string
        title: >-
          VolumeAttributes stores driver-specific properties that are passed to
          the CSI

          driver. Consult your driver's documentation for supported values.

          +optional
      nodePublishSecretRef:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        title: >-
          NodePublishSecretRef is a reference to the secret object containing

          sensitive information to pass to the CSI driver to complete the CSI

          NodePublishVolume and NodeUnpublishVolume calls.

          This field is optional, and  may be empty if no secret is required. If
          the

          secret object contains more than one secret, all secret references are
          passed.

          +optional
    title: >-
      Represents a source location of a volume to mount, managed by an external
      CSI driver
  k8s.io.api.core.v1.Capabilities:
    type: object
    properties:
      add:
        type: array
        items:
          type: string
        title: |-
          Added capabilities
          +optional
      drop:
        type: array
        items:
          type: string
        title: |-
          Removed capabilities
          +optional
    description: Adds and removes POSIX capabilities from running containers.
  k8s.io.api.core.v1.CephFSVolumeSource:
    type: object
    properties:
      monitors:
        type: array
        items:
          type: string
        title: >-
          Required: Monitors is a collection of Ceph monitors

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
      path:
        type: string
        title: >-
          Optional: Used as the mounted root, rather than the full Ceph tree,
          default is /

          +optional
      user:
        type: string
        title: >-
          Optional: User is the rados user name, default is admin

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

          +optional
      secretFile:
        type: string
        title: >-
          Optional: SecretFile is the path to key ring for User, default is
          /etc/ceph/user.secret

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

          +optional
      secretRef:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        title: >-
          Optional: SecretRef is reference to the authentication secret for
          User, default is empty.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

          +optional
      readOnly:
        type: boolean
        format: boolean
        title: >-
          Optional: Defaults to false (read/write). ReadOnly here will force

          the ReadOnly setting in VolumeMounts.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

          +optional
    description: |-
      Represents a Ceph Filesystem mount that lasts the lifetime of a pod
      Cephfs volumes do not support ownership management or SELinux relabeling.
  k8s.io.api.core.v1.CinderVolumeSource:
    type: object
    properties:
      volumeID:
        type: string
        title: >-
          volume id used to identify the volume in cinder

          More info:
          https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
      fsType:
        type: string
        title: >-
          Filesystem type to mount.

          Must be a filesystem type supported by the host operating system.

          Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.

          More info:
          https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

          +optional
      readOnly:
        type: boolean
        format: boolean
        title: >-
          Optional: Defaults to false (read/write). ReadOnly here will force

          the ReadOnly setting in VolumeMounts.

          More info:
          https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

          +optional
      secretRef:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        title: >-
          Optional: points to a secret object containing parameters used to
          connect

          to OpenStack.

          +optional
    description: |-
      Represents a cinder volume resource in Openstack.
      A Cinder volume must exist before mounting to a container.
      The volume must also be in the same region as the kubelet.
      Cinder volumes support ownership management and SELinux relabeling.
  k8s.io.api.core.v1.ClientIPConfig:
    type: object
    properties:
      timeoutSeconds:
        type: integer
        format: int32
        title: >-
          timeoutSeconds specifies the seconds of ClientIP type session sticky
          time.

          The value must be >0 && <=86400(for 1 day) if ServiceAffinity ==
          "ClientIP".

          Default value is 10800(for 3 hours).

          +optional
    description: >-
      ClientIPConfig represents the configurations of Client IP based session
      affinity.
  k8s.io.api.core.v1.ConfigMapEnvSource:
    type: object
    properties:
      localObjectReference:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        description: The ConfigMap to select from.
      optional:
        type: boolean
        format: boolean
        title: |-
          Specify whether the ConfigMap must be defined
          +optional
    description: |-
      ConfigMapEnvSource selects a ConfigMap to populate the environment
      variables with.

      The contents of the target ConfigMap's Data field will represent the
      key-value pairs as environment variables.
  k8s.io.api.core.v1.ConfigMapKeySelector:
    type: object
    properties:
      localObjectReference:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        description: The ConfigMap to select from.
      key:
        type: string
        description: The key to select.
      optional:
        type: boolean
        format: boolean
        title: |-
          Specify whether the ConfigMap or it's key must be defined
          +optional
    description: Selects a key from a ConfigMap.
  k8s.io.api.core.v1.ConfigMapNodeConfigSource:
    type: object
    properties:
      namespace:
        type: string
        description: |-
          Namespace is the metadata.namespace of the referenced ConfigMap.
          This field is required in all cases.
      name:
        type: string
        description: |-
          Name is the metadata.name of the referenced ConfigMap.
          This field is required in all cases.
      uid:
        type: string
        title: |-
          UID is the metadata.UID of the referenced ConfigMap.
          This field is forbidden in Node.Spec, and required in Node.Status.
          +optional
      resourceVersion:
        type: string
        title: >-
          ResourceVersion is the metadata.ResourceVersion of the referenced
          ConfigMap.

          This field is forbidden in Node.Spec, and required in Node.Status.

          +optional
      kubeletConfigKey:
        type: string
        description: >-
          KubeletConfigKey declares which key of the referenced ConfigMap
          corresponds to the KubeletConfiguration structure

          This field is required in all cases.
    description: >-
      ConfigMapNodeConfigSource contains the information to reference a
      ConfigMap as a config source for the Node.
  k8s.io.api.core.v1.ConfigMapProjection:
    type: object
    properties:
      localObjectReference:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
      items:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.KeyToPath'
        title: >-
          If unspecified, each key-value pair in the Data field of the
          referenced

          ConfigMap will be projected into the volume as a file whose name is
          the

          key and content is the value. If specified, the listed keys will be

          projected into the specified paths, and unlisted keys will not be

          present. If a key is specified which is not present in the ConfigMap,

          the volume setup will error unless it is marked optional. Paths must
          be

          relative and may not contain the '..' path or start with '..'.

          +optional
      optional:
        type: boolean
        format: boolean
        title: |-
          Specify whether the ConfigMap or it's keys must be defined
          +optional
    description: >-
      Adapts a ConfigMap into a projected volume.


      The contents of the target ConfigMap's Data field will be presented in a

      projected volume as files using the keys in the Data field as the file
      names,

      unless the items element is populated with specific mappings of keys to
      paths.

      Note that this is identical to a configmap volume source without the
      default

      mode.
  k8s.io.api.core.v1.ConfigMapVolumeSource:
    type: object
    properties:
      localObjectReference:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
      items:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.KeyToPath'
        title: >-
          If unspecified, each key-value pair in the Data field of the
          referenced

          ConfigMap will be projected into the volume as a file whose name is
          the

          key and content is the value. If specified, the listed keys will be

          projected into the specified paths, and unlisted keys will not be

          present. If a key is specified which is not present in the ConfigMap,

          the volume setup will error unless it is marked optional. Paths must
          be

          relative and may not contain the '..' path or start with '..'.

          +optional
      defaultMode:
        type: integer
        format: int32
        title: |-
          Optional: mode bits to use on created files by default. Must be a
          value between 0 and 0777. Defaults to 0644.
          Directories within the path are not affected by this setting.
          This might be in conflict with other options that affect the file
          mode, like fsGroup, and the result can be other mode bits set.
          +optional
      optional:
        type: boolean
        format: boolean
        title: |-
          Specify whether the ConfigMap or it's keys must be defined
          +optional
    description: |-
      Adapts a ConfigMap into a volume.

      The contents of the target ConfigMap's Data field will be presented in a
      volume as files using the keys in the Data field as the file names, unless
      the items element is populated with specific mappings of keys to paths.
      ConfigMap volumes support ownership management and SELinux relabeling.
  k8s.io.api.core.v1.Container:
    type: object
    properties:
      name:
        type: string
        description: |-
          Name of the container specified as a DNS_LABEL.
          Each container in a pod must have a unique name (DNS_LABEL).
          Cannot be updated.
      image:
        type: string
        title: >-
          Docker image name.

          More info: https://kubernetes.io/docs/concepts/containers/images

          This field is optional to allow higher level config management to
          default or override

          container images in workload controllers like Deployments and
          StatefulSets.

          +optional
      command:
        type: array
        items:
          type: string
        title: >-
          Entrypoint array. Not executed within a shell.

          The docker image's ENTRYPOINT is used if this is not provided.

          Variable references $(VAR_NAME) are expanded using the container's
          environment. If a variable

          cannot be resolved, the reference in the input string will be
          unchanged. The $(VAR_NAME) syntax

          can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references
          will never be expanded,

          regardless of whether the variable exists or not.

          Cannot be updated.

          More info:
          https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

          +optional
      args:
        type: array
        items:
          type: string
        title: >-
          Arguments to the entrypoint.

          The docker image's CMD is used if this is not provided.

          Variable references $(VAR_NAME) are expanded using the container's
          environment. If a variable

          cannot be resolved, the reference in the input string will be
          unchanged. The $(VAR_NAME) syntax

          can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references
          will never be expanded,

          regardless of whether the variable exists or not.

          Cannot be updated.

          More info:
          https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

          +optional
      workingDir:
        type: string
        title: |-
          Container's working directory.
          If not specified, the container runtime's default will be used, which
          might be configured in the container image.
          Cannot be updated.
          +optional
      ports:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.ContainerPort'
        title: >-
          List of ports to expose from the container. Exposing a port here gives

          the system additional information about the network connections a

          container uses, but is primarily informational. Not specifying a port
          here

          DOES NOT prevent that port from being exposed. Any port which is

          listening on the default "0.0.0.0" address inside a container will be

          accessible from the network.

          Cannot be updated.

          +optional

          +patchMergeKey=containerPort

          +patchStrategy=merge

          +listType=map

          +listMapKey=containerPort

          +listMapKey=protocol
      envFrom:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.EnvFromSource'
        title: >-
          List of sources to populate environment variables in the container.

          The keys defined within a source must be a C_IDENTIFIER. All invalid
          keys

          will be reported as an event when the container is starting. When a
          key exists in multiple

          sources, the value associated with the last source will take
          precedence.

          Values defined by an Env with a duplicate key will take precedence.

          Cannot be updated.

          +optional
      env:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.EnvVar'
        title: |-
          List of environment variables to set in the container.
          Cannot be updated.
          +optional
          +patchMergeKey=name
          +patchStrategy=merge
      resources:
        $ref: '#/definitions/k8s.io.api.core.v1.ResourceRequirements'
        title: >-
          Compute Resources required by this container.

          Cannot be updated.

          More info:
          https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

          +optional
      volumeMounts:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.VolumeMount'
        title: |-
          Pod volumes to mount into the container's filesystem.
          Cannot be updated.
          +optional
          +patchMergeKey=mountPath
          +patchStrategy=merge
      volumeDevices:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.VolumeDevice'
        title: >-
          volumeDevices is the list of block devices to be used by the
          container.

          This is a beta feature.

          +patchMergeKey=devicePath

          +patchStrategy=merge

          +optional
      livenessProbe:
        $ref: '#/definitions/k8s.io.api.core.v1.Probe'
        title: >-
          Periodic probe of container liveness.

          Container will be restarted if the probe fails.

          Cannot be updated.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

          +optional
      readinessProbe:
        $ref: '#/definitions/k8s.io.api.core.v1.Probe'
        title: >-
          Periodic probe of container service readiness.

          Container will be removed from service endpoints if the probe fails.

          Cannot be updated.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

          +optional
      lifecycle:
        $ref: '#/definitions/k8s.io.api.core.v1.Lifecycle'
        title: >-
          Actions that the management system should take in response to
          container lifecycle events.

          Cannot be updated.

          +optional
      terminationMessagePath:
        type: string
        title: >-
          Optional: Path at which the file to which the container's termination
          message

          will be written is mounted into the container's filesystem.

          Message written is intended to be brief final status, such as an
          assertion failure message.

          Will be truncated by the node if greater than 4096 bytes. The total
          message length across

          all containers will be limited to 12kb.

          Defaults to /dev/termination-log.

          Cannot be updated.

          +optional
      terminationMessagePolicy:
        type: string
        title: >-
          Indicate how the termination message should be populated. File will
          use the contents of

          terminationMessagePath to populate the container status message on
          both success and failure.

          FallbackToLogsOnError will use the last chunk of container log output
          if the termination

          message file is empty and the container exited with an error.

          The log output is limited to 2048 bytes or 80 lines, whichever is
          smaller.

          Defaults to File.

          Cannot be updated.

          +optional
      imagePullPolicy:
        type: string
        title: >-
          Image pull policy.

          One of Always, Never, IfNotPresent.

          Defaults to Always if :latest tag is specified, or IfNotPresent
          otherwise.

          Cannot be updated.

          More info:
          https://kubernetes.io/docs/concepts/containers/images#updating-images

          +optional
      securityContext:
        $ref: '#/definitions/k8s.io.api.core.v1.SecurityContext'
        title: >-
          Security options the pod should run with.

          More info:
          https://kubernetes.io/docs/concepts/policy/security-context/

          More info:
          https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

          +optional
      stdin:
        type: boolean
        format: boolean
        title: >-
          Whether this container should allocate a buffer for stdin in the
          container runtime. If this

          is not set, reads from stdin in the container will always result in
          EOF.

          Default is false.

          +optional
      stdinOnce:
        type: boolean
        format: boolean
        title: >-
          Whether the container runtime should close the stdin channel after it
          has been opened by

          a single attach. When stdin is true the stdin stream will remain open
          across multiple attach

          sessions. If stdinOnce is set to true, stdin is opened on container
          start, is empty until the

          first client attaches to stdin, and then remains open and accepts data
          until the client disconnects,

          at which time stdin is closed and remains closed until the container
          is restarted. If this

          flag is false, a container processes that reads from stdin will never
          receive an EOF.

          Default is false

          +optional
      tty:
        type: boolean
        format: boolean
        title: >-
          Whether this container should allocate a TTY for itself, also requires
          'stdin' to be true.

          Default is false.

          +optional
    description: A single application container that you want to run within a pod.
  k8s.io.api.core.v1.ContainerImage:
    type: object
    properties:
      names:
        type: array
        items:
          type: string
        title: >-
          Names by which this image is known.

          e.g. ["k8s.gcr.io/hyperkube:v1.0.7",
          "dockerhub.io/google_containers/hyperkube:v1.0.7"]
      sizeBytes:
        type: string
        format: int64
        title: |-
          The size of the image in bytes.
          +optional
    title: Describe a container image
  k8s.io.api.core.v1.ContainerPort:
    type: object
    properties:
      name:
        type: string
        title: >-
          If specified, this must be an IANA_SVC_NAME and unique within the pod.
          Each

          named port in a pod must have a unique name. Name for the port that
          can be

          referred to by services.

          +optional
      hostPort:
        type: integer
        format: int32
        title: |-
          Number of port to expose on the host.
          If specified, this must be a valid port number, 0 < x < 65536.
          If HostNetwork is specified, this must match ContainerPort.
          Most containers do not need this.
          +optional
      containerPort:
        type: integer
        format: int32
        description: |-
          Number of port to expose on the pod's IP address.
          This must be a valid port number, 0 < x < 65536.
      protocol:
        type: string
        title: |-
          Protocol for port. Must be UDP, TCP, or SCTP.
          Defaults to "TCP".
          +optional
      hostIP:
        type: string
        title: |-
          What host IP to bind the external port to.
          +optional
    description: ContainerPort represents a network port in a single container.
  k8s.io.api.core.v1.ContainerState:
    type: object
    properties:
      waiting:
        $ref: '#/definitions/k8s.io.api.core.v1.ContainerStateWaiting'
        title: |-
          Details about a waiting container
          +optional
      running:
        $ref: '#/definitions/k8s.io.api.core.v1.ContainerStateRunning'
        title: |-
          Details about a running container
          +optional
      terminated:
        $ref: '#/definitions/k8s.io.api.core.v1.ContainerStateTerminated'
        title: |-
          Details about a terminated container
          +optional
    description: |-
      ContainerState holds a possible state of container.
      Only one of its members may be specified.
      If none of them is specified, the default one is ContainerStateWaiting.
  k8s.io.api.core.v1.ContainerStateRunning:
    type: object
    properties:
      startedAt:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Time at which the container was last (re-)started
          +optional
    description: ContainerStateRunning is a running state of a container.
  k8s.io.api.core.v1.ContainerStateTerminated:
    type: object
    properties:
      exitCode:
        type: integer
        format: int32
        title: Exit status from the last termination of the container
      signal:
        type: integer
        format: int32
        title: |-
          Signal from the last termination of the container
          +optional
      reason:
        type: string
        title: |-
          (brief) reason from the last termination of the container
          +optional
      message:
        type: string
        title: |-
          Message regarding the last termination of the container
          +optional
      startedAt:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Time at which previous execution of the container started
          +optional
      finishedAt:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Time at which the container last terminated
          +optional
      containerID:
        type: string
        title: |-
          Container's ID in the format 'docker://<container_id>'
          +optional
    description: ContainerStateTerminated is a terminated state of a container.
  k8s.io.api.core.v1.ContainerStateWaiting:
    type: object
    properties:
      reason:
        type: string
        title: |-
          (brief) reason the container is not yet running.
          +optional
      message:
        type: string
        title: |-
          Message regarding why the container is not yet running.
          +optional
    description: ContainerStateWaiting is a waiting state of a container.
  k8s.io.api.core.v1.ContainerStatus:
    type: object
    properties:
      name:
        type: string
        description: >-
          This must be a DNS_LABEL. Each container in a pod must have a unique
          name.

          Cannot be updated.
      state:
        $ref: '#/definitions/k8s.io.api.core.v1.ContainerState'
        title: |-
          Details about the container's current condition.
          +optional
      lastState:
        $ref: '#/definitions/k8s.io.api.core.v1.ContainerState'
        title: |-
          Details about the container's last termination condition.
          +optional
      ready:
        type: boolean
        format: boolean
        description: Specifies whether the container has passed its readiness probe.
      restartCount:
        type: integer
        format: int32
        description: >-
          The number of times the container has been restarted, currently based
          on

          the number of dead containers that have not yet been removed.

          Note that this is calculated from dead containers. But those
          containers are subject to

          garbage collection. This value will get capped at 5 by GC.
      image:
        type: string
        title: |-
          The image the container is running.
          More info: https://kubernetes.io/docs/concepts/containers/images
          TODO(dchen1107): Which image the container is running with?
      imageID:
        type: string
        description: ImageID of the container's image.
      containerID:
        type: string
        title: |-
          Container's ID in the format 'docker://<container_id>'.
          +optional
    description: ContainerStatus contains details for the current status of this container.
  k8s.io.api.core.v1.DaemonEndpoint:
    type: object
    properties:
      Port:
        type: integer
        format: int32
        description: Port number of the given endpoint.
    description: DaemonEndpoint contains information about a single Daemon endpoint.
  k8s.io.api.core.v1.DownwardAPIProjection:
    type: object
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.DownwardAPIVolumeFile'
        title: |-
          Items is a list of DownwardAPIVolume file
          +optional
    description: >-
      Represents downward API info for projecting into a projected volume.

      Note that this is identical to a downwardAPI volume source without the
      default

      mode.
  k8s.io.api.core.v1.DownwardAPIVolumeFile:
    type: object
    properties:
      path:
        type: string
        title: >-
          Required: Path is  the relative path name of the file to be created.
          Must not be absolute or contain the '..' path. Must be utf-8 encoded.
          The first item of the relative path must not start with '..'
      fieldRef:
        $ref: '#/definitions/k8s.io.api.core.v1.ObjectFieldSelector'
        title: >-
          Required: Selects a field of the pod: only annotations, labels, name
          and namespace are supported.

          +optional
      resourceFieldRef:
        $ref: '#/definitions/k8s.io.api.core.v1.ResourceFieldSelector'
        title: >-
          Selects a resource of the container: only resources limits and
          requests

          (limits.cpu, limits.memory, requests.cpu and requests.memory) are
          currently supported.

          +optional
      mode:
        type: integer
        format: int32
        title: |-
          Optional: mode bits to use on this file, must be a value between 0
          and 0777. If not specified, the volume defaultMode will be used.
          This might be in conflict with other options that affect the file
          mode, like fsGroup, and the result can be other mode bits set.
          +optional
    title: >-
      DownwardAPIVolumeFile represents information to create the file containing
      the pod field
  k8s.io.api.core.v1.DownwardAPIVolumeSource:
    type: object
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.DownwardAPIVolumeFile'
        title: |-
          Items is a list of downward API volume file
          +optional
      defaultMode:
        type: integer
        format: int32
        title: |-
          Optional: mode bits to use on created files by default. Must be a
          value between 0 and 0777. Defaults to 0644.
          Directories within the path are not affected by this setting.
          This might be in conflict with other options that affect the file
          mode, like fsGroup, and the result can be other mode bits set.
          +optional
    description: |-
      DownwardAPIVolumeSource represents a volume containing downward API info.
      Downward API volumes support ownership management and SELinux relabeling.
  k8s.io.api.core.v1.EmptyDirVolumeSource:
    type: object
    properties:
      medium:
        type: string
        title: >-
          What type of storage medium should back this directory.

          The default is "" which means to use the node's default medium.

          Must be an empty string (default) or Memory.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#emptydir

          +optional
      sizeLimit:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity'
        title: >-
          Total amount of local storage required for this EmptyDir volume.

          The size limit is also applicable for memory medium.

          The maximum usage on memory medium EmptyDir would be the minimum value
          between

          the SizeLimit specified here and the sum of memory limits of all
          containers in a pod.

          The default is nil which means that the limit is undefined.

          More info: http://kubernetes.io/docs/user-guide/volumes#emptydir

          +optional
    description: >-
      Represents an empty directory for a pod.

      Empty directory volumes support ownership management and SELinux
      relabeling.
  k8s.io.api.core.v1.EnvFromSource:
    type: object
    properties:
      prefix:
        type: string
        title: >-
          An optional identifier to prepend to each key in the ConfigMap. Must
          be a C_IDENTIFIER.

          +optional
      configMapRef:
        $ref: '#/definitions/k8s.io.api.core.v1.ConfigMapEnvSource'
        title: |-
          The ConfigMap to select from
          +optional
      secretRef:
        $ref: '#/definitions/k8s.io.api.core.v1.SecretEnvSource'
        title: |-
          The Secret to select from
          +optional
    title: EnvFromSource represents the source of a set of ConfigMaps
  k8s.io.api.core.v1.EnvVar:
    type: object
    properties:
      name:
        type: string
        description: Name of the environment variable. Must be a C_IDENTIFIER.
      value:
        type: string
        title: |-
          Variable references $(VAR_NAME) are expanded
          using the previous defined environment variables in the container and
          any service environment variables. If a variable cannot be resolved,
          the reference in the input string will be unchanged. The $(VAR_NAME)
          syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
          references will never be expanded, regardless of whether the variable
          exists or not.
          Defaults to "".
          +optional
      valueFrom:
        $ref: '#/definitions/k8s.io.api.core.v1.EnvVarSource'
        title: >-
          Source for the environment variable's value. Cannot be used if value
          is not empty.

          +optional
    description: EnvVar represents an environment variable present in a Container.
  k8s.io.api.core.v1.EnvVarSource:
    type: object
    properties:
      fieldRef:
        $ref: '#/definitions/k8s.io.api.core.v1.ObjectFieldSelector'
        title: >-
          Selects a field of the pod: supports metadata.name,
          metadata.namespace, metadata.labels, metadata.annotations,

          spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.

          +optional
      resourceFieldRef:
        $ref: '#/definitions/k8s.io.api.core.v1.ResourceFieldSelector'
        title: >-
          Selects a resource of the container: only resources limits and
          requests

          (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu,
          requests.memory and requests.ephemeral-storage) are currently
          supported.

          +optional
      configMapKeyRef:
        $ref: '#/definitions/k8s.io.api.core.v1.ConfigMapKeySelector'
        title: |-
          Selects a key of a ConfigMap.
          +optional
      secretKeyRef:
        $ref: '#/definitions/k8s.io.api.core.v1.SecretKeySelector'
        title: |-
          Selects a key of a secret in the pod's namespace
          +optional
    description: EnvVarSource represents a source for the value of an EnvVar.
  k8s.io.api.core.v1.ExecAction:
    type: object
    properties:
      command:
        type: array
        items:
          type: string
        title: >-
          Command is the command line to execute inside the container, the
          working directory for the

          command  is root ('/') in the container's filesystem. The command is
          simply exec'd, it is

          not run inside a shell, so traditional shell instructions ('|', etc)
          won't work. To use

          a shell, you need to explicitly call out to that shell.

          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.

          +optional
    description: ExecAction describes a "run in container" action.
  k8s.io.api.core.v1.FCVolumeSource:
    type: object
    properties:
      targetWWNs:
        type: array
        items:
          type: string
        title: |-
          Optional: FC target worldwide names (WWNs)
          +optional
      lun:
        type: integer
        format: int32
        title: |-
          Optional: FC target lun number
          +optional
      fsType:
        type: string
        title: >-
          Filesystem type to mount.

          Must be a filesystem type supported by the host operating system.

          Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.

          TODO: how do we prevent errors in the filesystem from compromising the
          machine

          +optional
      readOnly:
        type: boolean
        format: boolean
        title: |-
          Optional: Defaults to false (read/write). ReadOnly here will force
          the ReadOnly setting in VolumeMounts.
          +optional
      wwids:
        type: array
        items:
          type: string
        title: >-
          Optional: FC volume world wide identifiers (wwids)

          Either wwids or combination of targetWWNs and lun must be set, but not
          both simultaneously.

          +optional
    description: |-
      Represents a Fibre Channel volume.
      Fibre Channel volumes can only be mounted as read/write once.
      Fibre Channel volumes support ownership management and SELinux relabeling.
  k8s.io.api.core.v1.FlexVolumeSource:
    type: object
    properties:
      driver:
        type: string
        description: Driver is the name of the driver to use for this volume.
      fsType:
        type: string
        title: >-
          Filesystem type to mount.

          Must be a filesystem type supported by the host operating system.

          Ex. "ext4", "xfs", "ntfs". The default filesystem depends on
          FlexVolume script.

          +optional
      secretRef:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        title: |-
          Optional: SecretRef is reference to the secret object containing
          sensitive information to pass to the plugin scripts. This may be
          empty if no secret object is specified. If the secret object
          contains more than one secret, all secrets are passed to the plugin
          scripts.
          +optional
      readOnly:
        type: boolean
        format: boolean
        title: |-
          Optional: Defaults to false (read/write). ReadOnly here will force
          the ReadOnly setting in VolumeMounts.
          +optional
      options:
        type: object
        additionalProperties:
          type: string
        title: |-
          Optional: Extra command options if any.
          +optional
    description: |-
      FlexVolume represents a generic volume resource that is
      provisioned/attached using an exec based plugin.
  k8s.io.api.core.v1.FlockerVolumeSource:
    type: object
    properties:
      datasetName:
        type: string
        title: >-
          Name of the dataset stored as metadata -> name on the dataset for
          Flocker

          should be considered as deprecated

          +optional
      datasetUUID:
        type: string
        title: |-
          UUID of the dataset. This is unique identifier of a Flocker dataset
          +optional
    description: |-
      Represents a Flocker volume mounted by the Flocker agent.
      One and only one of datasetName and datasetUUID should be set.
      Flocker volumes do not support ownership management or SELinux relabeling.
  k8s.io.api.core.v1.GCEPersistentDiskVolumeSource:
    type: object
    properties:
      pdName:
        type: string
        title: >-
          Unique name of the PD resource in GCE. Used to identify the disk in
          GCE.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
      fsType:
        type: string
        title: >-
          Filesystem type of the volume that you want to mount.

          Tip: Ensure that the filesystem type is supported by the host
          operating system.

          Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

          TODO: how do we prevent errors in the filesystem from compromising the
          machine

          +optional
      partition:
        type: integer
        format: int32
        title: >-
          The partition in the volume that you want to mount.

          If omitted, the default is to mount by volume name.

          Examples: For volume /dev/sda1, you specify the partition as "1".

          Similarly, the volume partition for /dev/sda is "0" (or you can leave
          the property empty).

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

          +optional
      readOnly:
        type: boolean
        format: boolean
        title: >-
          ReadOnly here will force the ReadOnly setting in VolumeMounts.

          Defaults to false.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

          +optional
    description: |-
      Represents a Persistent Disk resource in Google Compute Engine.

      A GCE PD must exist before mounting to a container. The disk must
      also be in the same GCE project and zone as the kubelet. A GCE PD
      can only be mounted as read/write once or read-only many times. GCE
      PDs support ownership management and SELinux relabeling.
  k8s.io.api.core.v1.GitRepoVolumeSource:
    type: object
    properties:
      repository:
        type: string
        title: Repository URL
      revision:
        type: string
        title: |-
          Commit hash for the specified revision.
          +optional
      directory:
        type: string
        title: >-
          Target directory name.

          Must not contain or start with '..'.  If '.' is supplied, the volume
          directory will be the

          git repository.  Otherwise, if specified, the volume will contain the
          git repository in

          the subdirectory with the given name.

          +optional
    description: >-
      Represents a volume that is populated with the contents of a git
      repository.

      Git repo volumes do not support ownership management.

      Git repo volumes support SELinux relabeling.


      DEPRECATED: GitRepo is deprecated. To provision a container with a git
      repo, mount an

      EmptyDir into an InitContainer that clones the repo using git, then mount
      the EmptyDir

      into the Pod's container.
  k8s.io.api.core.v1.GlusterfsVolumeSource:
    type: object
    properties:
      endpoints:
        type: string
        title: >-
          EndpointsName is the endpoint name that details Glusterfs topology.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
      path:
        type: string
        title: >-
          Path is the Glusterfs volume path.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
      readOnly:
        type: boolean
        format: boolean
        title: >-
          ReadOnly here will force the Glusterfs volume to be mounted with
          read-only permissions.

          Defaults to false.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

          +optional
    description: >-
      Represents a Glusterfs mount that lasts the lifetime of a pod.

      Glusterfs volumes do not support ownership management or SELinux
      relabeling.
  k8s.io.api.core.v1.HTTPGetAction:
    type: object
    properties:
      path:
        type: string
        title: |-
          Path to access on the HTTP server.
          +optional
      port:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString'
        description: |-
          Name or number of the port to access on the container.
          Number must be in the range 1 to 65535.
          Name must be an IANA_SVC_NAME.
      host:
        type: string
        title: >-
          Host name to connect to, defaults to the pod IP. You probably want to
          set

          "Host" in httpHeaders instead.

          +optional
      scheme:
        type: string
        title: |-
          Scheme to use for connecting to the host.
          Defaults to HTTP.
          +optional
      httpHeaders:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.HTTPHeader'
        title: |-
          Custom headers to set in the request. HTTP allows repeated headers.
          +optional
    description: HTTPGetAction describes an action based on HTTP Get requests.
  k8s.io.api.core.v1.HTTPHeader:
    type: object
    properties:
      name:
        type: string
        title: The header field name
      value:
        type: string
        title: The header field value
    title: HTTPHeader describes a custom header to be used in HTTP probes
  k8s.io.api.core.v1.Handler:
    type: object
    properties:
      exec:
        $ref: '#/definitions/k8s.io.api.core.v1.ExecAction'
        title: |-
          One and only one of the following should be specified.
          Exec specifies the action to take.
          +optional
      httpGet:
        $ref: '#/definitions/k8s.io.api.core.v1.HTTPGetAction'
        title: |-
          HTTPGet specifies the http request to perform.
          +optional
      tcpSocket:
        $ref: '#/definitions/k8s.io.api.core.v1.TCPSocketAction'
        title: |-
          TCPSocket specifies an action involving a TCP port.
          TCP hooks not yet supported
          TODO: implement a realistic TCP lifecycle hook
          +optional
    description: |-
      Handler defines a specific action that should be taken
      TODO: pass structured data to these actions, and document that data here.
  k8s.io.api.core.v1.HostAlias:
    type: object
    properties:
      ip:
        type: string
        description: IP address of the host file entry.
      hostnames:
        type: array
        items:
          type: string
        description: Hostnames for the above IP address.
    description: >-
      HostAlias holds the mapping between IP and hostnames that will be injected
      as an entry in the

      pod's hosts file.
  k8s.io.api.core.v1.HostPathVolumeSource:
    type: object
    properties:
      path:
        type: string
        title: >-
          Path of the directory on the host.

          If the path is a symlink, it will follow the link to the real path.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#hostpath
      type:
        type: string
        title: >-
          Type for HostPath Volume

          Defaults to ""

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#hostpath

          +optional
    description: >-
      Represents a host path mapped into a pod.

      Host path volumes do not support ownership management or SELinux
      relabeling.
  k8s.io.api.core.v1.ISCSIVolumeSource:
    type: object
    properties:
      targetPortal:
        type: string
        description: >-
          iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the
          port

          is other than default (typically TCP ports 860 and 3260).
      iqn:
        type: string
        description: Target iSCSI Qualified Name.
      lun:
        type: integer
        format: int32
        description: iSCSI Target Lun number.
      iscsiInterface:
        type: string
        title: |-
          iSCSI Interface Name that uses an iSCSI transport.
          Defaults to 'default' (tcp).
          +optional
      fsType:
        type: string
        title: >-
          Filesystem type of the volume that you want to mount.

          Tip: Ensure that the filesystem type is supported by the host
          operating system.

          Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.

          More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi

          TODO: how do we prevent errors in the filesystem from compromising the
          machine

          +optional
      readOnly:
        type: boolean
        format: boolean
        title: |-
          ReadOnly here will force the ReadOnly setting in VolumeMounts.
          Defaults to false.
          +optional
      portals:
        type: array
        items:
          type: string
        title: >-
          iSCSI Target Portal List. The portal is either an IP or ip_addr:port
          if the port

          is other than default (typically TCP ports 860 and 3260).

          +optional
      chapAuthDiscovery:
        type: boolean
        format: boolean
        title: |-
          whether support iSCSI Discovery CHAP authentication
          +optional
      chapAuthSession:
        type: boolean
        format: boolean
        title: |-
          whether support iSCSI Session CHAP authentication
          +optional
      secretRef:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        title: |-
          CHAP Secret for iSCSI target and initiator authentication
          +optional
      initiatorName:
        type: string
        title: >-
          Custom iSCSI Initiator Name.

          If initiatorName is specified with iscsiInterface simultaneously, new
          iSCSI interface

          <target portal>:<volume name> will be created for the connection.

          +optional
    description: |-
      Represents an ISCSI disk.
      ISCSI volumes can only be mounted as read/write once.
      ISCSI volumes support ownership management and SELinux relabeling.
  k8s.io.api.core.v1.KeyToPath:
    type: object
    properties:
      key:
        type: string
        description: The key to project.
      path:
        type: string
        description: |-
          The relative path of the file to map the key to.
          May not be an absolute path.
          May not contain the path element '..'.
          May not start with the string '..'.
      mode:
        type: integer
        format: int32
        title: |-
          Optional: mode bits to use on this file, must be a value between 0
          and 0777. If not specified, the volume defaultMode will be used.
          This might be in conflict with other options that affect the file
          mode, like fsGroup, and the result can be other mode bits set.
          +optional
    description: Maps a string key to a path within a volume.
  k8s.io.api.core.v1.Lifecycle:
    type: object
    properties:
      postStart:
        $ref: '#/definitions/k8s.io.api.core.v1.Handler'
        title: >-
          PostStart is called immediately after a container is created. If the
          handler fails,

          the container is terminated and restarted according to its restart
          policy.

          Other management of the container blocks until the hook completes.

          More info:
          https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

          +optional
      preStop:
        $ref: '#/definitions/k8s.io.api.core.v1.Handler'
        title: >-
          PreStop is called immediately before a container is terminated due to
          an

          API request or management event such as liveness probe failure,

          preemption, resource contention, etc. The handler is not called if the

          container crashes or exits. The reason for termination is passed to
          the

          handler. The Pod's termination grace period countdown begins before
          the

          PreStop hooked is executed. Regardless of the outcome of the handler,
          the

          container will eventually terminate within the Pod's termination grace

          period. Other management of the container blocks until the hook
          completes

          or until the termination grace period is reached.

          More info:
          https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

          +optional
    description: >-
      Lifecycle describes actions that the management system should take in
      response to container lifecycle

      events. For the PostStart and PreStop lifecycle handlers, management of
      the container blocks

      until the action is complete, unless the container process fails, in which
      case the handler is aborted.
  k8s.io.api.core.v1.LoadBalancerIngress:
    type: object
    properties:
      ip:
        type: string
        title: |-
          IP is set for load-balancer ingress points that are IP based
          (typically GCE or OpenStack load-balancers)
          +optional
      hostname:
        type: string
        title: |-
          Hostname is set for load-balancer ingress points that are DNS based
          (typically AWS load-balancers)
          +optional
    description: >-
      LoadBalancerIngress represents the status of a load-balancer ingress
      point:

      traffic intended for the service should be sent to an ingress point.
  k8s.io.api.core.v1.LoadBalancerStatus:
    type: object
    properties:
      ingress:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.LoadBalancerIngress'
        title: >-
          Ingress is a list containing ingress points for the load-balancer.

          Traffic intended for the service should be sent to these ingress
          points.

          +optional
    description: LoadBalancerStatus represents the status of a load-balancer.
  k8s.io.api.core.v1.LocalObjectReference:
    type: object
    properties:
      name:
        type: string
        title: >-
          Name of the referent.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

          TODO: Add other useful fields. apiVersion, kind, uid?

          +optional
    description: |-
      LocalObjectReference contains enough information to let you locate the
      referenced object inside the same namespace.
  k8s.io.api.core.v1.NFSVolumeSource:
    type: object
    properties:
      server:
        type: string
        title: |-
          Server is the hostname or IP address of the NFS server.
          More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
      path:
        type: string
        title: |-
          Path that is exported by the NFS server.
          More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
      readOnly:
        type: boolean
        format: boolean
        title: |-
          ReadOnly here will force
          the NFS export to be mounted with read-only permissions.
          Defaults to false.
          More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
          +optional
    description: |-
      Represents an NFS mount that lasts the lifetime of a pod.
      NFS volumes do not support ownership management or SELinux relabeling.
  k8s.io.api.core.v1.Namespace:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.core.v1.NamespaceSpec'
        title: >-
          Spec defines the behavior of the Namespace.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.core.v1.NamespaceStatus'
        title: >-
          Status describes the current status of a Namespace.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    description: |-
      Namespace provides a scope for Names.
      Use of multiple namespaces is optional.
  k8s.io.api.core.v1.NamespaceSpec:
    type: object
    properties:
      finalizers:
        type: array
        items:
          type: string
        title: >-
          Finalizers is an opaque list of values that must be empty to
          permanently remove object from storage.

          More info:
          https://kubernetes.io/docs/tasks/administer-cluster/namespaces/

          +optional
    description: NamespaceSpec describes the attributes on a Namespace.
  k8s.io.api.core.v1.NamespaceStatus:
    type: object
    properties:
      phase:
        type: string
        title: >-
          Phase is the current lifecycle phase of the namespace.

          More info:
          https://kubernetes.io/docs/tasks/administer-cluster/namespaces/

          +optional
    description: NamespaceStatus is information about the current status of a Namespace.
  k8s.io.api.core.v1.Node:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeSpec'
        title: >-
          Spec defines the behavior of a node.

          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeStatus'
        title: >-
          Most recently observed status of the node.

          Populated by the system.

          Read-only.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    description: |-
      Node is a worker node in Kubernetes.
      Each node will have a unique identifier in the cache (i.e. in etcd).
  k8s.io.api.core.v1.NodeAddress:
    type: object
    properties:
      type:
        type: string
        description: 'Node address type, one of Hostname, ExternalIP or InternalIP.'
      address:
        type: string
        description: The node address.
    description: NodeAddress contains information for the node's address.
  k8s.io.api.core.v1.NodeAffinity:
    type: object
    properties:
      requiredDuringSchedulingIgnoredDuringExecution:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeSelector'
        title: |-
          If the affinity requirements specified by this field are not met at
          scheduling time, the pod will not be scheduled onto the node.
          If the affinity requirements specified by this field cease to be met
          at some point during pod execution (e.g. due to an update), the system
          may or may not try to eventually evict the pod from its node.
          +optional
      preferredDuringSchedulingIgnoredDuringExecution:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.PreferredSchedulingTerm'
        title: >-
          The scheduler will prefer to schedule pods to nodes that satisfy

          the affinity expressions specified by this field, but it may choose

          a node that violates one or more of the expressions. The node that is

          most preferred is the one with the greatest sum of weights, i.e.

          for each node that meets all of the scheduling requirements (resource

          request, requiredDuringScheduling affinity expressions, etc.),

          compute a sum by iterating through the elements of this field and
          adding

          "weight" to the sum if the node matches the corresponding
          matchExpressions; the

          node(s) with the highest sum are the most preferred.

          +optional
    description: Node affinity is a group of node affinity scheduling rules.
  k8s.io.api.core.v1.NodeCondition:
    type: object
    properties:
      type:
        type: string
        description: Type of node condition.
      status:
        type: string
        description: 'Status of the condition, one of True, False, Unknown.'
      lastHeartbeatTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time we got an update on a given condition.
          +optional
      lastTransitionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time the condition transit from one status to another.
          +optional
      reason:
        type: string
        title: |-
          (brief) reason for the condition's last transition.
          +optional
      message:
        type: string
        title: |-
          Human readable message indicating details about last transition.
          +optional
    description: NodeCondition contains condition information for a node.
  k8s.io.api.core.v1.NodeConfigSource:
    type: object
    properties:
      configMap:
        $ref: '#/definitions/k8s.io.api.core.v1.ConfigMapNodeConfigSource'
        title: ConfigMap is a reference to a Node's ConfigMap
    description: >-
      NodeConfigSource specifies a source of node configuration. Exactly one
      subfield (excluding metadata) must be non-nil.
  k8s.io.api.core.v1.NodeConfigStatus:
    type: object
    properties:
      assigned:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeConfigSource'
        title: >-
          Assigned reports the checkpointed config the node will try to use.

          When Node.Spec.ConfigSource is updated, the node checkpoints the
          associated

          config payload to local disk, along with a record indicating intended

          config. The node refers to this record to choose its config
          checkpoint, and

          reports this record in Assigned. Assigned only updates in the status
          after

          the record has been checkpointed to disk. When the Kubelet is
          restarted,

          it tries to make the Assigned config the Active config by loading and

          validating the checkpointed payload identified by Assigned.

          +optional
      active:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeConfigSource'
        title: >-
          Active reports the checkpointed config the node is actively using.

          Active will represent either the current version of the Assigned
          config,

          or the current LastKnownGood config, depending on whether attempting
          to use the

          Assigned config results in an error.

          +optional
      lastKnownGood:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeConfigSource'
        title: >-
          LastKnownGood reports the checkpointed config the node will fall back
          to

          when it encounters an error attempting to use the Assigned config.

          The Assigned config becomes the LastKnownGood config when the node
          determines

          that the Assigned config is stable and correct.

          This is currently implemented as a 10-minute soak period starting when
          the local

          record of Assigned config is updated. If the Assigned config is Active
          at the end

          of this period, it becomes the LastKnownGood. Note that if
          Spec.ConfigSource is

          reset to nil (use local defaults), the LastKnownGood is also
          immediately reset to nil,

          because the local default config is always assumed good.

          You should not make assumptions about the node's method of determining
          config stability

          and correctness, as this may change or become configurable in the
          future.

          +optional
      error:
        type: string
        title: >-
          Error describes any problems reconciling the Spec.ConfigSource to the
          Active config.

          Errors may occur, for example, attempting to checkpoint
          Spec.ConfigSource to the local Assigned

          record, attempting to checkpoint the payload associated with
          Spec.ConfigSource, attempting

          to load or validate the Assigned config, etc.

          Errors may occur at different points while syncing config. Earlier
          errors (e.g. download or

          checkpointing errors) will not result in a rollback to LastKnownGood,
          and may resolve across

          Kubelet retries. Later errors (e.g. loading or validating a
          checkpointed config) will result in

          a rollback to LastKnownGood. In the latter case, it is usually
          possible to resolve the error

          by fixing the config assigned in Spec.ConfigSource.

          You can find additional information for debugging by searching the
          error message in the Kubelet log.

          Error is a human-readable description of the error state; machines can
          check whether or not Error

          is empty, but should not rely on the stability of the Error text
          across Kubelet versions.

          +optional
    description: >-
      NodeConfigStatus describes the status of the config assigned by
      Node.Spec.ConfigSource.
  k8s.io.api.core.v1.NodeDaemonEndpoints:
    type: object
    properties:
      kubeletEndpoint:
        $ref: '#/definitions/k8s.io.api.core.v1.DaemonEndpoint'
        title: |-
          Endpoint on which Kubelet is listening.
          +optional
    description: NodeDaemonEndpoints lists ports opened by daemons running on the Node.
  k8s.io.api.core.v1.NodeSelector:
    type: object
    properties:
      nodeSelectorTerms:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.NodeSelectorTerm'
        description: Required. A list of node selector terms. The terms are ORed.
    description: >-
      A node selector represents the union of the results of one or more label
      queries

      over a set of nodes; that is, it represents the OR of the selectors
      represented

      by the node selector terms.
  k8s.io.api.core.v1.NodeSelectorRequirement:
    type: object
    properties:
      key:
        type: string
        description: The label key that the selector applies to.
      operator:
        type: string
        description: |-
          Represents a key's relationship to a set of values.
          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
      values:
        type: array
        items:
          type: string
        title: >-
          An array of string values. If the operator is In or NotIn,

          the values array must be non-empty. If the operator is Exists or
          DoesNotExist,

          the values array must be empty. If the operator is Gt or Lt, the
          values

          array must have a single element, which will be interpreted as an
          integer.

          This array is replaced during a strategic merge patch.

          +optional
    description: >-
      A node selector requirement is a selector that contains values, a key, and
      an operator

      that relates the key and values.
  k8s.io.api.core.v1.NodeSelectorTerm:
    type: object
    properties:
      matchExpressions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.NodeSelectorRequirement'
        title: |-
          A list of node selector requirements by node's labels.
          +optional
      matchFields:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.NodeSelectorRequirement'
        title: |-
          A list of node selector requirements by node's fields.
          +optional
    description: |-
      A null or empty node selector term matches no objects. The requirements of
      them are ANDed.
      The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  k8s.io.api.core.v1.NodeSpec:
    type: object
    properties:
      podCIDR:
        type: string
        title: |-
          PodCIDR represents the pod IP range assigned to the node.
          +optional
      providerID:
        type: string
        title: >-
          ID of the node assigned by the cloud provider in the format:
          <ProviderName>://<ProviderSpecificNodeID>

          +optional
      unschedulable:
        type: boolean
        format: boolean
        title: >-
          Unschedulable controls node schedulability of new pods. By default,
          node is schedulable.

          More info:
          https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration

          +optional
      taints:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.Taint'
        title: |-
          If specified, the node's taints.
          +optional
      configSource:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeConfigSource'
        title: >-
          If specified, the source to get node configuration from

          The DynamicKubeletConfig feature gate must be enabled for the Kubelet
          to use this field

          +optional
      externalID:
        type: string
        title: >-
          Deprecated. Not all kubelets will set this field. Remove field after
          1.13.

          see: https://issues.k8s.io/61966

          +optional
    description: NodeSpec describes the attributes that a node is created with.
  k8s.io.api.core.v1.NodeStatus:
    type: object
    properties:
      capacity:
        type: object
        additionalProperties:
          $ref: '#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity'
        title: >-
          Capacity represents the total resources of a node.

          More info:
          https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity

          +optional
      allocatable:
        type: object
        additionalProperties:
          $ref: '#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity'
        title: >-
          Allocatable represents the resources of a node that are available for
          scheduling.

          Defaults to Capacity.

          +optional
      phase:
        type: string
        title: |-
          NodePhase is the recently observed lifecycle phase of the node.
          More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
          The field is never populated, and now is deprecated.
          +optional
      conditions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.NodeCondition'
        title: |-
          Conditions is an array of current observed node conditions.
          More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
          +optional
          +patchMergeKey=type
          +patchStrategy=merge
      addresses:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.NodeAddress'
        title: |-
          List of addresses reachable to the node.
          Queried from cloud provider, if available.
          More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
          +optional
          +patchMergeKey=type
          +patchStrategy=merge
      daemonEndpoints:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeDaemonEndpoints'
        title: |-
          Endpoints of daemons running on the Node.
          +optional
      nodeInfo:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeSystemInfo'
        title: |-
          Set of ids/uuids to uniquely identify the node.
          More info: https://kubernetes.io/docs/concepts/nodes/node/#info
          +optional
      images:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.ContainerImage'
        title: |-
          List of container images on this node
          +optional
      volumesInUse:
        type: array
        items:
          type: string
        title: |-
          List of attachable volumes in use (mounted) by the node.
          +optional
      volumesAttached:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.AttachedVolume'
        title: |-
          List of volumes that are attached to the node.
          +optional
      config:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeConfigStatus'
        title: >-
          Status of the config assigned to the node via the dynamic Kubelet
          config feature.

          +optional
    description: NodeStatus is information about the current status of a node.
  k8s.io.api.core.v1.NodeSystemInfo:
    type: object
    properties:
      machineID:
        type: string
        title: |-
          MachineID reported by the node. For unique machine identification
          in the cluster this field is preferred. Learn more from man(5)
          machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
      systemUUID:
        type: string
        title: >-
          SystemUUID reported by the node. For unique machine identification

          MachineID is preferred. This field is specific to Red Hat hosts

          https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
      bootID:
        type: string
        description: Boot ID reported by the node.
      kernelVersion:
        type: string
        description: >-
          Kernel Version reported by the node from 'uname -r' (e.g.
          3.16.0-0.bpo.4-amd64).
      osImage:
        type: string
        description: >-
          OS Image reported by the node from /etc/os-release (e.g. Debian
          GNU/Linux 7 (wheezy)).
      containerRuntimeVersion:
        type: string
        description: >-
          ContainerRuntime Version reported by the node through runtime remote
          API (e.g. docker://1.5.0).
      kubeletVersion:
        type: string
        description: Kubelet Version reported by the node.
      kubeProxyVersion:
        type: string
        description: KubeProxy Version reported by the node.
      operatingSystem:
        type: string
        title: The Operating System reported by the node
      architecture:
        type: string
        title: The Architecture reported by the node
    description: NodeSystemInfo is a set of ids/uuids to uniquely identify the node.
  k8s.io.api.core.v1.ObjectFieldSelector:
    type: object
    properties:
      apiVersion:
        type: string
        title: >-
          Version of the schema the FieldPath is written in terms of, defaults
          to "v1".

          +optional
      fieldPath:
        type: string
        description: Path of the field to select in the specified API version.
    description: ObjectFieldSelector selects an APIVersioned field of an object.
  k8s.io.api.core.v1.ObjectReference:
    type: object
    properties:
      kind:
        type: string
        title: >-
          Kind of the referent.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

          +optional
      namespace:
        type: string
        title: >-
          Namespace of the referent.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

          +optional
      name:
        type: string
        title: >-
          Name of the referent.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

          +optional
      uid:
        type: string
        title: >-
          UID of the referent.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

          +optional
      apiVersion:
        type: string
        title: |-
          API version of the referent.
          +optional
      resourceVersion:
        type: string
        title: >-
          Specific resourceVersion to which this reference is made, if any.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

          +optional
      fieldPath:
        type: string
        title: >-
          If referring to a piece of an object instead of an entire object, this
          string

          should contain a valid JSON/Go field access statement, such as
          desiredState.manifest.containers[2].

          For example, if the object reference is to a container within a pod,
          this would take on a value like:

          "spec.containers{name}" (where "name" refers to the name of the
          container that triggered

          the event) or if no container name is specified "spec.containers[2]"
          (container with

          index 2 in this pod). This syntax is chosen only to have some
          well-defined way of

          referencing a part of an object.

          TODO: this design is not final and this field is subject to change in
          the future.

          +optional
    title: >-
      ObjectReference contains enough information to let you inspect or modify
      the referred object.

      +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
  k8s.io.api.core.v1.PersistentVolumeClaim:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.core.v1.PersistentVolumeClaimSpec'
        title: >-
          Spec defines the desired characteristics of a volume requested by a
          pod author.

          More info:
          https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.core.v1.PersistentVolumeClaimStatus'
        title: >-
          Status represents the current information/status of a persistent
          volume claim.

          Read-only.

          More info:
          https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

          +optional
    title: >-
      PersistentVolumeClaim is a user's request for and claim to a persistent
      volume
  k8s.io.api.core.v1.PersistentVolumeClaimCondition:
    type: object
    properties:
      type:
        type: string
      status:
        type: string
      lastProbeTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time we probed the condition.
          +optional
      lastTransitionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time the condition transitioned from one status to another.
          +optional
      reason:
        type: string
        title: >-
          Unique, this should be a short, machine understandable string that
          gives the reason

          for condition's last transition. If it reports "ResizeStarted" that
          means the underlying

          persistent volume is being resized.

          +optional
      message:
        type: string
        title: |-
          Human-readable message indicating details about last transition.
          +optional
    title: PersistentVolumeClaimCondition contails details about state of pvc
  k8s.io.api.core.v1.PersistentVolumeClaimSpec:
    type: object
    properties:
      accessModes:
        type: array
        items:
          type: string
        title: >-
          AccessModes contains the desired access modes the volume should have.

          More info:
          https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

          +optional
      selector:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector'
        title: |-
          A label query over volumes to consider for binding.
          +optional
      resources:
        $ref: '#/definitions/k8s.io.api.core.v1.ResourceRequirements'
        title: >-
          Resources represents the minimum resources the volume should have.

          More info:
          https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

          +optional
      volumeName:
        type: string
        title: >-
          VolumeName is the binding reference to the PersistentVolume backing
          this claim.

          +optional
      storageClassName:
        type: string
        title: >-
          Name of the StorageClass required by the claim.

          More info:
          https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

          +optional
      volumeMode:
        type: string
        title: |-
          volumeMode defines what type of volume is required by the claim.
          Value of Filesystem is implied when not included in claim spec.
          This is a beta feature.
          +optional
      dataSource:
        $ref: '#/definitions/k8s.io.api.core.v1.TypedLocalObjectReference'
        title: >-
          This field requires the VolumeSnapshotDataSource alpha feature gate to
          be

          enabled and currently VolumeSnapshot is the only supported data
          source.

          If the provisioner can support VolumeSnapshot data source, it will
          create

          a new volume and data will be restored to the volume at the same time.

          If the provisioner does not support VolumeSnapshot data source, volume
          will

          not be created and the failure will be reported as an event.

          In the future, we plan to support more data source types and the
          behavior

          of the provisioner may change.

          +optional
    title: >-
      PersistentVolumeClaimSpec describes the common attributes of storage
      devices

      and allows a Source for provider-specific attributes
  k8s.io.api.core.v1.PersistentVolumeClaimStatus:
    type: object
    properties:
      phase:
        type: string
        title: |-
          Phase represents the current phase of PersistentVolumeClaim.
          +optional
      accessModes:
        type: array
        items:
          type: string
        title: >-
          AccessModes contains the actual access modes the volume backing the
          PVC has.

          More info:
          https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

          +optional
      capacity:
        type: object
        additionalProperties:
          $ref: '#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity'
        title: |-
          Represents the actual resources of the underlying volume.
          +optional
      conditions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.PersistentVolumeClaimCondition'
        title: >-
          Current Condition of persistent volume claim. If underlying persistent
          volume is being

          resized then the Condition will be set to 'ResizeStarted'.

          +optional

          +patchMergeKey=type

          +patchStrategy=merge
    description: >-
      PersistentVolumeClaimStatus is the current status of a persistent volume
      claim.
  k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource:
    type: object
    properties:
      claimName:
        type: string
        title: >-
          ClaimName is the name of a PersistentVolumeClaim in the same namespace
          as the pod using this volume.

          More info:
          https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
      readOnly:
        type: boolean
        format: boolean
        title: |-
          Will force the ReadOnly setting in VolumeMounts.
          Default false.
          +optional
    description: >-
      PersistentVolumeClaimVolumeSource references the user's PVC in the same
      namespace.

      This volume finds the bound PV and mounts that volume for the pod. A

      PersistentVolumeClaimVolumeSource is, essentially, a wrapper around
      another

      type of volume that is owned by someone else (the system).
  k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource:
    type: object
    properties:
      pdID:
        type: string
        title: ID that identifies Photon Controller persistent disk
      fsType:
        type: string
        description: >-
          Filesystem type to mount.

          Must be a filesystem type supported by the host operating system.

          Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.
    description: Represents a Photon Controller persistent disk resource.
  k8s.io.api.core.v1.Pod:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.core.v1.PodSpec'
        title: >-
          Specification of the desired behavior of the pod.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.core.v1.PodStatus'
        title: >-
          Most recently observed status of the pod.

          This data may not be up to date.

          Populated by the system.

          Read-only.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    description: >-
      Pod is a collection of containers that can run on a host. This resource is
      created

      by clients and scheduled onto hosts.
  k8s.io.api.core.v1.PodAffinity:
    type: object
    properties:
      requiredDuringSchedulingIgnoredDuringExecution:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.PodAffinityTerm'
        title: >-
          If the affinity requirements specified by this field are not met at

          scheduling time, the pod will not be scheduled onto the node.

          If the affinity requirements specified by this field cease to be met

          at some point during pod execution (e.g. due to a pod label update),
          the

          system may or may not try to eventually evict the pod from its node.

          When there are multiple elements, the lists of nodes corresponding to
          each

          podAffinityTerm are intersected, i.e. all terms must be satisfied.

          +optional
      preferredDuringSchedulingIgnoredDuringExecution:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.WeightedPodAffinityTerm'
        title: >-
          The scheduler will prefer to schedule pods to nodes that satisfy

          the affinity expressions specified by this field, but it may choose

          a node that violates one or more of the expressions. The node that is

          most preferred is the one with the greatest sum of weights, i.e.

          for each node that meets all of the scheduling requirements (resource

          request, requiredDuringScheduling affinity expressions, etc.),

          compute a sum by iterating through the elements of this field and
          adding

          "weight" to the sum if the node has pods which matches the
          corresponding podAffinityTerm; the

          node(s) with the highest sum are the most preferred.

          +optional
    description: Pod affinity is a group of inter pod affinity scheduling rules.
  k8s.io.api.core.v1.PodAffinityTerm:
    type: object
    properties:
      labelSelector:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector'
        title: |-
          A label query over a set of resources, in this case pods.
          +optional
      namespaces:
        type: array
        items:
          type: string
        title: >-
          namespaces specifies which namespaces the labelSelector applies to
          (matches against);

          null or empty list means "this pod's namespace"

          +optional
      topologyKey:
        type: string
        description: >-
          This pod should be co-located (affinity) or not co-located
          (anti-affinity) with the pods matching

          the labelSelector in the specified namespaces, where co-located is
          defined as running on a node

          whose value of the label with key topologyKey matches that of any node
          on which any of the

          selected pods is running.

          Empty topologyKey is not allowed.
    title: |-
      Defines a set of pods (namely those matching the labelSelector
      relative to the given namespace(s)) that this pod should be
      co-located (affinity) or not co-located (anti-affinity) with,
      where co-located is defined as running on a node whose value of
      the label with key <topologyKey> matches that of any node on which
      a pod of the set of pods is running
  k8s.io.api.core.v1.PodAntiAffinity:
    type: object
    properties:
      requiredDuringSchedulingIgnoredDuringExecution:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.PodAffinityTerm'
        title: >-
          If the anti-affinity requirements specified by this field are not met
          at

          scheduling time, the pod will not be scheduled onto the node.

          If the anti-affinity requirements specified by this field cease to be
          met

          at some point during pod execution (e.g. due to a pod label update),
          the

          system may or may not try to eventually evict the pod from its node.

          When there are multiple elements, the lists of nodes corresponding to
          each

          podAffinityTerm are intersected, i.e. all terms must be satisfied.

          +optional
      preferredDuringSchedulingIgnoredDuringExecution:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.WeightedPodAffinityTerm'
        title: >-
          The scheduler will prefer to schedule pods to nodes that satisfy

          the anti-affinity expressions specified by this field, but it may
          choose

          a node that violates one or more of the expressions. The node that is

          most preferred is the one with the greatest sum of weights, i.e.

          for each node that meets all of the scheduling requirements (resource

          request, requiredDuringScheduling anti-affinity expressions, etc.),

          compute a sum by iterating through the elements of this field and
          adding

          "weight" to the sum if the node has pods which matches the
          corresponding podAffinityTerm; the

          node(s) with the highest sum are the most preferred.

          +optional
    description: Pod anti affinity is a group of inter pod anti affinity scheduling rules.
  k8s.io.api.core.v1.PodCondition:
    type: object
    properties:
      type:
        type: string
        title: >-
          Type is the type of the condition.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
      status:
        type: string
        title: >-
          Status is the status of the condition.

          Can be True, False, Unknown.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
      lastProbeTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time we probed the condition.
          +optional
      lastTransitionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          Last time the condition transitioned from one status to another.
          +optional
      reason:
        type: string
        title: >-
          Unique, one-word, CamelCase reason for the condition's last
          transition.

          +optional
      message:
        type: string
        title: |-
          Human-readable message indicating details about last transition.
          +optional
    description: PodCondition contains details for the current condition of this pod.
  k8s.io.api.core.v1.PodDNSConfig:
    type: object
    properties:
      nameservers:
        type: array
        items:
          type: string
        title: >-
          A list of DNS name server IP addresses.

          This will be appended to the base nameservers generated from
          DNSPolicy.

          Duplicated nameservers will be removed.

          +optional
      searches:
        type: array
        items:
          type: string
        title: >-
          A list of DNS search domains for host-name lookup.

          This will be appended to the base search paths generated from
          DNSPolicy.

          Duplicated search paths will be removed.

          +optional
      options:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.PodDNSConfigOption'
        title: >-
          A list of DNS resolver options.

          This will be merged with the base options generated from DNSPolicy.

          Duplicated entries will be removed. Resolution options given in
          Options

          will override those that appear in the base DNSPolicy.

          +optional
    description: |-
      PodDNSConfig defines the DNS parameters of a pod in addition to
      those generated from DNSPolicy.
  k8s.io.api.core.v1.PodDNSConfigOption:
    type: object
    properties:
      name:
        type: string
        description: Required.
      value:
        type: string
        title: +optional
    description: PodDNSConfigOption defines DNS resolver options of a pod.
  k8s.io.api.core.v1.PodReadinessGate:
    type: object
    properties:
      conditionType:
        type: string
        description: >-
          ConditionType refers to a condition in the pod's condition list with
          matching type.
    title: PodReadinessGate contains the reference to a pod condition
  k8s.io.api.core.v1.PodSecurityContext:
    type: object
    properties:
      seLinuxOptions:
        $ref: '#/definitions/k8s.io.api.core.v1.SELinuxOptions'
        title: >-
          The SELinux context to be applied to all containers.

          If unspecified, the container runtime will allocate a random SELinux
          context for each

          container.  May also be set in SecurityContext.  If set in

          both SecurityContext and PodSecurityContext, the value specified in
          SecurityContext

          takes precedence for that container.

          +optional
      runAsUser:
        type: string
        format: int64
        title: >-
          The UID to run the entrypoint of the container process.

          Defaults to user specified in image metadata if unspecified.

          May also be set in SecurityContext.  If set in both SecurityContext
          and

          PodSecurityContext, the value specified in SecurityContext takes
          precedence

          for that container.

          +optional
      runAsGroup:
        type: string
        format: int64
        title: >-
          The GID to run the entrypoint of the container process.

          Uses runtime default if unset.

          May also be set in SecurityContext.  If set in both SecurityContext
          and

          PodSecurityContext, the value specified in SecurityContext takes
          precedence

          for that container.

          +optional
      runAsNonRoot:
        type: boolean
        format: boolean
        title: >-
          Indicates that the container must run as a non-root user.

          If true, the Kubelet will validate the image at runtime to ensure that
          it

          does not run as UID 0 (root) and fail to start the container if it
          does.

          If unset or false, no such validation will be performed.

          May also be set in SecurityContext.  If set in both SecurityContext
          and

          PodSecurityContext, the value specified in SecurityContext takes
          precedence.

          +optional
      supplementalGroups:
        type: array
        items:
          type: string
          format: int64
        title: >-
          A list of groups applied to the first process run in each container,
          in addition

          to the container's primary GID.  If unspecified, no groups will be
          added to

          any container.

          +optional
      fsGroup:
        type: string
        format: int64
        description: >-
          1. The owning GID will be the FSGroup

          2. The setgid bit is set (new files created in the volume will be
          owned by FSGroup)

          3. The permission bits are OR'd with rw-rw----


          If unset, the Kubelet will not modify the ownership and permissions of
          any volume.

          +optional
        title: >-
          A special supplemental group that applies to all containers in a pod.

          Some volume types allow the Kubelet to change the ownership of that
          volume

          to be owned by the pod:
      sysctls:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.Sysctl'
        title: >-
          Sysctls hold a list of namespaced sysctls used for the pod. Pods with
          unsupported

          sysctls (by the container runtime) might fail to launch.

          +optional
    description: >-
      PodSecurityContext holds pod-level security attributes and common
      container settings.

      Some fields are also present in container.securityContext.  Field values
      of

      container.securityContext take precedence over field values of
      PodSecurityContext.
  k8s.io.api.core.v1.PodSpec:
    type: object
    properties:
      volumes:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.Volume'
        title: >-
          List of volumes that can be mounted by containers belonging to the
          pod.

          More info: https://kubernetes.io/docs/concepts/storage/volumes

          +optional

          +patchMergeKey=name

          +patchStrategy=merge,retainKeys
      initContainers:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.Container'
        title: >-
          List of initialization containers belonging to the pod.

          Init containers are executed in order prior to containers being
          started. If any

          init container fails, the pod is considered to have failed and is
          handled according

          to its restartPolicy. The name for an init container or normal
          container must be

          unique among all containers.

          Init containers may not have Lifecycle actions, Readiness probes, or
          Liveness probes.

          The resourceRequirements of an init container are taken into account
          during scheduling

          by finding the highest request/limit for each resource type, and then
          using the max of

          of that value or the sum of the normal containers. Limits are applied
          to init containers

          in a similar fashion.

          Init containers cannot currently be added or removed.

          Cannot be updated.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

          +patchMergeKey=name

          +patchStrategy=merge
      containers:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.Container'
        title: |-
          List of containers belonging to the pod.
          Containers cannot currently be added or removed.
          There must be at least one container in a Pod.
          Cannot be updated.
          +patchMergeKey=name
          +patchStrategy=merge
      restartPolicy:
        type: string
        title: >-
          Restart policy for all containers within the pod.

          One of Always, OnFailure, Never.

          Default to Always.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

          +optional
      terminationGracePeriodSeconds:
        type: string
        format: int64
        title: >-
          Optional duration in seconds the pod needs to terminate gracefully.
          May be decreased in delete request.

          Value must be non-negative integer. The value zero indicates delete
          immediately.

          If this value is nil, the default grace period will be used instead.

          The grace period is the duration in seconds after the processes
          running in the pod are sent

          a termination signal and the time when the processes are forcibly
          halted with a kill signal.

          Set this value longer than the expected cleanup time for your process.

          Defaults to 30 seconds.

          +optional
      activeDeadlineSeconds:
        type: string
        format: int64
        title: >-
          Optional duration in seconds the pod may be active on the node
          relative to

          StartTime before the system will actively try to mark it failed and
          kill associated containers.

          Value must be a positive integer.

          +optional
      dnsPolicy:
        type: string
        title: >-
          Set DNS policy for the pod.

          Defaults to "ClusterFirst".

          Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default'
          or 'None'.

          DNS parameters given in DNSConfig will be merged with the policy
          selected with DNSPolicy.

          To have DNS options set along with hostNetwork, you have to specify
          DNS policy

          explicitly to 'ClusterFirstWithHostNet'.

          +optional
      nodeSelector:
        type: object
        additionalProperties:
          type: string
        title: >-
          NodeSelector is a selector which must be true for the pod to fit on a
          node.

          Selector which must match a node's labels for the pod to be scheduled
          on that node.

          More info:
          https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

          +optional
      serviceAccountName:
        type: string
        title: >-
          ServiceAccountName is the name of the ServiceAccount to use to run
          this pod.

          More info:
          https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

          +optional
      serviceAccount:
        type: string
        title: >-
          DeprecatedServiceAccount is a depreciated alias for
          ServiceAccountName.

          Deprecated: Use serviceAccountName instead.

          +k8s:conversion-gen=false

          +optional
      automountServiceAccountToken:
        type: boolean
        format: boolean
        title: >-
          AutomountServiceAccountToken indicates whether a service account token
          should be automatically mounted.

          +optional
      nodeName:
        type: string
        title: >-
          NodeName is a request to schedule this pod onto a specific node. If it
          is non-empty,

          the scheduler simply schedules this pod onto that node, assuming that
          it fits resource

          requirements.

          +optional
      hostNetwork:
        type: boolean
        format: boolean
        title: >-
          Host networking requested for this pod. Use the host's network
          namespace.

          If this option is set, the ports that will be used must be specified.

          Default to false.

          +k8s:conversion-gen=false

          +optional
      hostPID:
        type: boolean
        format: boolean
        title: |-
          Use the host's pid namespace.
          Optional: Default to false.
          +k8s:conversion-gen=false
          +optional
      hostIPC:
        type: boolean
        format: boolean
        title: |-
          Use the host's ipc namespace.
          Optional: Default to false.
          +k8s:conversion-gen=false
          +optional
      shareProcessNamespace:
        type: boolean
        format: boolean
        title: >-
          Share a single process namespace between all of the containers in a
          pod.

          When this is set containers will be able to view and signal processes
          from other containers

          in the same pod, and the first process in each container will not be
          assigned PID 1.

          HostPID and ShareProcessNamespace cannot both be set.

          Optional: Default to false.

          This field is beta-level and may be disabled with the
          PodShareProcessNamespace feature.

          +k8s:conversion-gen=false

          +optional
      securityContext:
        $ref: '#/definitions/k8s.io.api.core.v1.PodSecurityContext'
        title: >-
          SecurityContext holds pod-level security attributes and common
          container settings.

          Optional: Defaults to empty.  See type description for default values
          of each field.

          +optional
      imagePullSecrets:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        title: >-
          ImagePullSecrets is an optional list of references to secrets in the
          same namespace to use for pulling any of the images used by this
          PodSpec.

          If specified, these secrets will be passed to individual puller
          implementations for them to use. For example,

          in the case of docker, only DockerConfig type secrets are honored.

          More info:
          https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod

          +optional

          +patchMergeKey=name

          +patchStrategy=merge
      hostname:
        type: string
        title: >-
          Specifies the hostname of the Pod

          If not specified, the pod's hostname will be set to a system-defined
          value.

          +optional
      subdomain:
        type: string
        title: >-
          If specified, the fully qualified Pod hostname will be
          "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>".

          If not specified, the pod will not have a domainname at all.

          +optional
      affinity:
        $ref: '#/definitions/k8s.io.api.core.v1.Affinity'
        title: |-
          If specified, the pod's scheduling constraints
          +optional
      schedulerName:
        type: string
        title: |-
          If specified, the pod will be dispatched by specified scheduler.
          If not specified, the pod will be dispatched by default scheduler.
          +optional
      tolerations:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.Toleration'
        title: |-
          If specified, the pod's tolerations.
          +optional
      hostAliases:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.HostAlias'
        title: >-
          HostAliases is an optional list of hosts and IPs that will be injected
          into the pod's hosts

          file if specified. This is only valid for non-hostNetwork pods.

          +optional

          +patchMergeKey=ip

          +patchStrategy=merge
      priorityClassName:
        type: string
        title: >-
          If specified, indicates the pod's priority. "system-node-critical" and

          "system-cluster-critical" are two special keywords which indicate the

          highest priorities with the former being the highest priority. Any
          other

          name must be defined by creating a PriorityClass object with that
          name.

          If not specified, the pod priority will be default or zero if there is
          no

          default.

          +optional
      priority:
        type: integer
        format: int32
        title: >-
          The priority value. Various system components use this field to find
          the

          priority of the pod. When Priority Admission Controller is enabled, it

          prevents users from setting this field. The admission controller
          populates

          this field from PriorityClassName.

          The higher the value, the higher the priority.

          +optional
      dnsConfig:
        $ref: '#/definitions/k8s.io.api.core.v1.PodDNSConfig'
        title: |-
          Specifies the DNS parameters of a pod.
          Parameters specified here will be merged to the generated DNS
          configuration based on DNSPolicy.
          +optional
      readinessGates:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.PodReadinessGate'
        title: >-
          If specified, all readiness gates will be evaluated for pod readiness.

          A pod is ready when all its containers are ready AND

          all conditions specified in the readiness gates have status equal to
          "True"

          More info:
          https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md

          +optional
      runtimeClassName:
        type: string
        title: >-
          RuntimeClassName refers to a RuntimeClass object in the node.k8s.io
          group, which should be used

          to run this pod.  If no RuntimeClass resource matches the named class,
          the pod will not be run.

          If unset or empty, the "legacy" RuntimeClass will be used, which is an
          implicit class with an

          empty definition that uses the default runtime handler.

          More info:
          https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md

          This is an alpha feature and may change in the future.

          +optional
      enableServiceLinks:
        type: boolean
        format: boolean
        title: >-
          EnableServiceLinks indicates whether information about services should
          be injected into pod's

          environment variables, matching the syntax of Docker links.

          Optional: Defaults to true.

          +optional
    description: PodSpec is a description of a pod.
  k8s.io.api.core.v1.PodStatus:
    type: object
    properties:
      phase:
        type: string
        description: >-
          Pending: The pod has been accepted by the Kubernetes system, but one
          or more of the

          container images has not been created. This includes time before being
          scheduled as

          well as time spent downloading images over the network, which could
          take a while.

          Running: The pod has been bound to a node, and all of the containers
          have been created.

          At least one container is still running, or is in the process of
          starting or restarting.

          Succeeded: All containers in the pod have terminated in success, and
          will not be restarted.

          Failed: All containers in the pod have terminated, and at least one
          container has

          terminated in failure. The container either exited with non-zero
          status or was terminated

          by the system.

          Unknown: For some reason the state of the pod could not be obtained,
          typically due to an

          error in communicating with the host of the pod.


          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase

          +optional
        title: >-
          The phase of a Pod is a simple, high-level summary of where the Pod is
          in its lifecycle.

          The conditions array, the reason and message fields, and the
          individual container status

          arrays contain more detail about the pod's status.

          There are five possible phase values:
      conditions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.PodCondition'
        title: >-
          Current service state of pod.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions

          +optional

          +patchMergeKey=type

          +patchStrategy=merge
      message:
        type: string
        title: >-
          A human readable message indicating details about why the pod is in
          this condition.

          +optional
      reason:
        type: string
        title: >-
          A brief CamelCase message indicating details about why the pod is in
          this state.

          e.g. 'Evicted'

          +optional
      nominatedNodeName:
        type: string
        title: >-
          nominatedNodeName is set only when this pod preempts other pods on the
          node, but it cannot be

          scheduled right away as preemption victims receive their graceful
          termination periods.

          This field does not guarantee that the pod will be scheduled on this
          node. Scheduler may decide

          to place the pod elsewhere if other nodes become available sooner.
          Scheduler may also decide to

          give the resources on this node to a higher priority pod that is
          created after preemption.

          As a result, this field may be different than PodSpec.nodeName when
          the pod is

          scheduled.

          +optional
      hostIP:
        type: string
        title: >-
          IP address of the host to which the pod is assigned. Empty if not yet
          scheduled.

          +optional
      podIP:
        type: string
        title: |-
          IP address allocated to the pod. Routable at least within the cluster.
          Empty if not yet allocated.
          +optional
      startTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: >-
          RFC 3339 date and time at which the object was acknowledged by the
          Kubelet.

          This is before the Kubelet pulled the container image(s) for the pod.

          +optional
      initContainerStatuses:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.ContainerStatus'
        title: >-
          The list has one entry per init container in the manifest. The most
          recent successful

          init container will have ready = true, the most recently started
          container will have

          startTime set.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
      containerStatuses:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.ContainerStatus'
        title: >-
          The list has one entry per container in the manifest. Each entry is
          currently the output

          of `docker inspect`.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

          +optional
      qosClass:
        type: string
        title: >-
          The Quality of Service (QOS) classification assigned to the pod based
          on resource requirements

          See PodQOSClass type for available QOS classes

          More info:
          https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md

          +optional
    description: >-
      PodStatus represents information about the status of a pod. Status may
      trail the actual

      state of a system, especially if the node that hosts the pod cannot
      contact the control

      plane.
  k8s.io.api.core.v1.PodTemplateSpec:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.core.v1.PodSpec'
        title: >-
          Specification of the desired behavior of the pod.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    title: >-
      PodTemplateSpec describes the data a pod should have when created from a
      template
  k8s.io.api.core.v1.PortworxVolumeSource:
    type: object
    properties:
      volumeID:
        type: string
        title: VolumeID uniquely identifies a Portworx volume
      fsType:
        type: string
        description: |-
          FSType represents the filesystem type to mount
          Must be a filesystem type supported by the host operating system.
          Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
      readOnly:
        type: boolean
        format: boolean
        title: |-
          Defaults to false (read/write). ReadOnly here will force
          the ReadOnly setting in VolumeMounts.
          +optional
    description: PortworxVolumeSource represents a Portworx volume resource.
  k8s.io.api.core.v1.PreferredSchedulingTerm:
    type: object
    properties:
      weight:
        type: integer
        format: int32
        description: >-
          Weight associated with matching the corresponding nodeSelectorTerm, in
          the range 1-100.
      preference:
        $ref: '#/definitions/k8s.io.api.core.v1.NodeSelectorTerm'
        description: 'A node selector term, associated with the corresponding weight.'
    description: >-
      An empty preferred scheduling term matches all objects with implicit
      weight 0

      (i.e. it's a no-op). A null preferred scheduling term matches no objects
      (i.e. is also a no-op).
  k8s.io.api.core.v1.Probe:
    type: object
    properties:
      handler:
        $ref: '#/definitions/k8s.io.api.core.v1.Handler'
        title: The action taken to determine the health of a container
      initialDelaySeconds:
        type: integer
        format: int32
        title: >-
          Number of seconds after the container has started before liveness
          probes are initiated.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

          +optional
      timeoutSeconds:
        type: integer
        format: int32
        title: >-
          Number of seconds after which the probe times out.

          Defaults to 1 second. Minimum value is 1.

          More info:
          https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

          +optional
      periodSeconds:
        type: integer
        format: int32
        title: |-
          How often (in seconds) to perform the probe.
          Default to 10 seconds. Minimum value is 1.
          +optional
      successThreshold:
        type: integer
        format: int32
        title: >-
          Minimum consecutive successes for the probe to be considered
          successful after having failed.

          Defaults to 1. Must be 1 for liveness. Minimum value is 1.

          +optional
      failureThreshold:
        type: integer
        format: int32
        title: >-
          Minimum consecutive failures for the probe to be considered failed
          after having succeeded.

          Defaults to 3. Minimum value is 1.

          +optional
    description: >-
      Probe describes a health check to be performed against a container to
      determine whether it is

      alive or ready to receive traffic.
  k8s.io.api.core.v1.ProjectedVolumeSource:
    type: object
    properties:
      sources:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.VolumeProjection'
        title: list of volume projections
      defaultMode:
        type: integer
        format: int32
        title: |-
          Mode bits to use on created files by default. Must be a value between
          0 and 0777.
          Directories within the path are not affected by this setting.
          This might be in conflict with other options that affect the file
          mode, like fsGroup, and the result can be other mode bits set.
          +optional
    title: Represents a projected volume source
  k8s.io.api.core.v1.QuobyteVolumeSource:
    type: object
    properties:
      registry:
        type: string
        title: >-
          Registry represents a single or multiple Quobyte Registry services

          specified as a string as host:port pair (multiple entries are
          separated with commas)

          which acts as the central registry for volumes
      volume:
        type: string
        description: >-
          Volume is a string that references an already created Quobyte volume
          by name.
      readOnly:
        type: boolean
        format: boolean
        title: >-
          ReadOnly here will force the Quobyte volume to be mounted with
          read-only permissions.

          Defaults to false.

          +optional
      user:
        type: string
        title: |-
          User to map volume access to
          Defaults to serivceaccount user
          +optional
      group:
        type: string
        title: |-
          Group to map volume access to
          Default is no group
          +optional
      tenant:
        type: string
        title: >-
          Tenant owning the given Quobyte volume in the Backend

          Used with dynamically provisioned Quobyte volumes, value is set by the
          plugin

          +optional
    description: |-
      Represents a Quobyte mount that lasts the lifetime of a pod.
      Quobyte volumes do not support ownership management or SELinux relabeling.
  k8s.io.api.core.v1.RBDVolumeSource:
    type: object
    properties:
      monitors:
        type: array
        items:
          type: string
        title: >-
          A collection of Ceph monitors.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
      image:
        type: string
        title: >-
          The rados image name.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
      fsType:
        type: string
        title: >-
          Filesystem type of the volume that you want to mount.

          Tip: Ensure that the filesystem type is supported by the host
          operating system.

          Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.

          More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd

          TODO: how do we prevent errors in the filesystem from compromising the
          machine

          +optional
      pool:
        type: string
        title: >-
          The rados pool name.

          Default is rbd.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

          +optional
      user:
        type: string
        title: >-
          The rados user name.

          Default is admin.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

          +optional
      keyring:
        type: string
        title: >-
          Keyring is the path to key ring for RBDUser.

          Default is /etc/ceph/keyring.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

          +optional
      secretRef:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        title: >-
          SecretRef is name of the authentication secret for RBDUser. If
          provided

          overrides keyring.

          Default is nil.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

          +optional
      readOnly:
        type: boolean
        format: boolean
        title: >-
          ReadOnly here will force the ReadOnly setting in VolumeMounts.

          Defaults to false.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

          +optional
    description: |-
      Represents a Rados Block Device mount that lasts the lifetime of a pod.
      RBD volumes support ownership management and SELinux relabeling.
  k8s.io.api.core.v1.ReplicationController:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          If the Labels of a ReplicationController are empty, they are defaulted
          to

          be the same as the Pod(s) that the replication controller manages.

          Standard object's metadata. More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.core.v1.ReplicationControllerSpec'
        title: >-
          Spec defines the specification of the desired behavior of the
          replication controller.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.core.v1.ReplicationControllerStatus'
        title: >-
          Status is the most recently observed status of the replication
          controller.

          This data may be out of date by some window of time.

          Populated by the system.

          Read-only.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    description: >-
      ReplicationController represents the configuration of a replication
      controller.
  k8s.io.api.core.v1.ReplicationControllerCondition:
    type: object
    properties:
      type:
        type: string
        description: Type of replication controller condition.
      status:
        type: string
        description: 'Status of the condition, one of True, False, Unknown.'
      lastTransitionTime:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          The last time the condition transitioned from one status to another.
          +optional
      reason:
        type: string
        title: |-
          The reason for the condition's last transition.
          +optional
      message:
        type: string
        title: |-
          A human readable message indicating details about the transition.
          +optional
    description: >-
      ReplicationControllerCondition describes the state of a replication
      controller at a certain point.
  k8s.io.api.core.v1.ReplicationControllerSpec:
    type: object
    properties:
      replicas:
        type: integer
        format: int32
        title: >-
          Replicas is the number of desired replicas.

          This is a pointer to distinguish between explicit zero and
          unspecified.

          Defaults to 1.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller

          +optional
      minReadySeconds:
        type: integer
        format: int32
        title: >-
          Minimum number of seconds for which a newly created pod should be
          ready

          without any of its container crashing, for it to be considered
          available.

          Defaults to 0 (pod will be considered available as soon as it is
          ready)

          +optional
      selector:
        type: object
        additionalProperties:
          type: string
        title: >-
          Selector is a label query over pods that should match the Replicas
          count.

          If Selector is empty, it is defaulted to the labels present on the Pod
          template.

          Label keys and values that must match in order to be controlled by
          this replication

          controller, if empty defaulted to labels on Pod template.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

          +optional
      template:
        $ref: '#/definitions/k8s.io.api.core.v1.PodTemplateSpec'
        title: >-
          Template is the object that describes the pod that will be created if

          insufficient replicas are detected. This takes precedence over a
          TemplateRef.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template

          +optional
    description: >-
      ReplicationControllerSpec is the specification of a replication
      controller.
  k8s.io.api.core.v1.ReplicationControllerStatus:
    type: object
    properties:
      replicas:
        type: integer
        format: int32
        title: >-
          Replicas is the most recently oberved number of replicas.

          More info:
          https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
      fullyLabeledReplicas:
        type: integer
        format: int32
        title: >-
          The number of pods that have labels matching the labels of the pod
          template of the replication controller.

          +optional
      readyReplicas:
        type: integer
        format: int32
        title: |-
          The number of ready replicas for this replication controller.
          +optional
      availableReplicas:
        type: integer
        format: int32
        title: >-
          The number of available replicas (ready for at least minReadySeconds)
          for this replication controller.

          +optional
      observedGeneration:
        type: string
        format: int64
        title: >-
          ObservedGeneration reflects the generation of the most recently
          observed replication controller.

          +optional
      conditions:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.ReplicationControllerCondition'
        title: >-
          Represents the latest available observations of a replication
          controller's current state.

          +optional

          +patchMergeKey=type

          +patchStrategy=merge
    description: |-
      ReplicationControllerStatus represents the current status of a replication
      controller.
  k8s.io.api.core.v1.ResourceFieldSelector:
    type: object
    properties:
      containerName:
        type: string
        title: |-
          Container name: required for volumes, optional for env vars
          +optional
      resource:
        type: string
        title: 'Required: resource to select'
      divisor:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity'
        title: |-
          Specifies the output format of the exposed resources, defaults to "1"
          +optional
    title: >-
      ResourceFieldSelector represents container resources (cpu, memory) and
      their output format
  k8s.io.api.core.v1.ResourceRequirements:
    type: object
    properties:
      limits:
        type: object
        additionalProperties:
          $ref: '#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity'
        title: >-
          Limits describes the maximum amount of compute resources allowed.

          More info:
          https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

          +optional
      requests:
        type: object
        additionalProperties:
          $ref: '#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity'
        title: >-
          Requests describes the minimum amount of compute resources required.

          If Requests is omitted for a container, it defaults to Limits if that
          is explicitly specified,

          otherwise to an implementation-defined value.

          More info:
          https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

          +optional
    description: ResourceRequirements describes the compute resource requirements.
  k8s.io.api.core.v1.SELinuxOptions:
    type: object
    properties:
      user:
        type: string
        title: |-
          User is a SELinux user label that applies to the container.
          +optional
      role:
        type: string
        title: |-
          Role is a SELinux role label that applies to the container.
          +optional
      type:
        type: string
        title: |-
          Type is a SELinux type label that applies to the container.
          +optional
      level:
        type: string
        title: |-
          Level is SELinux level label that applies to the container.
          +optional
    title: SELinuxOptions are the labels to be applied to the container
  k8s.io.api.core.v1.ScaleIOVolumeSource:
    type: object
    properties:
      gateway:
        type: string
        description: The host address of the ScaleIO API Gateway.
      system:
        type: string
        description: The name of the storage system as configured in ScaleIO.
      secretRef:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        description: >-
          SecretRef references to the secret for ScaleIO user and other

          sensitive information. If this is not provided, Login operation will
          fail.
      sslEnabled:
        type: boolean
        format: boolean
        title: |-
          Flag to enable/disable SSL communication with Gateway, default false
          +optional
      protectionDomain:
        type: string
        title: |-
          The name of the ScaleIO Protection Domain for the configured storage.
          +optional
      storagePool:
        type: string
        title: |-
          The ScaleIO Storage Pool associated with the protection domain.
          +optional
      storageMode:
        type: string
        title: >-
          Indicates whether the storage for a volume should be ThickProvisioned
          or ThinProvisioned.

          Default is ThinProvisioned.

          +optional
      volumeName:
        type: string
        description: |-
          The name of a volume already created in the ScaleIO system
          that is associated with this volume source.
      fsType:
        type: string
        title: |-
          Filesystem type to mount.
          Must be a filesystem type supported by the host operating system.
          Ex. "ext4", "xfs", "ntfs".
          Default is "xfs".
          +optional
      readOnly:
        type: boolean
        format: boolean
        title: |-
          Defaults to false (read/write). ReadOnly here will force
          the ReadOnly setting in VolumeMounts.
          +optional
    title: ScaleIOVolumeSource represents a persistent ScaleIO volume
  k8s.io.api.core.v1.SecretEnvSource:
    type: object
    properties:
      localObjectReference:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        description: The Secret to select from.
      optional:
        type: boolean
        format: boolean
        title: |-
          Specify whether the Secret must be defined
          +optional
    description: |-
      SecretEnvSource selects a Secret to populate the environment
      variables with.

      The contents of the target Secret's Data field will represent the
      key-value pairs as environment variables.
  k8s.io.api.core.v1.SecretKeySelector:
    type: object
    properties:
      localObjectReference:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        description: The name of the secret in the pod's namespace to select from.
      key:
        type: string
        description: The key of the secret to select from.  Must be a valid secret key.
      optional:
        type: boolean
        format: boolean
        title: |-
          Specify whether the Secret or it's key must be defined
          +optional
    description: SecretKeySelector selects a key of a Secret.
  k8s.io.api.core.v1.SecretProjection:
    type: object
    properties:
      localObjectReference:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
      items:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.KeyToPath'
        title: >-
          If unspecified, each key-value pair in the Data field of the
          referenced

          Secret will be projected into the volume as a file whose name is the

          key and content is the value. If specified, the listed keys will be

          projected into the specified paths, and unlisted keys will not be

          present. If a key is specified which is not present in the Secret,

          the volume setup will error unless it is marked optional. Paths must
          be

          relative and may not contain the '..' path or start with '..'.

          +optional
      optional:
        type: boolean
        format: boolean
        title: |-
          Specify whether the Secret or its key must be defined
          +optional
    description: >-
      Adapts a secret into a projected volume.


      The contents of the target Secret's Data field will be presented in a

      projected volume as files using the keys in the Data field as the file
      names.

      Note that this is identical to a secret volume source without the default

      mode.
  k8s.io.api.core.v1.SecretVolumeSource:
    type: object
    properties:
      secretName:
        type: string
        title: |-
          Name of the secret in the pod's namespace to use.
          More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
          +optional
      items:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.KeyToPath'
        title: >-
          If unspecified, each key-value pair in the Data field of the
          referenced

          Secret will be projected into the volume as a file whose name is the

          key and content is the value. If specified, the listed keys will be

          projected into the specified paths, and unlisted keys will not be

          present. If a key is specified which is not present in the Secret,

          the volume setup will error unless it is marked optional. Paths must
          be

          relative and may not contain the '..' path or start with '..'.

          +optional
      defaultMode:
        type: integer
        format: int32
        title: |-
          Optional: mode bits to use on created files by default. Must be a
          value between 0 and 0777. Defaults to 0644.
          Directories within the path are not affected by this setting.
          This might be in conflict with other options that affect the file
          mode, like fsGroup, and the result can be other mode bits set.
          +optional
      optional:
        type: boolean
        format: boolean
        title: |-
          Specify whether the Secret or it's keys must be defined
          +optional
    description: >-
      Adapts a Secret into a volume.


      The contents of the target Secret's Data field will be presented in a
      volume

      as files using the keys in the Data field as the file names.

      Secret volumes support ownership management and SELinux relabeling.
  k8s.io.api.core.v1.SecurityContext:
    type: object
    properties:
      capabilities:
        $ref: '#/definitions/k8s.io.api.core.v1.Capabilities'
        title: >-
          The capabilities to add/drop when running containers.

          Defaults to the default set of capabilities granted by the container
          runtime.

          +optional
      privileged:
        type: boolean
        format: boolean
        title: >-
          Run container in privileged mode.

          Processes in privileged containers are essentially equivalent to root
          on the host.

          Defaults to false.

          +optional
      seLinuxOptions:
        $ref: '#/definitions/k8s.io.api.core.v1.SELinuxOptions'
        title: >-
          The SELinux context to be applied to the container.

          If unspecified, the container runtime will allocate a random SELinux
          context for each

          container.  May also be set in PodSecurityContext.  If set in both
          SecurityContext and

          PodSecurityContext, the value specified in SecurityContext takes
          precedence.

          +optional
      runAsUser:
        type: string
        format: int64
        title: >-
          The UID to run the entrypoint of the container process.

          Defaults to user specified in image metadata if unspecified.

          May also be set in PodSecurityContext.  If set in both SecurityContext
          and

          PodSecurityContext, the value specified in SecurityContext takes
          precedence.

          +optional
      runAsGroup:
        type: string
        format: int64
        title: >-
          The GID to run the entrypoint of the container process.

          Uses runtime default if unset.

          May also be set in PodSecurityContext.  If set in both SecurityContext
          and

          PodSecurityContext, the value specified in SecurityContext takes
          precedence.

          +optional
      runAsNonRoot:
        type: boolean
        format: boolean
        title: >-
          Indicates that the container must run as a non-root user.

          If true, the Kubelet will validate the image at runtime to ensure that
          it

          does not run as UID 0 (root) and fail to start the container if it
          does.

          If unset or false, no such validation will be performed.

          May also be set in PodSecurityContext.  If set in both SecurityContext
          and

          PodSecurityContext, the value specified in SecurityContext takes
          precedence.

          +optional
      readOnlyRootFilesystem:
        type: boolean
        format: boolean
        title: |-
          Whether this container has a read-only root filesystem.
          Default is false.
          +optional
      allowPrivilegeEscalation:
        type: boolean
        format: boolean
        title: |-
          AllowPrivilegeEscalation controls whether a process can gain more
          privileges than its parent process. This bool directly controls if
          the no_new_privs flag will be set on the container process.
          AllowPrivilegeEscalation is true always when the container is:
          1) run as Privileged
          2) has CAP_SYS_ADMIN
          +optional
      procMount:
        type: string
        title: >-
          procMount denotes the type of proc mount to use for the containers.

          The default is DefaultProcMount which uses the container runtime
          defaults for

          readonly paths and masked paths.

          This requires the ProcMountType feature flag to be enabled.

          +optional
    description: >-
      SecurityContext holds security configuration that will be applied to a
      container.

      Some fields are present in both SecurityContext and PodSecurityContext. 
      When both

      are set, the values in SecurityContext take precedence.
  k8s.io.api.core.v1.Service:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta'
        title: >-
          Standard object's metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      spec:
        $ref: '#/definitions/k8s.io.api.core.v1.ServiceSpec'
        title: >-
          Spec defines the behavior of a service.

          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      status:
        $ref: '#/definitions/k8s.io.api.core.v1.ServiceStatus'
        title: >-
          Most recently observed status of the service.

          Populated by the system.

          Read-only.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
    description: >-
      Service is a named abstraction of software service (for example, mysql)
      consisting of local port

      (for example 3306) that the proxy listens on, and the selector that
      determines which pods

      will answer requests sent through the proxy.
  k8s.io.api.core.v1.ServiceAccountTokenProjection:
    type: object
    properties:
      audience:
        type: string
        title: >-
          Audience is the intended audience of the token. A recipient of a token

          must identify itself with an identifier specified in the audience of
          the

          token, and otherwise should reject the token. The audience defaults to
          the

          identifier of the apiserver.

          +optional
      expirationSeconds:
        type: string
        format: int64
        title: >-
          ExpirationSeconds is the requested duration of validity of the service

          account token. As the token approaches expiration, the kubelet volume

          plugin will proactively rotate the service account token. The kubelet
          will

          start trying to rotate the token if the token is older than 80 percent
          of

          its time to live or if the token is older than 24 hours.Defaults to 1
          hour

          and must be at least 10 minutes.

          +optional
      path:
        type: string
        description: >-
          Path is the path relative to the mount point of the file to project
          the

          token into.
    description: |-
      ServiceAccountTokenProjection represents a projected service account token
      volume. This projection can be used to insert a service account token into
      the pods runtime filesystem for use against APIs (Kubernetes API Server or
      otherwise).
  k8s.io.api.core.v1.ServicePort:
    type: object
    properties:
      name:
        type: string
        title: |-
          The name of this port within the service. This must be a DNS_LABEL.
          All ports within a ServiceSpec must have unique names. This maps to
          the 'Name' field in EndpointPort objects.
          Optional if only one ServicePort is defined on this service.
          +optional
      protocol:
        type: string
        title: |-
          The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
          Default is TCP.
          +optional
      port:
        type: integer
        format: int32
        description: The port that will be exposed by this service.
      targetPort:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString'
        title: >-
          Number or name of the port to access on the pods targeted by the
          service.

          Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

          If this is a string, it will be looked up as a named port in the

          target Pod's container ports. If this is not specified, the value

          of the 'port' field is used (an identity map).

          This field is ignored for services with clusterIP=None, and should be

          omitted or set equal to the 'port' field.

          More info:
          https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service

          +optional
      nodePort:
        type: integer
        format: int32
        title: >-
          The port on each node on which this service is exposed when
          type=NodePort or LoadBalancer.

          Usually assigned by the system. If specified, it will be allocated to
          the service

          if unused or else creation of the service will fail.

          Default is to auto-allocate a port if the ServiceType of this Service
          requires one.

          More info:
          https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport

          +optional
    description: ServicePort contains information on service's port.
  k8s.io.api.core.v1.ServiceSpec:
    type: object
    properties:
      ports:
        type: array
        items:
          $ref: '#/definitions/k8s.io.api.core.v1.ServicePort'
        title: >-
          The list of ports that are exposed by this service.

          More info:
          https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

          +patchMergeKey=port

          +patchStrategy=merge

          +listType=map

          +listMapKey=port

          +listMapKey=protocol
      selector:
        type: object
        additionalProperties:
          type: string
        title: >-
          Route service traffic to pods with label keys and values matching this

          selector. If empty or not present, the service is assumed to have an

          external process managing its endpoints, which Kubernetes will not

          modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.

          Ignored if type is ExternalName.

          More info:
          https://kubernetes.io/docs/concepts/services-networking/service/

          +optional
      clusterIP:
        type: string
        title: >-
          clusterIP is the IP address of the service and is usually assigned

          randomly by the master. If an address is specified manually and is not
          in

          use by others, it will be allocated to the service; otherwise,
          creation

          of the service will fail. This field can not be changed through
          updates.

          Valid values are "None", empty string (""), or a valid IP address.
          "None"

          can be specified for headless services when proxying is not required.

          Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored
          if

          type is ExternalName.

          More info:
          https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

          +optional
      type:
        type: string
        title: >-
          type determines how the Service is exposed. Defaults to ClusterIP.
          Valid

          options are ExternalName, ClusterIP, NodePort, and LoadBalancer.

          "ExternalName" maps to the specified externalName.

          "ClusterIP" allocates a cluster-internal IP address for load-balancing
          to

          endpoints. Endpoints are determined by the selector or if that is not

          specified, by manual construction of an Endpoints object. If clusterIP
          is

          "None", no virtual IP is allocated and the endpoints are published as
          a

          set of endpoints rather than a stable IP.

          "NodePort" builds on ClusterIP and allocates a port on every node
          which

          routes to the clusterIP.

          "LoadBalancer" builds on NodePort and creates an

          external load-balancer (if supported in the current cloud) which
          routes

          to the clusterIP.

          More info:
          https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types

          +optional
      externalIPs:
        type: array
        items:
          type: string
        title: >-
          externalIPs is a list of IP addresses for which nodes in the cluster

          will also accept traffic for this service.  These IPs are not managed
          by

          Kubernetes.  The user is responsible for ensuring that traffic arrives

          at a node with this IP.  A common example is external load-balancers

          that are not part of the Kubernetes system.

          +optional
      sessionAffinity:
        type: string
        title: >-
          Supports "ClientIP" and "None". Used to maintain session affinity.

          Enable client IP based session affinity.

          Must be ClientIP or None.

          Defaults to None.

          More info:
          https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

          +optional
      loadBalancerIP:
        type: string
        title: >-
          Only applies to Service Type: LoadBalancer

          LoadBalancer will get created with the IP specified in this field.

          This feature depends on whether the underlying cloud-provider supports
          specifying

          the loadBalancerIP when a load balancer is created.

          This field will be ignored if the cloud-provider does not support the
          feature.

          +optional
      loadBalancerSourceRanges:
        type: array
        items:
          type: string
        title: >-
          If specified and supported by the platform, this will restrict traffic
          through the cloud-provider

          load-balancer will be restricted to the specified client IPs. This
          field will be ignored if the

          cloud-provider does not support the feature."

          More info:
          https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/

          +optional
      externalName:
        type: string
        title: >-
          externalName is the external reference that kubedns or equivalent will

          return as a CNAME record for this service. No proxying will be
          involved.

          Must be a valid RFC-1123 hostname
          (https://tools.ietf.org/html/rfc1123)

          and requires Type to be ExternalName.

          +optional
      externalTrafficPolicy:
        type: string
        title: >-
          externalTrafficPolicy denotes if this Service desires to route
          external

          traffic to node-local or cluster-wide endpoints. "Local" preserves the

          client source IP and avoids a second hop for LoadBalancer and Nodeport

          type services, but risks potentially imbalanced traffic spreading.

          "Cluster" obscures the client source IP and may cause a second hop to

          another node, but should have good overall load-spreading.

          +optional
      healthCheckNodePort:
        type: integer
        format: int32
        title: >-
          healthCheckNodePort specifies the healthcheck nodePort for the
          service.

          If not specified, HealthCheckNodePort is created by the service api

          backend with the allocated nodePort. Will use user-specified nodePort
          value

          if specified by the client. Only effects when Type is set to
          LoadBalancer

          and ExternalTrafficPolicy is set to Local.

          +optional
      publishNotReadyAddresses:
        type: boolean
        format: boolean
        title: >-
          publishNotReadyAddresses, when set to true, indicates that DNS
          implementations

          must publish the notReadyAddresses of subsets for the Endpoints
          associated with

          the Service. The default value is false.

          The primary use case for setting this field is to use a StatefulSet's
          Headless Service

          to propagate SRV records for its Pods without respect to their
          readiness for purpose

          of peer discovery.

          +optional
      sessionAffinityConfig:
        $ref: '#/definitions/k8s.io.api.core.v1.SessionAffinityConfig'
        title: |-
          sessionAffinityConfig contains the configurations of session affinity.
          +optional
    description: ServiceSpec describes the attributes that a user creates on a service.
  k8s.io.api.core.v1.ServiceStatus:
    type: object
    properties:
      loadBalancer:
        $ref: '#/definitions/k8s.io.api.core.v1.LoadBalancerStatus'
        title: |-
          LoadBalancer contains the current status of the load-balancer,
          if one is present.
          +optional
    description: ServiceStatus represents the current status of a service.
  k8s.io.api.core.v1.SessionAffinityConfig:
    type: object
    properties:
      clientIP:
        $ref: '#/definitions/k8s.io.api.core.v1.ClientIPConfig'
        title: >-
          clientIP contains the configurations of Client IP based session
          affinity.

          +optional
    description: SessionAffinityConfig represents the configurations of session affinity.
  k8s.io.api.core.v1.StorageOSVolumeSource:
    type: object
    properties:
      volumeName:
        type: string
        description: |-
          VolumeName is the human-readable name of the StorageOS volume.  Volume
          names are only unique within a namespace.
      volumeNamespace:
        type: string
        title: >-
          VolumeNamespace specifies the scope of the volume within StorageOS. 
          If no

          namespace is specified then the Pod's namespace will be used.  This
          allows the

          Kubernetes name scoping to be mirrored within StorageOS for tighter
          integration.

          Set VolumeName to any name to override the default behaviour.

          Set to "default" if you are not using namespaces within StorageOS.

          Namespaces that do not pre-exist within StorageOS will be created.

          +optional
      fsType:
        type: string
        title: >-
          Filesystem type to mount.

          Must be a filesystem type supported by the host operating system.

          Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.

          +optional
      readOnly:
        type: boolean
        format: boolean
        title: |-
          Defaults to false (read/write). ReadOnly here will force
          the ReadOnly setting in VolumeMounts.
          +optional
      secretRef:
        $ref: '#/definitions/k8s.io.api.core.v1.LocalObjectReference'
        title: |-
          SecretRef specifies the secret to use for obtaining the StorageOS API
          credentials.  If not specified, default values will be attempted.
          +optional
    description: Represents a StorageOS persistent volume resource.
  k8s.io.api.core.v1.Sysctl:
    type: object
    properties:
      name:
        type: string
        title: Name of a property to set
      value:
        type: string
        title: Value of a property to set
    title: Sysctl defines a kernel parameter to be set
  k8s.io.api.core.v1.TCPSocketAction:
    type: object
    properties:
      port:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString'
        description: |-
          Number or name of the port to access on the container.
          Number must be in the range 1 to 65535.
          Name must be an IANA_SVC_NAME.
      host:
        type: string
        title: |-
          Optional: Host name to connect to, defaults to the pod IP.
          +optional
    title: TCPSocketAction describes an action based on opening a socket
  k8s.io.api.core.v1.Taint:
    type: object
    properties:
      key:
        type: string
        description: Required. The taint key to be applied to a node.
      value:
        type: string
        title: |-
          Required. The taint value corresponding to the taint key.
          +optional
      effect:
        type: string
        description: >-
          Required. The effect of the taint on pods that do not tolerate the
          taint.

          Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
      timeAdded:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: |-
          TimeAdded represents the time at which the taint was added.
          It is only written for NoExecute taints.
          +optional
    description: |-
      The node this Taint is attached to has the "effect" on
      any pod that does not tolerate the Taint.
  k8s.io.api.core.v1.Toleration:
    type: object
    properties:
      key:
        type: string
        title: >-
          Key is the taint key that the toleration applies to. Empty means match
          all taint keys.

          If the key is empty, operator must be Exists; this combination means
          to match all values and all keys.

          +optional
      operator:
        type: string
        title: |-
          Operator represents a key's relationship to the value.
          Valid operators are Exists and Equal. Defaults to Equal.
          Exists is equivalent to wildcard for value, so that a pod can
          tolerate all taints of a particular category.
          +optional
      value:
        type: string
        title: >-
          Value is the taint value the toleration matches to.

          If the operator is Exists, the value should be empty, otherwise just a
          regular string.

          +optional
      effect:
        type: string
        title: >-
          Effect indicates the taint effect to match. Empty means match all
          taint effects.

          When specified, allowed values are NoSchedule, PreferNoSchedule and
          NoExecute.

          +optional
      tolerationSeconds:
        type: string
        format: int64
        title: >-
          TolerationSeconds represents the period of time the toleration (which
          must be

          of effect NoExecute, otherwise this field is ignored) tolerates the
          taint. By default,

          it is not set, which means tolerate the taint forever (do not evict).
          Zero and

          negative values will be treated as 0 (evict immediately) by the
          system.

          +optional
    description: |-
      The pod this Toleration is attached to tolerates any taint that matches
      the triple <key,value,effect> using the matching operator <operator>.
  k8s.io.api.core.v1.TypedLocalObjectReference:
    type: object
    properties:
      apiGroup:
        type: string
        title: >-
          APIGroup is the group for the resource being referenced.

          If APIGroup is not specified, the specified Kind must be in the core
          API group.

          For any other third-party types, APIGroup is required.

          +optional
      kind:
        type: string
        title: Kind is the type of resource being referenced
      name:
        type: string
        title: Name is the name of resource being referenced
    description: >-
      TypedLocalObjectReference contains enough information to let you locate
      the

      typed referenced object inside the same namespace.
  k8s.io.api.core.v1.Volume:
    type: object
    properties:
      name:
        type: string
        title: >-
          Volume's name.

          Must be a DNS_LABEL and unique within the pod.

          More info:
          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
      volumeSource:
        $ref: '#/definitions/k8s.io.api.core.v1.VolumeSource'
        description: >-
          VolumeSource represents the location and type of the mounted volume.

          If not specified, the Volume is implied to be an EmptyDir.

          This implied behavior is deprecated and will be removed in a future
          version.
    description: >-
      Volume represents a named volume in a pod that may be accessed by any
      container in the pod.
  k8s.io.api.core.v1.VolumeDevice:
    type: object
    properties:
      name:
        type: string
        title: name must match the name of a persistentVolumeClaim in the pod
      devicePath:
        type: string
        description: >-
          devicePath is the path inside of the container that the device will be
          mapped to.
    description: volumeDevice describes a mapping of a raw block device within a container.
  k8s.io.api.core.v1.VolumeMount:
    type: object
    properties:
      name:
        type: string
        description: This must match the Name of a Volume.
      readOnly:
        type: boolean
        format: boolean
        title: >-
          Mounted read-only if true, read-write otherwise (false or
          unspecified).

          Defaults to false.

          +optional
      mountPath:
        type: string
        description: |-
          Path within the container at which the volume should be mounted.  Must
          not contain ':'.
      subPath:
        type: string
        title: >-
          Path within the volume from which the container's volume should be
          mounted.

          Defaults to "" (volume's root).

          +optional
      mountPropagation:
        type: string
        title: |-
          mountPropagation determines how mounts are propagated from the host
          to container and the other way around.
          When not set, MountPropagationNone is used.
          This field is beta in 1.10.
          +optional
      subPathExpr:
        type: string
        title: >-
          Expanded path within the volume from which the container's volume
          should be mounted.

          Behaves similarly to SubPath but environment variable references
          $(VAR_NAME) are expanded using the container's environment.

          Defaults to "" (volume's root).

          SubPathExpr and SubPath are mutually exclusive.

          This field is alpha in 1.14.

          +optional
    description: VolumeMount describes a mounting of a Volume within a container.
  k8s.io.api.core.v1.VolumeProjection:
    type: object
    properties:
      secret:
        $ref: '#/definitions/k8s.io.api.core.v1.SecretProjection'
        title: |-
          information about the secret data to project
          +optional
      downwardAPI:
        $ref: '#/definitions/k8s.io.api.core.v1.DownwardAPIProjection'
        title: |-
          information about the downwardAPI data to project
          +optional
      configMap:
        $ref: '#/definitions/k8s.io.api.core.v1.ConfigMapProjection'
        title: |-
          information about the configMap data to project
          +optional
      serviceAccountToken:
        $ref: '#/definitions/k8s.io.api.core.v1.ServiceAccountTokenProjection'
        title: |-
          information about the serviceAccountToken data to project
          +optional
    title: Projection that may be projected along with other supported volume types
  k8s.io.api.core.v1.VolumeSource:
    type: object
    properties:
      hostPath:
        $ref: '#/definitions/k8s.io.api.core.v1.HostPathVolumeSource'
        title: >-
          HostPath represents a pre-existing file or directory on the host

          machine that is directly exposed to the container. This is generally

          used for system agents or other privileged things that are allowed

          to see the host machine. Most containers will NOT need this.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#hostpath

          ---

          TODO(jonesdl) We need to restrict who can use host directory mounts
          and who can/can not

          mount host directories as read/write.

          +optional
      emptyDir:
        $ref: '#/definitions/k8s.io.api.core.v1.EmptyDirVolumeSource'
        title: >-
          EmptyDir represents a temporary directory that shares a pod's
          lifetime.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#emptydir

          +optional
      gcePersistentDisk:
        $ref: '#/definitions/k8s.io.api.core.v1.GCEPersistentDiskVolumeSource'
        title: >-
          GCEPersistentDisk represents a GCE Disk resource that is attached to a

          kubelet's host machine and then exposed to the pod.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

          +optional
      awsElasticBlockStore:
        $ref: '#/definitions/k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource'
        title: >-
          AWSElasticBlockStore represents an AWS Disk resource that is attached
          to a

          kubelet's host machine and then exposed to the pod.

          More info:
          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

          +optional
      gitRepo:
        $ref: '#/definitions/k8s.io.api.core.v1.GitRepoVolumeSource'
        title: >-
          GitRepo represents a git repository at a particular revision.

          DEPRECATED: GitRepo is deprecated. To provision a container with a git
          repo, mount an

          EmptyDir into an InitContainer that clones the repo using git, then
          mount the EmptyDir

          into the Pod's container.

          +optional
      secret:
        $ref: '#/definitions/k8s.io.api.core.v1.SecretVolumeSource'
        title: |-
          Secret represents a secret that should populate this volume.
          More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
          +optional
      nfs:
        $ref: '#/definitions/k8s.io.api.core.v1.NFSVolumeSource'
        title: |-
          NFS represents an NFS mount on the host that shares a pod's lifetime
          More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
          +optional
      iscsi:
        $ref: '#/definitions/k8s.io.api.core.v1.ISCSIVolumeSource'
        title: >-
          ISCSI represents an ISCSI Disk resource that is attached to a

          kubelet's host machine and then exposed to the pod.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md

          +optional
      glusterfs:
        $ref: '#/definitions/k8s.io.api.core.v1.GlusterfsVolumeSource'
        title: >-
          Glusterfs represents a Glusterfs mount on the host that shares a pod's
          lifetime.

          More info:
          https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md

          +optional
      persistentVolumeClaim:
        $ref: '#/definitions/k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource'
        title: >-
          PersistentVolumeClaimVolumeSource represents a reference to a

          PersistentVolumeClaim in the same namespace.

          More info:
          https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

          +optional
      rbd:
        $ref: '#/definitions/k8s.io.api.core.v1.RBDVolumeSource'
        title: >-
          RBD represents a Rados Block Device mount on the host that shares a
          pod's lifetime.

          More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md

          +optional
      flexVolume:
        $ref: '#/definitions/k8s.io.api.core.v1.FlexVolumeSource'
        title: |-
          FlexVolume represents a generic volume resource that is
          provisioned/attached using an exec based plugin.
          +optional
      cinder:
        $ref: '#/definitions/k8s.io.api.core.v1.CinderVolumeSource'
        title: >-
          Cinder represents a cinder volume attached and mounted on kubelets
          host machine

          More info:
          https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

          +optional
      cephfs:
        $ref: '#/definitions/k8s.io.api.core.v1.CephFSVolumeSource'
        title: >-
          CephFS represents a Ceph FS mount on the host that shares a pod's
          lifetime

          +optional
      flocker:
        $ref: '#/definitions/k8s.io.api.core.v1.FlockerVolumeSource'
        title: >-
          Flocker represents a Flocker volume attached to a kubelet's host
          machine. This depends on the Flocker control service being running

          +optional
      downwardAPI:
        $ref: '#/definitions/k8s.io.api.core.v1.DownwardAPIVolumeSource'
        title: >-
          DownwardAPI represents downward API about the pod that should populate
          this volume

          +optional
      fc:
        $ref: '#/definitions/k8s.io.api.core.v1.FCVolumeSource'
        title: >-
          FC represents a Fibre Channel resource that is attached to a kubelet's
          host machine and then exposed to the pod.

          +optional
      azureFile:
        $ref: '#/definitions/k8s.io.api.core.v1.AzureFileVolumeSource'
        title: >-
          AzureFile represents an Azure File Service mount on the host and bind
          mount to the pod.

          +optional
      configMap:
        $ref: '#/definitions/k8s.io.api.core.v1.ConfigMapVolumeSource'
        title: |-
          ConfigMap represents a configMap that should populate this volume
          +optional
      vsphereVolume:
        $ref: '#/definitions/k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource'
        title: >-
          VsphereVolume represents a vSphere volume attached and mounted on
          kubelets host machine

          +optional
      quobyte:
        $ref: '#/definitions/k8s.io.api.core.v1.QuobyteVolumeSource'
        title: >-
          Quobyte represents a Quobyte mount on the host that shares a pod's
          lifetime

          +optional
      azureDisk:
        $ref: '#/definitions/k8s.io.api.core.v1.AzureDiskVolumeSource'
        title: >-
          AzureDisk represents an Azure Data Disk mount on the host and bind
          mount to the pod.

          +optional
      photonPersistentDisk:
        $ref: '#/definitions/k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource'
        title: >-
          PhotonPersistentDisk represents a PhotonController persistent disk
          attached and mounted on kubelets host machine
      projected:
        $ref: '#/definitions/k8s.io.api.core.v1.ProjectedVolumeSource'
        title: 'Items for all in one resources secrets, configmaps, and downward API'
      portworxVolume:
        $ref: '#/definitions/k8s.io.api.core.v1.PortworxVolumeSource'
        title: >-
          PortworxVolume represents a portworx volume attached and mounted on
          kubelets host machine

          +optional
      scaleIO:
        $ref: '#/definitions/k8s.io.api.core.v1.ScaleIOVolumeSource'
        title: >-
          ScaleIO represents a ScaleIO persistent volume attached and mounted on
          Kubernetes nodes.

          +optional
      storageos:
        $ref: '#/definitions/k8s.io.api.core.v1.StorageOSVolumeSource'
        title: >-
          StorageOS represents a StorageOS volume attached and mounted on
          Kubernetes nodes.

          +optional
      csi:
        $ref: '#/definitions/k8s.io.api.core.v1.CSIVolumeSource'
        title: >-
          CSI (Container Storage Interface) represents storage that is handled
          by an external CSI driver (Alpha feature).

          +optional
    description: |-
      Represents the source of a volume to mount.
      Only one of its members may be specified.
  k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource:
    type: object
    properties:
      volumePath:
        type: string
        title: Path that identifies vSphere volume vmdk
      fsType:
        type: string
        title: >-
          Filesystem type to mount.

          Must be a filesystem type supported by the host operating system.

          Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
          unspecified.

          +optional
      storagePolicyName:
        type: string
        title: |-
          Storage Policy Based Management (SPBM) profile name.
          +optional
      storagePolicyID:
        type: string
        title: >-
          Storage Policy Based Management (SPBM) profile ID associated with the
          StoragePolicyName.

          +optional
    description: Represents a vSphere volume resource.
  k8s.io.api.core.v1.WeightedPodAffinityTerm:
    type: object
    properties:
      weight:
        type: integer
        format: int32
        description: |-
          weight associated with matching the corresponding podAffinityTerm,
          in the range 1-100.
      podAffinityTerm:
        $ref: '#/definitions/k8s.io.api.core.v1.PodAffinityTerm'
        description: >-
          Required. A pod affinity term, associated with the corresponding
          weight.
    title: >-
      The weights of all of the matched WeightedPodAffinityTerm fields are added
      per-node to find the most preferred node(s)
  k8s.io.apimachinery.pkg.api.resource.Quantity:
    type: object
    properties:
      string:
        type: string
    description: >-
      Quantity is a fixed-point representation of a number.

      It provides convenient marshaling/unmarshaling in JSON and YAML,

      in addition to String() and Int64() accessors.


      The serialization format is:


      <quantity>        ::= <signedNumber><suffix>
        (Note that <suffix> may be empty, from the "" case in <decimalSI>.)
      <digit>           ::= 0 | 1 | ... | 9

      <digits>          ::= <digit> | <digit><digits>

      <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits>

      <sign>            ::= "+" | "-"

      <signedNumber>    ::= <number> | <sign><number>

      <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI>

      <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
        (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
      <decimalSI>       ::= m | "" | k | M | G | T | P | E
        (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
      <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>


      No matter which of the three exponent forms is used, no quantity may
      represent

      a number greater than 2^63-1 in magnitude, nor may it have more than 3
      decimal

      places. Numbers larger or more precise will be capped or rounded up.

      (E.g.: 0.1m will rounded up to 1m.)

      This may be extended in the future if we require larger or smaller
      quantities.


      When a Quantity is parsed from a string, it will remember the type of
      suffix

      it had, and will use the same type again when it is serialized.


      Before serializing, Quantity will be put in "canonical form".

      This means that Exponent/suffix will be adjusted up or down (with a

      corresponding increase or decrease in Mantissa) such that:
        a. No precision is lost
        b. No fractional digits will be emitted
        c. The exponent (or suffix) is as large as possible.
      The sign will be omitted unless the number is negative.


      Examples:
        1.5 will be serialized as "1500m"
        1.5Gi will be serialized as "1536Mi"

      Note that the quantity will NEVER be internally represented by a

      floating point number. That is the whole point of this exercise.


      Non-canonical values will still parse as long as they are well formed,

      but will be re-emitted in their canonical form. (So always use canonical

      form, or don't diff.)


      This format is intended to make it difficult to use these numbers without

      writing some sort of special handling code in the hopes that that will

      cause implementors to also use a fixed point implementation.


      +protobuf=true

      +protobuf.embed=string

      +protobuf.options.marshal=false

      +protobuf.options.(gogoproto.goproto_stringer)=false

      +k8s:deepcopy-gen=true

      +k8s:openapi-gen=true
  k8s.io.apimachinery.pkg.apis.meta.v1.Fields:
    type: object
    properties:
      map:
        type: object
        additionalProperties:
          $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Fields'
        description: >-
          Map stores a set of fields in a data structure like a Trie.


          Each key is either a '.' representing the field itself, and will
          always map to an empty set,

          or a string representing a sub-field or item. The string will follow
          one of these four formats:

          'f:<name>', where <name> is the name of a field in a struct, or key in
          a map

          'v:<value>', where <value> is the exact json formatted value of a list
          item

          'i:<index>', where <index> is position of a item in a list

          'k:<keys>', where <keys> is a map of  a list item's key fields to
          their unique values

          If a key maps to an empty Fields value, the field that key represents
          is part of the set.


          The exact format is defined in
          k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal
    title: >-
      Fields stores a set of fields in a data structure like a Trie.

      To understand how this is used, see:
      https://github.com/kubernetes-sigs/structured-merge-diff
  k8s.io.apimachinery.pkg.apis.meta.v1.Initializer:
    type: object
    properties:
      name:
        type: string
        description: name of the process that is responsible for initializing this object.
    description: >-
      Initializer is information about an initializer that has not yet
      completed.
  k8s.io.apimachinery.pkg.apis.meta.v1.Initializers:
    type: object
    properties:
      pending:
        type: array
        items:
          $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Initializer'
        title: >-
          Pending is a list of initializers that must execute in order before
          this object is visible.

          When the last pending initializer is removed, and no failing result is
          set, the initializers

          struct will be set to nil and the object is considered as initialized
          and visible to all

          clients.

          +patchMergeKey=name

          +patchStrategy=merge
      result:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Status'
        description: >-
          If result is set with the Failure field, the object will be persisted
          to storage and then deleted,

          ensuring that other clients can observe the deletion.
    description: Initializers tracks the progress of initialization.
  k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector:
    type: object
    properties:
      matchLabels:
        type: object
        additionalProperties:
          type: string
        title: >-
          matchLabels is a map of {key,value} pairs. A single {key,value} in the
          matchLabels

          map is equivalent to an element of matchExpressions, whose key field
          is "key", the

          operator is "In", and the values array contains only "value". The
          requirements are ANDed.

          +optional
      matchExpressions:
        type: array
        items:
          $ref: >-
            #/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement
        title: >-
          matchExpressions is a list of label selector requirements. The
          requirements are ANDed.

          +optional
    description: >-
      A label selector is a label query over a set of resources. The result of
      matchLabels and

      matchExpressions are ANDed. An empty label selector matches all objects. A
      null

      label selector matches no objects.
  k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement:
    type: object
    properties:
      key:
        type: string
        title: |-
          key is the label key that the selector applies to.
          +patchMergeKey=key
          +patchStrategy=merge
      operator:
        type: string
        description: |-
          operator represents a key's relationship to a set of values.
          Valid operators are In, NotIn, Exists and DoesNotExist.
      values:
        type: array
        items:
          type: string
        title: >-
          values is an array of string values. If the operator is In or NotIn,

          the values array must be non-empty. If the operator is Exists or
          DoesNotExist,

          the values array must be empty. This array is replaced during a
          strategic

          merge patch.

          +optional
    description: >-
      A label selector requirement is a selector that contains values, a key,
      and an operator that

      relates the key and values.
  k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta:
    type: object
    properties:
      selfLink:
        type: string
        title: |-
          selfLink is a URL representing this object.
          Populated by the system.
          Read-only.
          +optional
      resourceVersion:
        type: string
        title: >-
          String that identifies the server's internal version of this object
          that

          can be used by clients to determine when objects have changed.

          Value must be treated as opaque by clients and passed unmodified back
          to the server.

          Populated by the system.

          Read-only.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

          +optional
      continue:
        type: string
        description: >-
          continue may be set if the user set a limit on the number of items
          returned, and indicates that

          the server has more data available. The value is opaque and may be
          used to issue another request

          to the endpoint that served this list to retrieve the next set of
          available objects. Continuing a

          consistent list may not be possible if the server configuration has
          changed or more than a few

          minutes have passed. The resourceVersion field returned when using
          this continue value will be

          identical to the value in the first response, unless you have received
          this token from an error

          message.
    description: >-
      ListMeta describes metadata that synthetic resources must have, including
      lists and

      various status objects. A resource may have only one of {ObjectMeta,
      ListMeta}.
  k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry:
    type: object
    properties:
      manager:
        type: string
        description: Manager is an identifier of the workflow managing these fields.
      operation:
        type: string
        description: >-
          Operation is the type of operation which lead to this
          ManagedFieldsEntry being created.

          The only valid values for this field are 'Apply' and 'Update'.
      apiVersion:
        type: string
        description: |-
          APIVersion defines the version of this resource that this field set
          applies to. The format is "group/version" just like the top-level
          APIVersion field. It is necessary to track the version of a field
          set because it cannot be automatically converted.
      time:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        title: >-
          Time is timestamp of when these fields were set. It should always be
          empty if Operation is 'Apply'

          +optional
      fields:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Fields'
        title: |-
          Fields identifies a set of fields.
          +optional
    description: >-
      ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of
      the resource

      that the fieldset applies to.
  k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta:
    type: object
    properties:
      name:
        type: string
        title: >-
          Name must be unique within a namespace. Is required when creating
          resources, although

          some resources may allow a client to request the generation of an
          appropriate name

          automatically. Name is primarily intended for creation idempotence and
          configuration

          definition.

          Cannot be updated.

          More info: http://kubernetes.io/docs/user-guide/identifiers#names

          +optional
      generateName:
        type: string
        description: >-
          GenerateName is an optional prefix, used by the server, to generate a
          unique

          name ONLY IF the Name field has not been provided.

          If this field is used, the name returned to the client will be
          different

          than the name passed. This value will also be combined with a unique
          suffix.

          The provided value has the same validation rules as the Name field,

          and may be truncated by the length of the suffix required to make the
          value

          unique on the server.


          If this field is specified and the generated name exists, the server
          will

          NOT return a 409 - instead, it will either return 201 Created or 500
          with Reason

          ServerTimeout indicating a unique name could not be found in the time
          allotted, and the client

          should retry (optionally after the time indicated in the Retry-After
          header).


          Applied only if Name is not specified.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency

          +optional
      namespace:
        type: string
        description: >-
          Namespace defines the space within each name must be unique. An empty
          namespace is

          equivalent to the "default" namespace, but "default" is the canonical
          representation.

          Not all objects are required to be scoped to a namespace - the value
          of this field for

          those objects will be empty.


          Must be a DNS_LABEL.

          Cannot be updated.

          More info: http://kubernetes.io/docs/user-guide/namespaces

          +optional
      selfLink:
        type: string
        title: |-
          SelfLink is a URL representing this object.
          Populated by the system.
          Read-only.
          +optional
      uid:
        type: string
        description: >-
          UID is the unique in time and space value for this object. It is
          typically generated by

          the server on successful creation of a resource and is not allowed to
          change on PUT

          operations.


          Populated by the system.

          Read-only.

          More info: http://kubernetes.io/docs/user-guide/identifiers#uids

          +optional
      resourceVersion:
        type: string
        description: >-
          An opaque value that represents the internal version of this object
          that can

          be used by clients to determine when objects have changed. May be used
          for optimistic

          concurrency, change detection, and the watch operation on a resource
          or set of resources.

          Clients must treat these values as opaque and passed unmodified back
          to the server.

          They may only be valid for a particular resource or set of resources.


          Populated by the system.

          Read-only.

          Value must be treated as opaque by clients and .

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

          +optional
      generation:
        type: string
        format: int64
        title: >-
          A sequence number representing a specific generation of the desired
          state.

          Populated by the system. Read-only.

          +optional
      creationTimestamp:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        description: >-
          CreationTimestamp is a timestamp representing the server time when
          this object was

          created. It is not guaranteed to be set in happens-before order across
          separate operations.

          Clients may not set this value. It is represented in RFC3339 form and
          is in UTC.


          Populated by the system.

          Read-only.

          Null for lists.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      deletionTimestamp:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time'
        description: >-
          DeletionTimestamp is RFC 3339 date and time at which this resource
          will be deleted. This

          field is set by the server when a graceful deletion is requested by
          the user, and is not

          directly settable by a client. The resource is expected to be deleted
          (no longer visible

          from resource lists, and not reachable by name) after the time in this
          field, once the

          finalizers list is empty. As long as the finalizers list contains
          items, deletion is blocked.

          Once the deletionTimestamp is set, this value may not be unset or be
          set further into the

          future, although it may be shortened or the resource may be deleted
          prior to this time.

          For example, a user may request that a pod is deleted in 30 seconds.
          The Kubelet will react

          by sending a graceful termination signal to the containers in the pod.
          After that 30 seconds,

          the Kubelet will send a hard termination signal (SIGKILL) to the
          container and after cleanup,

          remove the pod from the API. In the presence of network partitions,
          this object may still

          exist after this timestamp, until an administrator or automated
          process can determine the

          resource is fully terminated.

          If not set, graceful deletion of the object has not been requested.


          Populated by the system when a graceful deletion is requested.

          Read-only.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

          +optional
      deletionGracePeriodSeconds:
        type: string
        format: int64
        title: >-
          Number of seconds allowed for this object to gracefully terminate
          before

          it will be removed from the system. Only set when deletionTimestamp is
          also set.

          May only be shortened.

          Read-only.

          +optional
      labels:
        type: object
        additionalProperties:
          type: string
        title: >-
          Map of string keys and values that can be used to organize and
          categorize

          (scope and select) objects. May match selectors of replication
          controllers

          and services.

          More info: http://kubernetes.io/docs/user-guide/labels

          +optional
      annotations:
        type: object
        additionalProperties:
          type: string
        title: >-
          Annotations is an unstructured key value map stored with a resource
          that may be

          set by external tools to store and retrieve arbitrary metadata. They
          are not

          queryable and should be preserved when modifying objects.

          More info: http://kubernetes.io/docs/user-guide/annotations

          +optional
      ownerReferences:
        type: array
        items:
          $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference'
        title: >-
          List of objects depended by this object. If ALL objects in the list
          have

          been deleted, this object will be garbage collected. If this object is
          managed by a controller,

          then an entry in this list will point to this controller, with the
          controller field set to true.

          There cannot be more than one managing controller.

          +optional

          +patchMergeKey=uid

          +patchStrategy=merge
      initializers:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Initializers'
        description: >-
          An initializer is a controller which enforces some system invariant at
          object creation time.

          This field is a list of initializers that have not yet acted on this
          object. If nil or empty,

          this object has been completely initialized. Otherwise, the object is
          considered uninitialized

          and is hidden (in list/watch and get calls) from clients that haven't
          explicitly asked to

          observe uninitialized objects.


          When an object is created, the system will populate this list with the
          current set of initializers.

          Only privileged users may set or modify this list. Once it is empty,
          it may not be modified further

          by any user.


          DEPRECATED - initializers are an alpha field and will be removed in
          v1.15.
      finalizers:
        type: array
        items:
          type: string
        title: >-
          Must be empty before the object is deleted from the registry. Each
          entry

          is an identifier for the responsible component that will remove the
          entry

          from the list. If the deletionTimestamp of the object is non-nil,
          entries

          in this list can only be removed.

          +optional

          +patchStrategy=merge
      clusterName:
        type: string
        title: >-
          The name of the cluster which the object belongs to.

          This is used to distinguish resources with same name and namespace in
          different clusters.

          This field is not set anywhere right now and apiserver is going to
          ignore it if set in create or update request.

          +optional
      managedFields:
        type: array
        items:
          $ref: >-
            #/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry
        description: |-
          ManagedFields maps workflow-id and version to the set of fields
          that are managed by that workflow. This is mostly for internal
          housekeeping, and users typically shouldn't need to set or
          understand this field. A workflow can be the user's name, a
          controller's name, or the name of a specific apply path like
          "ci-cd". The set of fields is always in the version that the
          workflow used when modifying the object.

          This field is alpha and can be changed or removed without notice.

          +optional
    description: >-
      ObjectMeta is metadata that all persisted resources must have, which
      includes all objects

      users must create.
  k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference:
    type: object
    properties:
      apiVersion:
        type: string
        description: API version of the referent.
      kind:
        type: string
        title: >-
          Kind of the referent.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
      name:
        type: string
        title: |-
          Name of the referent.
          More info: http://kubernetes.io/docs/user-guide/identifiers#names
      uid:
        type: string
        title: |-
          UID of the referent.
          More info: http://kubernetes.io/docs/user-guide/identifiers#uids
      controller:
        type: boolean
        format: boolean
        title: |-
          If true, this reference points to the managing controller.
          +optional
      blockOwnerDeletion:
        type: boolean
        format: boolean
        title: |-
          If true, AND if the owner has the "foregroundDeletion" finalizer, then
          the owner cannot be deleted from the key-value store until this
          reference is removed.
          Defaults to false.
          To set this field, a user needs "delete" permission of the owner,
          otherwise 422 (Unprocessable Entity) will be returned.
          +optional
    description: >-
      OwnerReference contains enough information to let you identify an owning

      object. An owning object must be in the same namespace as the dependent,
      or

      be cluster-scoped, so there is no namespace field.
  k8s.io.apimachinery.pkg.apis.meta.v1.Status:
    type: object
    properties:
      metadata:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta'
        title: >-
          Standard list metadata.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

          +optional
      status:
        type: string
        title: >-
          Status of the operation.

          One of: "Success" or "Failure".

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

          +optional
      message:
        type: string
        title: |-
          A human-readable description of the status of this operation.
          +optional
      reason:
        type: string
        title: |-
          A machine-readable description of why this operation is in the
          "Failure" status. If this value is empty there
          is no information available. A Reason clarifies an HTTP status
          code but does not override it.
          +optional
      details:
        $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails'
        title: |-
          Extended data associated with the reason.  Each reason may define its
          own extended details. This field is optional and the data returned
          is not guaranteed to conform to any schema except that defined by
          the reason type.
          +optional
      code:
        type: integer
        format: int32
        title: |-
          Suggested HTTP return code for this status, 0 if not set.
          +optional
    description: Status is a return value for calls that don't return other objects.
  k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause:
    type: object
    properties:
      reason:
        type: string
        title: >-
          A machine-readable description of the cause of the error. If this
          value is

          empty there is no information available.

          +optional
      message:
        type: string
        title: >-
          A human-readable description of the cause of the error.  This field
          may be

          presented as-is to a reader.

          +optional
      field:
        type: string
        description: >-
          The field of the resource that has caused this error, as named by its
          JSON

          serialization. May include dot and postfix notation for nested
          attributes.

          Arrays are zero-indexed.  Fields may appear more than once in an array
          of

          causes due to fields having multiple errors.

          Optional.


          Examples:
            "name" - the field "name" on the current resource
            "items[0].name" - the field "name" on the first array entry in "items"
          +optional
    description: >-
      StatusCause provides more information about an api.Status failure,
      including

      cases when multiple errors are encountered.
  k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails:
    type: object
    properties:
      name:
        type: string
        title: >-
          The name attribute of the resource associated with the status
          StatusReason

          (when there is a single name which can be described).

          +optional
      group:
        type: string
        title: >-
          The group attribute of the resource associated with the status
          StatusReason.

          +optional
      kind:
        type: string
        title: >-
          The kind attribute of the resource associated with the status
          StatusReason.

          On some operations may differ from the requested resource Kind.

          More info:
          https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

          +optional
      uid:
        type: string
        title: |-
          UID of the resource.
          (when there is a single resource which can be described).
          More info: http://kubernetes.io/docs/user-guide/identifiers#uids
          +optional
      causes:
        type: array
        items:
          $ref: '#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause'
        title: >-
          The Causes array includes more details associated with the
          StatusReason

          failure. Not all StatusReasons may provide detailed causes.

          +optional
      retryAfterSeconds:
        type: integer
        format: int32
        title: >-
          If specified, the time in seconds before the operation should be
          retried. Some errors may indicate

          the client must take an alternate action - for those errors this field
          may indicate how long to wait

          before taking the alternate action.

          +optional
    description: |-
      StatusDetails is a set of additional properties that MAY be set by the
      server to provide additional information about a response. The Reason
      field of a Status object defines what attributes will be set. Clients
      must ignore fields that do not match the defined type of each attribute,
      and should assume that any attribute may be empty, invalid, or under
      defined.
  k8s.io.apimachinery.pkg.apis.meta.v1.Time:
    type: object
    properties:
      seconds:
        type: string
        format: int64
        description: |-
          Represents seconds of UTC time since Unix epoch
          1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
          9999-12-31T23:59:59Z inclusive.
      nanos:
        type: integer
        format: int32
        description: >-
          Non-negative fractions of a second at nanosecond resolution. Negative

          second values with fractions must still have non-negative nanos values

          that count forward in time. Must be from 0 to 999,999,999

          inclusive. This field may be limited in precision depending on
          context.
    description: |-
      Time is a wrapper around time.Time which supports correct
      marshaling to YAML and JSON.  Wrappers are provided for many
      of the factory methods that the time package offers.

      +protobuf.options.marshal=false
      +protobuf.as=Timestamp
      +protobuf.options.(gogoproto.goproto_stringer)=false
  k8s.io.apimachinery.pkg.util.intstr.IntOrString:
    type: object
    properties:
      type:
        type: string
        format: int64
      intVal:
        type: integer
        format: int32
      strVal:
        type: string
    description: |-
      +protobuf=true
      +protobuf.options.(gogoproto.goproto_stringer)=false
      +k8s:openapi-gen=true
    title: |-
      IntOrString is a type that can hold an int32 or a string.  When used in
      JSON or YAML marshalling and unmarshalling, it produces or consumes the
      inner type.  This allows you to have, for example, a JSON field that can
      accept a name or number.
      TODO: Rename to Int32OrString
  vmware.tanzu.mc.v1alpha.cluster.object.AggregatedResources:
    type: object
    properties:
      totalCpu:
        type: integer
        format: int32
        description: This is the total aggregated CPU of the object in millicores.
      totalMemory:
        type: integer
        format: int32
        description: This is the total aggregated memory of the object in GB.
      totalPods:
        type: integer
        format: int32
        description: This is the total aggregated pods of the object.
      requestedCpu:
        type: number
        format: float
        description: This is the total requested CPU of the object in millicores.
      requestedMemory:
        type: number
        format: float
        description: This is the total requested memory of the object in GB.
      cpuLimits:
        type: number
        format: float
        description: This is the total CPU limit of the object in millicores.
      memoryLimits:
        type: number
        format: float
        description: This is the total memory limit of the object in GB.
    description: Aggregated pod information.
  vmware.tanzu.mc.v1alpha.cluster.object.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: Org ID of the cluster organization.
      location:
        type: string
        description: Location of the cluster.
      clusterName:
        type: string
        description: Name of the cluster in DNS-1123 format.
      name:
        type: string
        description: Name of the cluster object.
    description: Scope of the object.
  vmware.tanzu.mc.v1alpha.cluster.object.ListObjectsResponse:
    type: object
    properties:
      objects:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.Object'
        description: List of objects.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Objects.
  vmware.tanzu.mc.v1alpha.cluster.object.Object:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.FullName'
        description: Full name for object.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for object.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectSpec'
        description: Spec for object.
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectStatus'
        description: Status of the object.
    description: Kubernetes objects that exists on a cluster.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectCronJob:
    type: object
    properties:
      resourceCronJob:
        $ref: '#/definitions/k8s.io.api.batch.v1beta1.CronJob'
        description: CronJob object.
    description: CronJob Object.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectDaemonSet:
    type: object
    properties:
      resourceDaemonSet:
        $ref: '#/definitions/k8s.io.api.apps.v1.DaemonSet'
        description: DaemonSet object.
      aggregatedResources:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.AggregatedResources
        description: Aggregated resources for daemon set.
    description: DaemonSet Object.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectDeployment:
    type: object
    properties:
      resourceDeployment:
        $ref: '#/definitions/k8s.io.api.apps.v1.Deployment'
        description: Deployment object.
      aggregatedResources:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.AggregatedResources
        description: Aggregated resources for deployment.
    description: Deployment Object.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectJob:
    type: object
    properties:
      resourceJob:
        $ref: '#/definitions/k8s.io.api.batch.v1.Job'
        description: Job object.
    description: Job Object.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectNamespace:
    type: object
    properties:
      resourceNamespace:
        $ref: '#/definitions/k8s.io.api.core.v1.Namespace'
        description: Namespace object.
      aggregatedResources:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.AggregatedResources
        description: Aggregated resources for namespace.
      workspace:
        type: string
        description: Workspace this namespace belongs to.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectNamespace.Type
        description: Type of the namespace.
    description: Namespace Object containing aggregated resources.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectNamespace.Type:
    type: string
    enum:
      - UNKNOWN
      - MANAGED
      - UNMANAGED
    default: UNKNOWN
    description: |-
      Enum for namespace type.

       - UNKNOWN: UNKNOWN namespace type.
       - MANAGED: MANAGED namespace type.
       - UNMANAGED: UNMANAGED namespace type.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectNode:
    type: object
    properties:
      resourceNode:
        $ref: '#/definitions/k8s.io.api.core.v1.Node'
        description: Node object.
      aggregatedResources:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.AggregatedResources
        description: Aggregated resources for node.
    description: Node Object containing aggregated resources.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectPod:
    type: object
    properties:
      resourcePod:
        $ref: '#/definitions/k8s.io.api.core.v1.Pod'
        description: Pod object.
    description: Pod Object.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectReplicaSet:
    type: object
    properties:
      resourceReplicaSet:
        $ref: '#/definitions/k8s.io.api.apps.v1.ReplicaSet'
        description: ReplicaSet object.
      aggregatedResources:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.AggregatedResources
        description: Aggregated resources for replica set.
    description: ReplicaSet Object.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectReplicationController:
    type: object
    properties:
      resourceReplicationController:
        $ref: '#/definitions/k8s.io.api.core.v1.ReplicationController'
        description: ReplicationController object.
      aggregatedResources:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.AggregatedResources
        description: Aggregated resources for replication controller.
    description: ReplicationController Object.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectService:
    type: object
    properties:
      resourceService:
        $ref: '#/definitions/k8s.io.api.core.v1.Service'
        description: Service object.
    description: Service Object.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectSpec:
    type: object
    description: The object spec.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectStatefulSet:
    type: object
    properties:
      resourceStatefulSet:
        $ref: '#/definitions/k8s.io.api.apps.v1.StatefulSet'
        description: StatefulSet object.
      aggregatedResources:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.AggregatedResources
        description: Aggregated resources for stateful set.
    description: StatefulSet Object.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectStatus:
    type: object
    properties:
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.ResourceStatus'
        description: Status of the object.
      kind:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectStatus.Kind'
        description: Kind of the resource.
      objectNamespace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectNamespace'
        description: Namespace object.
      objectNode:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectNode'
        description: Node object.
      objectPod:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectPod'
        description: Pod object.
      objectDeployment:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectDeployment'
        description: Deployment object.
      objectService:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectService'
        description: Service object.
      objectReplicaSet:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectReplicaSet'
        description: ReplicaSet object.
      objectReplicationController:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectReplicationController
        description: ReplicationController object.
      objectDaemonSet:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectDaemonSet'
        description: DaemonSet object.
      objectStatefulSet:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectStatefulSet'
        description: StatefulSet object.
      objectCronJob:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectCronJob'
        description: CronJob object.
      objectJob:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.object.ObjectJob'
        description: Job object.
      aggregatedResources:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.object.AggregatedResources
        description: Aggregated resources for object.
      workspaceName:
        type: string
        description: Name of the workspace this object belongs to.
    description: The object status.
  vmware.tanzu.mc.v1alpha.cluster.object.ObjectStatus.Kind:
    type: string
    enum:
      - UNKNOWN
      - Node
      - Pod
      - Deployment
      - Service
      - ReplicaSet
      - ReplicationController
      - DaemonSet
      - StatefulSet
      - CronJob
      - Job
      - Namespace
    default: UNKNOWN
    description: |-
      Enum for resource kind.

       - UNKNOWN: UNKNOWN kind as during parsing this value is not set and is empty on return.
       - Node: Node Kind.
       - Pod: Pod Kind.
       - Deployment: Deployment Kind.
       - Service: Service kind.
       - ReplicaSet: ReplicaSet kind.
       - ReplicationController: ReplicationController kind.
       - DaemonSet: DaemonSet kind.
       - StatefulSet: StatefulSet kind.
       - CronJob: CronJob kind.
       - Job: Job kind.
       - Namespace: Namespace kind.
  vmware.tanzu.mc.v1alpha.cluster.object.SearchScope:
    type: object
    properties:
      location:
        type: string
        description: >-
          Scope search to the specified location; supports globbing; default
          (*).
      clusterName:
        type: string
        description: >-
          Scope search to the specified cluster_name; supports globbing; default
          (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.cluster.policy.ApplyPolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Policy to apply.
    description: Request to apply a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.ApplyPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Policy applied.
    description: Response from applying a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: ID of Organization.
      location:
        type: string
        description: Location of the cluster.
      clusterName:
        type: string
        description: Name of the cluster.
      name:
        type: string
        description: Name of the cluster policy.
    description: Scope for the ClusterPolicy.
  vmware.tanzu.mc.v1alpha.cluster.policy.Policy:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.FullName'
        description: Full name for the cluster policy.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the cluster policy.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicySpec'
        description: Spec for the cluster policy.
    description: A Policy to apply on a Kubernetes cluster.
  vmware.tanzu.mc.v1alpha.cluster.policy.PolicySchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.cluster.policy.PolicySchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Policy schema.
    description: Response with a Policy schema.
  vmware.tanzu.mc.v1alpha.cluster.policy.PolicyTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.cluster.policy.PolicyTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Policy schema template.
    description: Response with a Policy schema template.
  vmware.tanzu.mc.v1alpha.cluster.policy.CreatePolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Policy to create.
    description: Request to create a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.CreatePolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Policy created.
    description: Response from creating a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.DeletePolicyResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.GetPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Policy returned.
    description: Response from getting a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.ListPoliciesResponse:
    type: object
    properties:
      policies:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: List of policies.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Policies.
  vmware.tanzu.mc.v1alpha.cluster.policy.PatchPolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Patch Policy.
    description: Request to patch a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.PatchPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Policy to patch.
    description: Response from patching a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.SearchScope:
    type: object
    properties:
      location:
        type: string
        description: >-
          Scope search to the specified location; supports globbing; default
          (*).
      clusterName:
        type: string
        description: >-
          Scope search to the specified cluster_name; supports globbing; default
          (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.cluster.policy.UpdatePolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Update Policy.
    description: Request to update (overwrite) a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.UpdatePolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Policy updated.
    description: Response from updating a Policy.
  vmware.tanzu.mc.v1alpha.cluster.policy.WatchPoliciesResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.Policy'
        description: Policy event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.policy.WatchPoliciesResponse.EventType
        description: Type of event.
    description: Streamed response from watching Policies.
  vmware.tanzu.mc.v1alpha.cluster.policy.WatchPoliciesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: Org ID of the cluster organization.
      location:
        type: string
        description: Location of the cluster.
      clusterName:
        type: string
        description: Name of the cluster.
      name:
        type: string
        description: Name of the provisioned cluster.
    description: Full name of the provisioned cluster.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.kubeconfig.GetAdminKubeconfigResponse:
    type: object
    properties:
      kubeconfig:
        type: string
        description: Cluster Admin Kubeconfig.
    description: Response with cluster admin kubeconfig.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.kubeconfig.GetKubeconfigResponse:
    type: object
    properties:
      kubeconfig:
        type: string
        description: Cluster Kubeconfig.
    description: Response with cluster kubeconfig.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.ApplyNodePoolRequest:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: NodePool to apply.
    description: Request to apply a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.ApplyNodePoolResponse:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: NodePool applied.
    description: Response from applying a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.ListNodePoolOptionsResponse:
    type: object
    properties:
      awsOptions:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.common.cloud.aws.AWSProviderOptions
        description: AWS specific node pool options.
    description: Response from listing node pool options.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: NodePool schema.
    description: Response with a NodePool schema.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePoolTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: NodePool schema template.
    description: Response with a NodePool schema template.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.CreateNodePoolRequest:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: NodePool to create.
    description: Request to create a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.CreateNodePoolResponse:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: NodePool created.
    description: Response from creating a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.DeleteNodePoolResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.GetNodePoolResponse:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: NodePool returned.
    description: Response from getting a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.ListNodePoolsResponse:
    type: object
    properties:
      nodepools:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: List of nodepools.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing NodePools.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.PatchNodePoolRequest:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: Patch NodePool.
    description: Request to patch a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.PatchNodePoolResponse:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: NodePool to patch.
    description: Response from patching a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.SearchScope:
    type: object
    properties:
      location:
        type: string
        description: >-
          Scope search to the specified location; supports globbing; default
          (*).
      clusterName:
        type: string
        description: >-
          Scope search to the specified cluster_name; supports globbing; default
          (*).
      provisionedclusterName:
        type: string
        description: >-
          Scope search to the specified provisionedcluster_name; supports
          globbing; default (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.UpdateNodePoolRequest:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: Update NodePool.
    description: Request to update (overwrite) a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.UpdateNodePoolResponse:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: NodePool updated.
    description: Response from updating a NodePool.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.WatchNodePoolsResponse:
    type: object
    properties:
      nodepool:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.NodePool
        description: NodePool event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.WatchNodePoolsResponse.EventType
        description: Type of event.
    description: Streamed response from watching NodePools.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.nodepool.WatchNodePoolsResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.cluster.provisionedcluster.versions.GetResponse:
    type: object
    properties:
      versions:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.cluster.Version'
        description: Versions is a list of Version objects where index 0 is the latest.
    description: GetResponse is the object returned from Get RPC.
  vmware.tanzu.mc.v1alpha.clustergroup.ApplyClusterGroupRequest:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: ClusterGroup to apply.
    description: Request to apply a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.ApplyClusterGroupResponse:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: ClusterGroup applied.
    description: Response from applying a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.FullName'
        description: Full name for the ClusterGroup.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the ClusterGroup object.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroupSpec'
        description: Spec for the ClusterGroup.
    description: A group of Kubernetes clusters.
  vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroupSpec:
    type: object
    description: The ClusterGroup spec.
  vmware.tanzu.mc.v1alpha.clustergroup.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: ID of Organization.
      name:
        type: string
        description: Name of this ClusterGroup.
    description: |-
      Full name of the cluster group. This includes the object name along
      with any parents or further identifiers.
  vmware.tanzu.mc.v1alpha.clustergroup.GetClusterGroupEffectivePolicySetResponse:
    type: object
    properties:
      policySet:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.EffectivePolicySet'
        description: ClusterGroup effective policy set.
    description: GetClusterGroupEffectivePolicySet response message.
  vmware.tanzu.mc.v1alpha.clustergroup.GetClusterGroupIAMPolicyResponse:
    type: object
    properties:
      policyList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: ClusterGroup policy.
    description: GetClusterGroupIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.clustergroup.PatchClusterGroupIAMPolicyRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.FullName'
        description: ClusterGroup full_name.
      bindingDeltaList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.BindingDelta'
        description: Binding delta to be applied.
    description: PatchClusterGroupIAMPolicy request message.
  vmware.tanzu.mc.v1alpha.clustergroup.PatchClusterGroupIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: New policy object.
    description: PatchClusterGroupIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.clustergroup.TestClusterGroupIAMPermissionsRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.FullName'
        description: ClusterGroup full_name.
      permissions:
        type: array
        items:
          type: string
        description: List of permissions to test.
    description: TestClusterGroupIAMPermissions request message.
  vmware.tanzu.mc.v1alpha.clustergroup.TestClusterGroupIAMPermissionsResponse:
    type: object
    properties:
      permissions:
        type: array
        items:
          type: string
        description: List of allowed permissions.
      uid:
        type: string
        description: >-
          Unique ID of the resource. Coupled with FullName (RID), provides a
          stable unique

          identifier for the resource.
    description: TestClusterGroupIAMPermissions response message.
  vmware.tanzu.mc.v1alpha.clustergroup.UpdateClusterGroupIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: ClusterGroup policy set.
    description: UpdateClusterGroupIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroupSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroupSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: ClusterGroup schema.
    description: Response with a ClusterGroup schema.
  vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroupTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroupTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: ClusterGroup schema template.
    description: Response with a ClusterGroup schema template.
  vmware.tanzu.mc.v1alpha.clustergroup.CreateClusterGroupRequest:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: ClusterGroup to create.
    description: Request to create a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.CreateClusterGroupResponse:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: ClusterGroup created.
    description: Response from creating a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.DeleteClusterGroupResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.GetClusterGroupResponse:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: ClusterGroup returned.
    description: Response from getting a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.ListClusterGroupsResponse:
    type: object
    properties:
      clustergroups:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: List of clustergroups.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing ClusterGroups.
  vmware.tanzu.mc.v1alpha.clustergroup.PatchClusterGroupRequest:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: Patch ClusterGroup.
    description: Request to patch a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.PatchClusterGroupResponse:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: ClusterGroup to patch.
    description: Response from patching a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.SearchScope:
    type: object
    properties:
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.clustergroup.UpdateClusterGroupRequest:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: Update ClusterGroup.
    description: Request to update (overwrite) a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.UpdateClusterGroupResponse:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: ClusterGroup updated.
    description: Response from updating a ClusterGroup.
  vmware.tanzu.mc.v1alpha.clustergroup.WatchClusterGroupsResponse:
    type: object
    properties:
      clustergroup:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.ClusterGroup'
        description: ClusterGroup event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.WatchClusterGroupsResponse.EventType
        description: Type of event.
    description: Streamed response from watching ClusterGroups.
  vmware.tanzu.mc.v1alpha.clustergroup.WatchClusterGroupsResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.ApplyPolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Policy to apply.
    description: Request to apply a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.ApplyPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Policy applied.
    description: Response from applying a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: ID of Organization.
      clustergroupName:
        type: string
        description: Name of the ClusterGroup.
      name:
        type: string
        description: Name of the ClusterGroup policy.
    description: |-
      Full name of the cluster group. This includes the object name along
      with any parents or further identifiers.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.FullName'
        description: Full name for the ClusterGroup policy.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the ClusterGroup policy.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicySpec'
        description: Spec for the ClusterGroup policy.
    description: A Policy to apply on a group of Kubernetes clusters.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.PolicySchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.PolicySchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Policy schema.
    description: Response with a Policy schema.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.PolicyTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.PolicyTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Policy schema template.
    description: Response with a Policy schema template.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.CreatePolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Policy to create.
    description: Request to create a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.CreatePolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Policy created.
    description: Response from creating a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.DeletePolicyResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.GetPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Policy returned.
    description: Response from getting a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.ListPoliciesResponse:
    type: object
    properties:
      policies:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: List of policies.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Policies.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.PatchPolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Patch Policy.
    description: Request to patch a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.PatchPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Policy to patch.
    description: Response from patching a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.SearchScope:
    type: object
    properties:
      clustergroupName:
        type: string
        description: >-
          Scope search to the specified clustergroup_name; supports globbing;
          default (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.clustergroup.policy.UpdatePolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Update Policy.
    description: Request to update (overwrite) a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.UpdatePolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Policy updated.
    description: Response from updating a Policy.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.WatchPoliciesResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.Policy'
        description: Policy event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.clustergroup.policy.WatchPoliciesResponse.EventType
        description: Type of event.
    description: Streamed response from watching Policies.
  vmware.tanzu.mc.v1alpha.clustergroup.policy.WatchPoliciesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicySchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicySchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: EffectiveIAMPolicy schema.
    description: Response with an EffectiveIAMPolicy schema.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicyTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicyTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: EffectiveIAMPolicy schema template.
    description: Response with an EffectiveIAMPolicy schema template.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicy:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.FullName'
        description: Full name for the effective iam policy.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the effective iam policy.
      spec:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicySpec
        description: Spec for the effective iam policy.
      status:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicyStatus
        description: Status of the effective iam policy.
    description: Effective iam policy applied on a resource.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicySpec:
    type: object
    properties:
      targetResource:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectReference'
        description: >-
          The reference to the target object on which the policy is effectively
          applied.
      sourcePolicy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectReference'
        description: >-
          The reference to the source iam policy object.

          This is same as the source resource on which the iam policy was
          created.
      policySpec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: The original iam policy spec.
      inherited:
        type: boolean
        format: boolean
        description: >-
          Boolean flag that specifies whether the policy was inherited from a
          parent.
    description: The effective iam policy spec.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicyStatus:
    type: object
    properties:
      state:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicyStatus.State
        description: The overall state of the iam policy application on the target object.
      conditions:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.status.Condition'
        description: >-
          The conditions attached to this effective iam policy.


          Below are the conditions that will be set on this resource:

          - "Processing": Set to true when we start applying the iam policy.

          - "Scheduled": Set to true when we have created the intent to apply
          the iam policy.

          - "Ready": Set to true when the iam policy is successfully applied.
    description: Status of the effective iam policy.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicyStatus.State:
    type: string
    enum:
      - UNKNOWN
      - APPLYING
      - APPLIED
      - ERROR
      - DELAYED
    default: UNKNOWN
    description: |-
      The overall state of a iam policy.

       - UNKNOWN: Unknown is the default state set when an effective iam policy is first created/updated.
       - APPLYING: Applying state is set when we are working on applying the policy.
       - APPLIED: Applied state is set when we have successfully appplied the policy.
       - ERROR: Error state is set when there was a failure while applying the policy.
       - DELAYED: Delayed state is set when we are unable to apply the policy for a long time.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.EnumerateEffectiveIAMPoliciesResponse:
    type: object
    properties:
      effectiveiampolicy:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicy
        description: EffectiveIAMPolicy object.
    description: Streamed response from enumerating EffectiveIAMPolicies.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.FullName:
    type: object
    properties:
      name:
        type: string
        description: >-
          Unique identifier for the effective iam policy.


          This will be concatenation of target UID and source UID.

          Example: <target_uid>_<source_uid>

          Example:
          cg:01DY64VR4XN83XGCJSC6JVHYS2_bc27608b-4809-4cac-9e04-778803963da2
    description: Full name of the effective iam policy.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.ListEffectiveIAMPoliciesResponse:
    type: object
    properties:
      effectiveiampolicies:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicy
        description: List of effectiveiampolicies.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing EffectiveIAMPolicies.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.SearchScope:
    type: object
    properties:
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
      targetResourceRid:
        type: string
        description: >-
          Scope search to the specified target_resource_rid; supports globbing;
          default (*).
      state:
        type: string
        description: Scope search to the specified state; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.WatchEffectiveIAMPoliciesResponse:
    type: object
    properties:
      effectiveiampolicy:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.EffectiveIAMPolicy
        description: EffectiveIAMPolicy event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.effectiveiampolicy.WatchEffectiveIAMPoliciesResponse.EventType
        description: Type of event.
    description: Streamed response from watching EffectiveIAMPolicies.
  vmware.tanzu.mc.v1alpha.effectiveiampolicy.WatchEffectiveIAMPoliciesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.iam.directory.Group:
    type: object
    properties:
      id:
        type: string
        title: 'Unique group ID (e.g., "be9a51ac-e154-4a45-b0b8-edd80a658c0b")'
      name:
        type: string
        title: 'Human readable display name (e.g., "my group")'
      userCount:
        type: integer
        format: int64
        description: Number of users who belong to this group.
    description: Group represents a named group from the upstream identity provider.
  vmware.tanzu.mc.v1alpha.iam.directory.Principal:
    type: object
    properties:
      principalId:
        type: string
        description: Principle ID is the globally unique identifier for this user/group.
      user:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.directory.User'
        description: Identity of a user.
      group:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.directory.Group'
        description: Identity of a group.
    description: Principal is an enumeration of user or group identities.
  vmware.tanzu.mc.v1alpha.iam.directory.SearchRequest:
    type: object
    properties:
      query:
        type: string
        description: >-
          Search query (for some implementation-specific algorithm). For
          example,

          a query of "use" might match the user "user1@example.com" and the
          group

          "Warehouse" which both contain it as a substring.


          This query would typically come from a user entering text into an

          autocompleted UI element.
    description: Request to list users and groups.
  vmware.tanzu.mc.v1alpha.iam.directory.SearchResponse:
    type: object
    properties:
      result:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.directory.Principal'
        description: >-
          Search results, truncated to an arbitrary maxiumum number of entries.
          Use a more

          specific search query to narrow down the results if necessary.


          A best effort is made to rank the results by relevance (most relevant
          results first).
    description: Response containing matching users and/or groups.
  vmware.tanzu.mc.v1alpha.iam.directory.User:
    type: object
    properties:
      id:
        type: string
        title: >-
          Unique user ID (e.g.,
          "vmware.com:a8fa9fb2-dc13-4ecf-86df-d93857173174")
      username:
        type: string
        description: 'Human-readable username (e.g., "user").'
      email:
        type: string
        description: 'User email address (e.g., "user@example.com").'
      domain:
        type: string
        description: 'Identity domain (e.g., "vmware.com").'
      firstName:
        type: string
        description: Human-readable first name/surname (CSP calls this "first name").
      lastName:
        type: string
        description: Human-readable last name/family name (CSP calls this "last name").
    description: User represents a user from the upstream identity provider.
  vmware.tanzu.mc.v1alpha.iam.role.RoleSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.iam.role.RoleSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Role schema.
    description: Response with a Role schema.
  vmware.tanzu.mc.v1alpha.iam.role.RoleTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.iam.role.RoleTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Role schema template.
    description: Response with a Role schema template.
  vmware.tanzu.mc.v1alpha.iam.role.FullName:
    type: object
    properties:
      name:
        type: string
        description: Name of the role.
    description: Full name for role.
  vmware.tanzu.mc.v1alpha.iam.role.GetRoleResponse:
    type: object
    properties:
      role:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.role.Role'
        description: Role returned.
    description: Response from getting a Role.
  vmware.tanzu.mc.v1alpha.iam.role.ListRolesResponse:
    type: object
    properties:
      roles:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.role.Role'
        description: List of roles.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Roles.
  vmware.tanzu.mc.v1alpha.iam.role.Role:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Type meta for resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.role.FullName'
        description: Full name for the role.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the role object.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.role.RoleSpec'
        description: Spec for the role.
      status:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.role.RoleStatus'
        description: Status for the role.
      resourceTypes:
        type: array
        items:
          type: string
        description: Relevant resource types for the role.
    description: Manage permissions on resources.
  vmware.tanzu.mc.v1alpha.iam.role.RoleSpec:
    type: object
    properties:
      permissions:
        type: array
        items:
          type: string
        description: >-
          List of permissions associated with the role eg. resource.get,
          resource.iam.get etc.
    description: Spec for role.
  vmware.tanzu.mc.v1alpha.iam.role.RoleStatus:
    type: object
    description: Status for role.
  vmware.tanzu.mc.v1alpha.iam.role.SearchScope:
    type: object
    properties:
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.iam.role.WatchRolesResponse:
    type: object
    properties:
      role:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.iam.role.Role'
        description: Role event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.iam.role.WatchRolesResponse.EventType
        description: Type of event.
    description: Streamed response from watching Roles.
  vmware.tanzu.mc.v1alpha.iam.role.WatchRolesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipeSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipeSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: PolicyRecipe schema.
    description: Response with a PolicyRecipe schema.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipeTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipeTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: PolicyRecipe schema template.
    description: Response with a PolicyRecipe schema template.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.FullName:
    type: object
    properties:
      policytypeName:
        type: string
        description: Name of the policy type.
      name:
        type: string
        description: Name of the policy recipe; is unique for each policy type.
    description: Name for the PolicyRecipe.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.GetPolicyRecipeResponse:
    type: object
    properties:
      policyrecipe:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipe
        description: PolicyRecipe returned.
    description: Response from getting a PolicyRecipe.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.ListPolicyRecipesResponse:
    type: object
    properties:
      policyrecipes:
        type: array
        items:
          $ref: >-
            #/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipe
        description: List of policyrecipes.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing PolicyRecipes.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipe:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.FullName'
        description: Full name for the policy recipe object.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the policy recipe object.
      spec:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipeSpec
        description: Spec for the policy recipe.
    description: >-
      A PolicyRecipe is an custom template for policy type.


      PolicyRecipe is a convenience decorator. It gives a friendly way to
      produce policy instances (yaml policies) using simple parameters.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipeSpec:
    type: object
    properties:
      inputSchema:
        type: string
        description: >-
          Input schema in JsonSchema format that defines variable inputs used by
          the recipe template.
    description: The PolicyRecipe spec.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.SearchScope:
    type: object
    properties:
      policytypeName:
        type: string
        description: >-
          Scope search to the specified policytype_name; supports globbing;
          default (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.WatchPolicyRecipesResponse:
    type: object
    properties:
      policyrecipe:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.PolicyRecipe
        description: PolicyRecipe event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.policytype.policyrecipe.WatchPolicyRecipesResponse.EventType
        description: Type of event.
    description: Streamed response from watching PolicyRecipes.
  vmware.tanzu.mc.v1alpha.policytype.policyrecipe.WatchPolicyRecipesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.policytype.PolicyTypeSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.policytype.PolicyTypeSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: PolicyType schema.
    description: Response with a PolicyType schema.
  vmware.tanzu.mc.v1alpha.policytype.PolicyTypeTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.policytype.PolicyTypeTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: PolicyType schema template.
    description: Response with a PolicyType schema template.
  vmware.tanzu.mc.v1alpha.policytype.FullName:
    type: object
    properties:
      name:
        type: string
        description: Name of the PolicyType.
    description: Name for the PolicyType.
  vmware.tanzu.mc.v1alpha.policytype.GetPolicyTypeResponse:
    type: object
    properties:
      policytype:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.policytype.PolicyType'
        description: PolicyType returned.
    description: Response from getting a PolicyType.
  vmware.tanzu.mc.v1alpha.policytype.ListPolicyTypesResponse:
    type: object
    properties:
      policytypes:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.policytype.PolicyType'
        description: List of policytypes.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing PolicyTypes.
  vmware.tanzu.mc.v1alpha.policytype.PolicyTraits:
    type: object
    properties:
      cluster:
        type: boolean
        format: boolean
        description: Indicates whether the policy can be set at cluster level.
      workspace:
        type: boolean
        format: boolean
        description: Indicates whether the policy can be set at workspace level.
      additive:
        type: boolean
        format: boolean
        description: Indicates whether the policy is additive or mutually exclusive.
    description: PolicyTraits defines the characteristics of the policy type.
  vmware.tanzu.mc.v1alpha.policytype.PolicyType:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.policytype.FullName'
        description: Full name for the policy type object.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the policy type object.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.policytype.PolicyTypeSpec'
        description: Spec for the policy type.
    description: A PolicyType defines the schema of policy instances.
  vmware.tanzu.mc.v1alpha.policytype.PolicyTypeSpec:
    type: object
    properties:
      traits:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.policytype.PolicyTraits'
        description: Traits containing the characteristics of the policy type.
    description: The PolicyType spec.
  vmware.tanzu.mc.v1alpha.policytype.SearchScope:
    type: object
    properties:
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.policytype.WatchPolicyTypesResponse:
    type: object
    properties:
      policytype:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.policytype.PolicyType'
        description: PolicyType event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.policytype.WatchPolicyTypesResponse.EventType
        description: Type of event.
    description: Streamed response from watching PolicyTypes.
  vmware.tanzu.mc.v1alpha.policytype.WatchPolicyTypesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.organization.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: ID of Organization.
    description: Full name of the organization. This includes the org_id.
  vmware.tanzu.mc.v1alpha.organization.GetOrganizationEffectivePolicySetResponse:
    type: object
    properties:
      policySet:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.EffectivePolicySet'
        description: Organization effective policy set.
    description: GetOrganizationEffectivePolicySet response message.
  vmware.tanzu.mc.v1alpha.organization.GetOrganizationIAMPolicyResponse:
    type: object
    properties:
      policyList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Organization policy.
    description: GetOrganizationIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.organization.PatchOrganizationIAMPolicyRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.FullName'
        description: Organization fullname.
      bindingDeltaList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.BindingDelta'
        description: Policy delta to be applied.
    description: PatchOrganizationIAMPolicy request message.
  vmware.tanzu.mc.v1alpha.organization.PatchOrganizationIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: New Organization policy.
    description: PatchOrganizationIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.organization.TestOrganizationIAMPermissionsRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.FullName'
        description: Organization fullname.
      permissions:
        type: array
        items:
          type: string
        description: List of permissions to be tested.
    description: TestOrganizationIAMPermissions request message.
  vmware.tanzu.mc.v1alpha.organization.TestOrganizationIAMPermissionsResponse:
    type: object
    properties:
      permissions:
        type: array
        items:
          type: string
        description: List of allowed permissions.
      uid:
        type: string
        description: >-
          Unique ID of the resource. Coupled with FullName (RID), provides a
          stable unique

          identifier for the resource.
    description: TestOrganizationIAMPermissions response message.
  vmware.tanzu.mc.v1alpha.organization.UpdateOrganizationIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Organization policy.
    description: UpdateOrganizationIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.organization.policy.ApplyPolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Policy to apply.
    description: Request to apply a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.ApplyPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Policy applied.
    description: Response from applying a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: ID of Organization.
      name:
        type: string
        description: Name of the Organization policy.
    description: |-
      Full name of the organization. This includes the object name along
      with any parents or further identifiers.
  vmware.tanzu.mc.v1alpha.organization.policy.Policy:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.FullName'
        description: Full name for the Organization policy.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the Organization policy.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicySpec'
        description: Spec for the Organization policy.
    description: A Policy to apply on an organization.
  vmware.tanzu.mc.v1alpha.organization.policy.PolicySchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.organization.policy.PolicySchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Policy schema.
    description: Response with a Policy schema.
  vmware.tanzu.mc.v1alpha.organization.policy.PolicyTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.organization.policy.PolicyTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Policy schema template.
    description: Response with a Policy schema template.
  vmware.tanzu.mc.v1alpha.organization.policy.CreatePolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Policy to create.
    description: Request to create a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.CreatePolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Policy created.
    description: Response from creating a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.DeletePolicyResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.GetPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Policy returned.
    description: Response from getting a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.ListPoliciesResponse:
    type: object
    properties:
      policies:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: List of policies.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Policies.
  vmware.tanzu.mc.v1alpha.organization.policy.PatchPolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Patch Policy.
    description: Request to patch a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.PatchPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Policy to patch.
    description: Response from patching a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.SearchScope:
    type: object
    properties:
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.organization.policy.UpdatePolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Update Policy.
    description: Request to update (overwrite) a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.UpdatePolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Policy updated.
    description: Response from updating a Policy.
  vmware.tanzu.mc.v1alpha.organization.policy.WatchPoliciesResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.organization.policy.Policy'
        description: Policy event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.organization.policy.WatchPoliciesResponse.EventType
        description: Type of event.
    description: Streamed response from watching Policies.
  vmware.tanzu.mc.v1alpha.organization.policy.WatchPoliciesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.system.binaries.GetBinariesResponse:
    type: object
    properties:
      latestVersion:
        type: string
        description: The latest version of the CLI.
      versions:
        type: object
        additionalProperties:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.system.binaries.Version'
        description: A map of CLI versions.
    description: Response containing links.
  vmware.tanzu.mc.v1alpha.system.binaries.Version:
    type: object
    properties:
      darwinX86:
        type: string
        description: The URL for the MacOS CLI on X86.
      darwinX64:
        type: string
        description: The URL for the MacOS CLI on X64.
      linuxX86:
        type: string
        description: The URL for the linux CLI on X86.
      linuxX64:
        type: string
        description: The URL for the linux CLI on X64.
      windowsX86:
        type: string
        description: The URL for the windows CLI on X86.
      windowsX64:
        type: string
        description: The URL for the windows CLI on X64.
    description: Links to the CLI binaries for a version.
  vmware.tanzu.mc.v1alpha.workspace.policy.ApplyPolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Policy to apply.
    description: Request to apply a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.ApplyPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Policy applied.
    description: Response from applying a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: ID of Organization.
      workspaceName:
        type: string
        description: Name of the Workspace.
      name:
        type: string
        description: Name of the Workspace policy.
    description: |-
      Full name of the workspace. This includes the object name along
      with any parents or further identifiers.
  vmware.tanzu.mc.v1alpha.workspace.policy.Policy:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.FullName'
        description: Full name for the Workspace policy.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the Workspace policy.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.PolicySpec'
        description: Spec for the Workspace policy.
    description: A Policy to apply on a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.policy.PolicySchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.workspace.policy.PolicySchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Policy schema.
    description: Response with a Policy schema.
  vmware.tanzu.mc.v1alpha.workspace.policy.PolicyTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.workspace.policy.PolicyTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Policy schema template.
    description: Response with a Policy schema template.
  vmware.tanzu.mc.v1alpha.workspace.policy.CreatePolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Policy to create.
    description: Request to create a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.CreatePolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Policy created.
    description: Response from creating a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.DeletePolicyResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.GetPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Policy returned.
    description: Response from getting a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.ListPoliciesResponse:
    type: object
    properties:
      policies:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: List of policies.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Policies.
  vmware.tanzu.mc.v1alpha.workspace.policy.PatchPolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Patch Policy.
    description: Request to patch a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.PatchPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Policy to patch.
    description: Response from patching a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.SearchScope:
    type: object
    properties:
      workspaceName:
        type: string
        description: >-
          Scope search to the specified workspace_name; supports globbing;
          default (*).
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.workspace.policy.UpdatePolicyRequest:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Update Policy.
    description: Request to update (overwrite) a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.UpdatePolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Policy updated.
    description: Response from updating a Policy.
  vmware.tanzu.mc.v1alpha.workspace.policy.WatchPoliciesResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.Policy'
        description: Policy event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.workspace.policy.WatchPoliciesResponse.EventType
        description: Type of event.
    description: Streamed response from watching Policies.
  vmware.tanzu.mc.v1alpha.workspace.policy.WatchPoliciesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
  vmware.tanzu.mc.v1alpha.workspace.ApplyWorkspaceRequest:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Workspace to apply.
    description: Request to apply a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.ApplyWorkspaceResponse:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Workspace applied.
    description: Response from applying a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.FullName:
    type: object
    properties:
      orgId:
        type: string
        description: ID of Organization.
      name:
        type: string
        description: Name of this Workspace.
    description: |-
      Full name of the workspace. This includes the object name along
      with any parents or further identifiers.
  vmware.tanzu.mc.v1alpha.workspace.Workspace:
    type: object
    properties:
      typeMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.TypeMeta'
        description: Metadata describing the type of the resource.
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.FullName'
        description: Full name for the Workspace.
      objectMeta:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.meta.ObjectMeta'
        description: Metadata for the Workspace object.
      spec:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.WorkspaceSpec'
        description: Spec for the Workspace.
    description: A group of managed Kubenetes namespaces.
  vmware.tanzu.mc.v1alpha.workspace.WorkspaceSpec:
    type: object
    description: The Workspace spec.
  vmware.tanzu.mc.v1alpha.workspace.GetWorkspaceEffectivePolicySetResponse:
    type: object
    properties:
      policySet:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.EffectivePolicySet'
        description: Workspace effective policy set.
    description: GetWorkspaceEffectivePolicySet response message.
  vmware.tanzu.mc.v1alpha.workspace.GetWorkspaceIAMPolicyResponse:
    type: object
    properties:
      policyList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Workspace policy.
    description: GetWorkspaceIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.workspace.PatchWorkspaceIAMPolicyRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.FullName'
        description: Workspace full_name.
      bindingDeltaList:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.BindingDelta'
        description: Binding delta to be applied.
    description: PatchWorkspaceIAMPolicy request message.
  vmware.tanzu.mc.v1alpha.workspace.PatchWorkspaceIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: New policy object.
    description: PatchWorkspaceIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.workspace.TestWorkspaceIAMPermissionsRequest:
    type: object
    properties:
      fullName:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.FullName'
        description: Workspace full_name.
      permissions:
        type: array
        items:
          type: string
        description: List of permissions to test.
    description: TestWorkspaceIAMPermissions request message.
  vmware.tanzu.mc.v1alpha.workspace.TestWorkspaceIAMPermissionsResponse:
    type: object
    properties:
      permissions:
        type: array
        items:
          type: string
        description: List of allowed permissions.
      uid:
        type: string
        description: >-
          Unique ID of the resource. Coupled with FullName (RID), provides a
          stable unique

          identifier for the resource.
    description: TestWorkspaceIAMPermissions response message.
  vmware.tanzu.mc.v1alpha.workspace.UpdateWorkspaceIAMPolicyResponse:
    type: object
    properties:
      policy:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.common.policy.IAMPolicy'
        description: Workspace policy set.
    description: UpdateWorkspaceIAMPolicy response message.
  vmware.tanzu.mc.v1alpha.workspace.WorkspaceSchemaRequest.SchemaFormat:
    type: string
    enum:
      - YAML
      - JSON
      - PROTO
    default: YAML
    description: |-
      Schema format options.

       - YAML: Schema in OpenAPI YAML format.
       - JSON: Schema in OpenAPI JSON format.
       - PROTO: Schema in protobuf format.
  vmware.tanzu.mc.v1alpha.workspace.WorkspaceSchemaResponse:
    type: object
    properties:
      schema:
        type: string
        format: byte
        description: Workspace schema.
    description: Response with a Workspace schema.
  vmware.tanzu.mc.v1alpha.workspace.WorkspaceTemplateRequest.TemplateFormat:
    type: string
    enum:
      - YAML
      - JSON
    default: YAML
    description: |-
      Template format options.

       - YAML: Template in YAML format.
       - JSON: Template in JSON format.
  vmware.tanzu.mc.v1alpha.workspace.WorkspaceTemplateResponse:
    type: object
    properties:
      template:
        type: string
        format: byte
        description: Workspace schema template.
    description: Response with a Workspace schema template.
  vmware.tanzu.mc.v1alpha.workspace.CreateWorkspaceRequest:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Workspace to create.
    description: Request to create a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.CreateWorkspaceResponse:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Workspace created.
    description: Response from creating a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.DeleteWorkspaceResponse:
    type: object
    properties:
      message:
        type: string
        description: Message regarding deletion.
    description: Response from deleting a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.GetWorkspaceResponse:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Workspace returned.
    description: Response from getting a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.ListWorkspacesResponse:
    type: object
    properties:
      workspaces:
        type: array
        items:
          $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: List of workspaces.
      nextPageToken:
        type: string
        description: Token to retrieve next page of records.
      totalCount:
        type: string
        format: uint64
        description: Total count.
    description: Response from listing Workspaces.
  vmware.tanzu.mc.v1alpha.workspace.PatchWorkspaceRequest:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Patch Workspace.
    description: Request to patch a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.PatchWorkspaceResponse:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Workspace to patch.
    description: Response from patching a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.SearchScope:
    type: object
    properties:
      name:
        type: string
        description: Scope search to the specified name; supports globbing; default (*).
    description: 'Scope to search by, any fields left empty will be considered all (*).'
  vmware.tanzu.mc.v1alpha.workspace.UpdateWorkspaceRequest:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Update Workspace.
    description: Request to update (overwrite) a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.UpdateWorkspaceResponse:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Workspace updated.
    description: Response from updating a Workspace.
  vmware.tanzu.mc.v1alpha.workspace.WatchWorkspacesResponse:
    type: object
    properties:
      workspace:
        $ref: '#/definitions/vmware.tanzu.mc.v1alpha.workspace.Workspace'
        description: Workspace event.
      type:
        $ref: >-
          #/definitions/vmware.tanzu.mc.v1alpha.workspace.WatchWorkspacesResponse.EventType
        description: Type of event.
    description: Streamed response from watching Workspaces.
  vmware.tanzu.mc.v1alpha.workspace.WatchWorkspacesResponse.EventType:
    type: string
    enum:
      - CREATE
      - UPDATE
      - DELETE
    default: CREATE
    description: |-
      Possible types of events.

       - CREATE: Create event sent.
       - UPDATE: Update event sent.
       - DELETE: Delete event sent.
