apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: serviceplans.servicecatalog.k8s.io
  labels:
    svcat: "true"
  annotations:
    "api-approved.kubernetes.io": "unapproved"
spec:
  group: servicecatalog.k8s.io
  scope: Namespaced
  names:
    plural: serviceplans
    singular: serviceplan
    kind: ServicePlan
    # 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: Class
      type: string
      jsonPath: .spec.serviceClassRef.name
    - name: Age
      type: date
      jsonPath: .metadata.creationTimestamp
    schema:
      openAPIV3Schema:
        description: ServicePlan represents a tier of a ServiceClass.
        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 plan.
            properties:
              bindable:
                description: Bindable indicates whether a user can create bindings to an ServiceInstance using this ServicePlan.  If set, overrides the value of the corresponding ServiceClassSpec Bindable field.
                type: boolean
              defaultProvisionParameters:
                description: DefaultProvisionParameters are default parameters passed to the broker when an instance of this plan is provisioned. Any parameters defined on the instance are merged with these defaults, with instance-defined parameters taking precedence over defaults.
                type: object
              description:
                description: Description is a short description of this ServicePlan.
                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 plan, 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 Plan as. Mutable.
                type: string
              free:
                description: Free indicates whether this plan is available at no cost.
                type: boolean
              instanceCreateParameterSchema:
                description: "Currently, this field is ALPHA: it may change or disappear at any time and its data will not be migrated. \n InstanceCreateParameterSchema is the schema for the parameters that may be supplied when provisioning a new ServiceInstance on this plan."
                type: object
              instanceUpdateParameterSchema:
                description: "Currently, this field is ALPHA: it may change or disappear at any time and its data will not be migrated. \n InstanceUpdateParameterSchema is the schema for the parameters that may be updated once an ServiceInstance has been provisioned on this plan. This field only has meaning if the corresponding ServiceClassSpec is PlanUpdatable."
                type: object
              serviceBindingCreateParameterSchema:
                description: "Currently, this field is ALPHA: it may change or disappear at any time and its data will not be migrated. \n ServiceBindingCreateParameterSchema is the schema for the parameters that may be supplied binding to a ServiceInstance on this plan."
                type: object
              serviceBrokerName:
                description: ServiceBrokerName is the name of the ServiceBroker that offers this ServicePlan.
                type: string
              serviceClassRef:
                description: ServiceClassRef is a reference to the service class that owns this plan.
                properties:
                  name:
                    description: Name of the referent.
                    type: string
                type: object
            required:
            - description
            - externalID
            - externalName
            - free
            - serviceBrokerName
            - serviceClassRef
            type: object
          status:
            description: Status represents the current status of the service plan.
            properties:
              removedFromBrokerCatalog:
                description: RemovedFromBrokerCatalog indicates that the broker removed the plan from its catalog.
                type: boolean
            required:
            - removedFromBrokerCatalog
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
