apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    build.aep.asag.io/source: svc-api
    build.aep.asag.io/version: 1.0.23
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: provisions.service.aep.asag.io
spec:
  group: service.aep.asag.io
  names:
    categories:
      - aep
    kind: Provision
    listKind: ProvisionList
    plural: provisions
    shortNames:
      - pr
      - prv
      - aepp
      - aepprv
      - aepprovision
      - aepprovisions
    singular: provision
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.vendor
          name: Vendor
          type: string
        - jsonPath: .spec.name
          name: Service
          type: string
        - jsonPath: .spec.version
          name: Version
          type: string
        - jsonPath: .status.phase
          name: Status
          type: string
        - jsonPath: .status.progress
          name: Progress
          priority: 2
          type: string
        - jsonPath: .metadata.ownerReferences[?(@.controller==true)].kind
          name: OwnerKind
          priority: 2
          type: string
        - jsonPath: .metadata.ownerReferences[?(@.controller==true)].name
          name: OwnerName
          priority: 2
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
        - jsonPath: .status.reason
          name: Reason
          priority: 2
          type: string
      name: v1
      schema:
        openAPIV3Schema:
          description: The service definition in a specific version
          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 of this resource
              properties:
                actual:
                  description: The effective resource name. Usually not set on new provisioning so this fields uniqueness can be guaranteed. If not set, a random name based on the definitions name inheritance is assigned
                  type: string
                annotations:
                  additionalProperties:
                    type: string
                  description: Annotations for this resource
                  type: object
                clusters:
                  description: Effective provisioning spec to track the cluster resources. On a fresh Provision creation this can be used to define the initial amount of clusters by creating the wished amount of empty clusters. If not set, one of each cluster defined in the definition is created. To add a cluster add an empty cluster and to remove a cluster remove an existing cluster.
                  items:
                    properties:
                      actual:
                        description: The effective resource name. Usually not set on new provisioning so this fields uniqueness can be guaranteed. If not set, a random name based on the definitions name inheritance is assigned
                        type: string
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for this resource
                        type: object
                      endpoints:
                        description: Effective provisioning spec to track the provided endpoints of this cluster.
                        items:
                          properties:
                            actual:
                              description: The effective resource name. Usually not set on new provisioning so this fields uniqueness can be guaranteed. If not set, a random name based on the definitions name inheritance is assigned
                              type: string
                            annotations:
                              additionalProperties:
                                type: string
                              description: Annotations for this resource
                              type: object
                            dnsName:
                              description: Define the hostname if the endpoint has a different actual name due to migrations. If empty, actual is used.
                              type: string
                            extensions:
                              additionalProperties:
                                description: Extend additional data which is not handled by AEP except the merging default behaviour
                                properties:
                                  options:
                                    additionalProperties:
                                      type: string
                                    description: Options and/or configuration hints for this extension
                                    type: object
                                  values:
                                    description: Values for this extension
                                    items:
                                      description: Simple key value property
                                      properties:
                                        key:
                                          description: The key
                                          minLength: 1
                                          type: string
                                        value:
                                          description: The value in any type
                                          x-kubernetes-preserve-unknown-fields: true
                                      required:
                                        - key
                                        - value
                                      type: object
                                    type: array
                                type: object
                              description: Extensions for this resource
                              type: object
                            flags:
                              description: Flags for this resource
                              items:
                                description: Simple key value property
                                properties:
                                  key:
                                    description: The key
                                    minLength: 1
                                    type: string
                                  value:
                                    description: The value in any type
                                    x-kubernetes-preserve-unknown-fields: true
                                required:
                                  - key
                                  - value
                                type: object
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels for this resource
                              type: object
                            name:
                              description: Which endpoint definition this entry belongs to
                              type: string
                            settings:
                              description: Settings for this resource which fullfills the jsonschema of the definitions settings
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                          type: object
                        type: array
                      extensions:
                        additionalProperties:
                          description: Extend additional data which is not handled by AEP except the merging default behaviour
                          properties:
                            options:
                              additionalProperties:
                                type: string
                              description: Options and/or configuration hints for this extension
                              type: object
                            values:
                              description: Values for this extension
                              items:
                                description: Simple key value property
                                properties:
                                  key:
                                    description: The key
                                    minLength: 1
                                    type: string
                                  value:
                                    description: The value in any type
                                    x-kubernetes-preserve-unknown-fields: true
                                required:
                                  - key
                                  - value
                                type: object
                              type: array
                          type: object
                        description: Extensions for this resource
                        type: object
                      flags:
                        description: Flags for this resource
                        items:
                          description: Simple key value property
                          properties:
                            key:
                              description: The key
                              minLength: 1
                              type: string
                            value:
                              description: The value in any type
                              x-kubernetes-preserve-unknown-fields: true
                          required:
                            - key
                            - value
                          type: object
                        type: array
                      labels:
                        additionalProperties:
                          type: string
                        description: Labels for this resource
                        type: object
                      limits:
                        description: Limits for the node
                        properties:
                          cpu:
                            anyOf:
                              - type: integer
                              - type: string
                            description: CPU count limit
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          ram:
                            anyOf:
                              - type: integer
                              - type: string
                            description: RAM size limit
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          rootfs:
                            anyOf:
                              - type: integer
                              - type: string
                            description: RootFS size limit
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                        type: object
                      name:
                        description: Which cluster definition this entry belongs to
                        type: string
                      nodes:
                        description: Effective provisioning spec to track the node resources of this cluster. On a fresh Provision creation this can be used to define the initial size by creating the wished amount of empty nodes. If not set, the default size of the cluster in the definition is used. To resize the cluster add empty nodes or remove existing nodes. The min, max and the increment for the sizing must always be honored
                        items:
                          properties:
                            actual:
                              description: The effective resource name. Usually not set on new provisioning so this fields uniqueness can be guaranteed. If not set, a random name based on the definitions name inheritance is assigned
                              type: string
                            annotations:
                              additionalProperties:
                                type: string
                              description: Annotations for this resource
                              type: object
                            dnsName:
                              description: Define the hostname if the node has a different actual name due to migrations. If empty, actual is used.
                              type: string
                            extensions:
                              additionalProperties:
                                description: Extend additional data which is not handled by AEP except the merging default behaviour
                                properties:
                                  options:
                                    additionalProperties:
                                      type: string
                                    description: Options and/or configuration hints for this extension
                                    type: object
                                  values:
                                    description: Values for this extension
                                    items:
                                      description: Simple key value property
                                      properties:
                                        key:
                                          description: The key
                                          minLength: 1
                                          type: string
                                        value:
                                          description: The value in any type
                                          x-kubernetes-preserve-unknown-fields: true
                                      required:
                                        - key
                                        - value
                                      type: object
                                    type: array
                                type: object
                              description: Extensions for this resource
                              type: object
                            flags:
                              description: Flags for this resource
                              items:
                                description: Simple key value property
                                properties:
                                  key:
                                    description: The key
                                    minLength: 1
                                    type: string
                                  value:
                                    description: The value in any type
                                    x-kubernetes-preserve-unknown-fields: true
                                required:
                                  - key
                                  - value
                                type: object
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels for this resource
                              type: object
                            limits:
                              description: Limits for the node
                              properties:
                                cpu:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  description: CPU count limit
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                ram:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  description: RAM size limit
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                rootfs:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  description: RootFS size limit
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              type: object
                            minion:
                              description: Force the node to be scheduled on a specific kubernetes minion. Setting this field ignores any automatic scheduling and the node will fail if there is no such minion.
                              type: string
                            settings:
                              description: Settings for this resource which fullfills the jsonschema of the definitions settings
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                          type: object
                        type: array
                      settings:
                        description: Settings for this resource which fullfills the jsonschema of the definitions settings
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      target:
                        description: Which target kubernetes this cluster is assigned to. If not set, the same as this Provision.
                        type: string
                    type: object
                  type: array
                dependencies:
                  additionalProperties:
                    properties:
                      dependencies:
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      settings:
                        description: Settings for this resource which fullfills the jsonschema of the definitions settings
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                    type: object
                  description: Effective provisioning spec for dependencies. Only used for initial deployment. Updating the provision spec of the dependency can only be done in the resulting dependency provision.
                  type: object
                extensions:
                  additionalProperties:
                    description: Extend additional data which is not handled by AEP except the merging default behaviour
                    properties:
                      options:
                        additionalProperties:
                          type: string
                        description: Options and/or configuration hints for this extension
                        type: object
                      values:
                        description: Values for this extension
                        items:
                          description: Simple key value property
                          properties:
                            key:
                              description: The key
                              minLength: 1
                              type: string
                            value:
                              description: The value in any type
                              x-kubernetes-preserve-unknown-fields: true
                          required:
                            - key
                            - value
                          type: object
                        type: array
                    type: object
                  description: Extensions for this resource
                  type: object
                flags:
                  description: Flags for this resource
                  items:
                    description: Simple key value property
                    properties:
                      key:
                        description: The key
                        minLength: 1
                        type: string
                      value:
                        description: The value in any type
                        x-kubernetes-preserve-unknown-fields: true
                    required:
                      - key
                      - value
                    type: object
                  type: array
                labels:
                  additionalProperties:
                    type: string
                  description: Labels for this resource
                  type: object
                limits:
                  description: Limits for the node
                  properties:
                    cpu:
                      anyOf:
                        - type: integer
                        - type: string
                      description: CPU count limit
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    ram:
                      anyOf:
                        - type: integer
                        - type: string
                      description: RAM size limit
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    rootfs:
                      anyOf:
                        - type: integer
                        - type: string
                      description: RootFS size limit
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                  type: object
                name:
                  description: Name of the referenced definition within the vendor
                  type: string
                settings:
                  description: Settings for this resource which fullfills the jsonschema of the definitions settings
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                vendor:
                  description: Vendor of the referenced definition. If ommited same vendor as this definition
                  type: string
                version:
                  description: Version of the referenced definition. If omitted latest found version
                  type: string
              type: object
            status:
              description: Status of this resource
              properties:
                initComplete:
                  description: Initialisation complete
                  type: boolean
                phase:
                  description: Phase to describe the overall current status
                  enum:
                    - error
                    - waiting
                    - ok
                    - ready
                  type: string
                progress:
                  description: A simple progress indicator of the current transition. If not empty a transition is ongoing and the value contains an integer from 0 up to 100 with percent sign. Empty means there is no transition or the transition is finished (whether successful or not) and thus the expected result should be checked with the `phase` field.
                  type: string
                reason:
                  description: A brief human-readable message indicating details about why this resource is in this state.
                  type: string
              type: object
          required:
            - metadata
            - spec
          type: object
      served: true
      storage: true
      subresources:
        status: {}
