apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: serviceclasses.servicecatalog.k8s.io
  labels:
    svcat: "true"
  annotations:
    "api-approved.kubernetes.io": "unapproved"
spec:
  group: servicecatalog.k8s.io
  scope: Namespaced
  names:
    plural: serviceclasses
    singular: serviceclass
    kind: ServiceClass
    # categories is a list of grouped resources the custom resource belongs to.
    categories:
    - all
    - svcat
  versions:
  - name: v1beta1
    additionalPrinterColumns:
    - name: External-Name
      type: string
      jsonPath: .spec.externalName
    - name: Broker
      type: string
      jsonPath: .spec.serviceBrokerName
    - name: Age
      type: date
      jsonPath: .metadata.creationTimestamp
    schema:
      openAPIV3Schema:
        description: ServiceClass represents a namespaced offering in the service catalog.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec defines the behavior of the service class.
            properties:
              bindable:
                description: Bindable indicates whether a user can create bindings to an ServiceInstance provisioned from this service. ServicePlan has an optional field called Bindable which overrides the value of this field.
                type: boolean
              bindingRetrievable:
                description: "Currently, this field is ALPHA: it may change or disappear at any time and its data will not be migrated. \n BindingRetrievable indicates whether fetching a binding via a GET on its endpoint is supported for all plans."
                type: boolean
              defaultProvisionParameters:
                description: DefaultProvisionParameters are default parameters passed to the broker when an instance of this class is provisioned. Any parameters defined on the plan and instance are merged with these defaults, with plan and then instance-defined parameters taking precedence over the class defaults.
                type: object
              description:
                description: Description is a short description of this ServiceClass.
                type: string
              externalID:
                description: "ExternalID is the identity of this object for use with the OSB API. \n Immutable."
                type: string
              externalMetadata:
                description: ExternalMetadata is a blob of information about the ServiceClass, meant to be user-facing content and display instructions. This field may contain platform-specific conventional values.
                type: object
              externalName:
                description: ExternalName is the name of this object that the Service Broker exposed this Service Class as. Mutable.
                type: string
              planUpdatable:
                description: PlanUpdatable indicates whether instances provisioned from this ServiceClass may change ServicePlans after being provisioned.
                type: boolean
              requires:
                description: "Currently, this field is ALPHA: it may change or disappear at any time and its data will not be migrated. \n Requires exposes a list of Cloud Foundry-specific 'permissions' that must be granted to an instance of this service within Cloud Foundry.  These 'permissions' have no meaning within Kubernetes and an ServiceInstance provisioned from this ServiceClass will not work correctly."
                items:
                  type: string
                type: array
              serviceBrokerName:
                description: "ServiceBrokerName is the reference to the Broker that provides this ServiceClass. \n Immutable."
                type: string
              tags:
                description: "Currently, this field is ALPHA: it may change or disappear at any time and its data will not be migrated. \n Tags is a list of strings that represent different classification attributes of the ServiceClass.  These are used in Cloud Foundry in a way similar to Kubernetes labels, but they currently have no special meaning in Kubernetes."
                items:
                  type: string
                type: array
            required:
            - bindable
            - bindingRetrievable
            - description
            - externalID
            - externalName
            - planUpdatable
            - serviceBrokerName
            type: object
          status:
            description: Status represents the current status of a service class.
            properties:
              removedFromBrokerCatalog:
                description: RemovedFromBrokerCatalog indicates that the broker removed the service from its catalog.
                type: boolean
            required:
            - removedFromBrokerCatalog
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
