apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  creationTimestamp: "2026-04-04T02:17:01Z"
  generation: 1
  name: reservations.network.openstack.org
  resourceVersion: "38691"
  uid: cee8054f-b1ab-4a79-ae64-5f3e1d2a9065
spec:
  conversion:
    strategy: None
  group: network.openstack.org
  names:
    kind: Reservation
    listKind: ReservationList
    plural: reservations
    singular: reservation
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Reservation
      jsonPath: .spec.reservation
      name: Reservation
      type: string
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: Reservation is the Schema for the reservations API
        properties:
          apiVersion:
            description: |-
              APIVersion defines the versioned schema of this representation of an object.
              Servers should convert recognized schemas to the latest internal value, and
              may reject unrecognized values.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
            type: string
          kind:
            description: |-
              Kind is a string value representing the REST resource this object represents.
              Servers may infer this from the endpoint the client submits requests to.
              Cannot be updated.
              In CamelCase.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
            type: string
          metadata:
            type: object
          spec:
            description: ReservationSpec defines the desired state of Reservation
            properties:
              ipSetRef:
                description: IPSetRef points to the IPSet object the IPs were created
                  for.
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  fieldPath:
                    description: |-
                      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.
                    type: string
                  kind:
                    description: |-
                      Kind of the referent.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                    type: string
                  name:
                    description: |-
                      Name of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    type: string
                  namespace:
                    description: |-
                      Namespace of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                    type: string
                  resourceVersion:
                    description: |-
                      Specific resourceVersion to which this reference is made, if any.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
                    type: string
                  uid:
                    description: |-
                      UID of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              reservation:
                additionalProperties:
                  description: IPAddress -
                  properties:
                    address:
                      description: Address contains the IP address
                      type: string
                    network:
                      description: Network name
                      pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-_]*[a-zA-Z0-9]$
                      type: string
                    subnet:
                      description: Subnet name
                      pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-_]*[a-zA-Z0-9]$
                      type: string
                  required:
                  - address
                  - network
                  - subnet
                  type: object
                description: Reservation, map (index network name) with reservation
                type: object
            required:
            - ipSetRef
            - reservation
            type: object
          status:
            description: ReservationStatus defines the observed state of Reservation
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: Reservation
    listKind: ReservationList
    plural: reservations
    singular: reservation
  conditions:
  - lastTransitionTime: "2026-04-04T02:17:01Z"
    message: no conflicts found
    reason: NoConflicts
    status: "True"
    type: NamesAccepted
  - lastTransitionTime: "2026-04-04T02:17:01Z"
    message: the initial names have been accepted
    reason: InitialNamesAccepted
    status: "True"
    type: Established
  storedVersions:
  - v1beta1
