apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: floatingippools.flipop.digitalocean.com
spec:
  group: flipop.digitalocean.com
  versions:
    - name: v1alpha1
      served: true
      storage: true
      subresources:
        status: {}
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              required:
              - provider
              properties:
                ips:
                  type: array
                  items:
                    type: string
                    oneOf:
                    - pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
                    - pattern: ^s*((([0-9A-Fa-f]{1,4}:){7}(:|([0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){6}:([0-9A-Fa-f]{1,4})?)|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){0,1}):([0-9A-Fa-f]{1,4})?))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){0,2}):([0-9A-Fa-f]{1,4})?))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){0,3}):([0-9A-Fa-f]{1,4})?))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){0,4}):([0-9A-Fa-f]{1,4})?))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){0,5}):([0-9A-Fa-f]{1,4})?))|(:(:|((:[0-9A-Fa-f]{1,4}){1,7}))))(%.+)?s*$
                desiredIPs:
                  type: integer
                  minimum: 0
                provider:
                  type: string
                region:
                  type: string
                match:
                  type: object
                  properties:
                    nodeLabel:
                      type: string
                    podLabel:
                      type: string
                    podNamespace:
                      type: string
                    tolerations:
                      type: array
                      items:
                        type: object
                        properties:
                          effect:
                            type: string
                          key: 
                            type: string
                          operator:
                            type: string
                          value: 
                            type: string
                dnsRecordSet:
                  type: object
                  properties:
                    provider:
                      type: string
                    zone:
                      type: string
                    recordName:
                      type: string
                    ttl:
                      type: integer
                assignmentCoolOffSeconds:
                  type: number
                  minimum: 0
            status:
              type: object
              properties:
                error:
                  type: string
                ips:
                  type: object
                  additionalProperties:
                    type: object
                    properties:
                      nodeName:
                        type: string
                      providerID:
                        type: string
                      error:
                        type: string
                      state:
                        type: string
                nodeErrors:
                  type: array
                  items:
                    type: string
                assignableNodes:
                  type: array
                  items:
                    type: string
  scope: Namespaced
  names:
    kind: FloatingIPPool
    listKind: FloatingIPPoolList
    plural: floatingippools
    singular: floatingippool
    shortNames: []