apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    build.aep.asag.io/source: svc-api
    build.aep.asag.io/version: 0.0.0-345f60d4
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: states.service.aep.asag.io
spec:
  group: service.aep.asag.io
  names:
    kind: State
    listKind: StateList
    plural: states
    shortNames:
      - st
      - state
      - aepst
      - aepstate
    singular: state
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .status.phase
          name: Status
          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: State collection for provision resources
          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
            state:
              description: Instance state of this resource
              properties:
                actual:
                  description: Effective name of the resource provision
                  type: string
                annotations:
                  additionalProperties:
                    type: string
                  description: Annotations for this resource
                  type: object
                clusters:
                  description: Data of clusters for this instance
                  items:
                    description: Cluster specific state properties
                    properties:
                      actual:
                        description: Effective name of the resource provision
                        type: string
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for this resource
                        type: object
                      containers:
                        description: Notable container properties applied to all nodes
                        items:
                          description: Notable subset of PodSpec's container properties
                          properties:
                            image:
                              description: Image name
                              type: string
                            name:
                              description: Name of the container
                              type: string
                            ports:
                              description: List of ports to expose from the container
                              items:
                                description: ContainerPort represents a network port in a single container.
                                properties:
                                  containerPort:
                                    description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.
                                    format: int32
                                    type: integer
                                  hostIP:
                                    description: What host IP to bind the external port to.
                                    type: string
                                  hostPort:
                                    description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.
                                    format: int32
                                    type: integer
                                  name:
                                    description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.
                                    type: string
                                  protocol:
                                    default: TCP
                                    description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP".
                                    type: string
                                required:
                                  - containerPort
                                type: object
                              type: array
                            volumeDevices:
                              description: List of block devices to be used by the container
                              items:
                                description: volumeDevice describes a mapping of a raw block device within a container.
                                properties:
                                  devicePath:
                                    description: devicePath is the path inside of the container that the device will be mapped to.
                                    type: string
                                  name:
                                    description: name must match the name of a persistentVolumeClaim in the pod
                                    type: string
                                required:
                                  - devicePath
                                  - name
                                type: object
                              type: array
                            volumeMounts:
                              description: Pod volumes to mount into the container's filesystem
                              items:
                                description: VolumeMount describes a mounting of a Volume within a container.
                                properties:
                                  mountPath:
                                    description: Path within the container at which the volume should be mounted.  Must not contain ':'.
                                    type: string
                                  mountPropagation:
                                    description: mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.
                                    type: string
                                  name:
                                    description: This must match the Name of a Volume.
                                    type: string
                                  readOnly:
                                    description: Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.
                                    type: boolean
                                  subPath:
                                    description: Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root).
                                    type: string
                                  subPathExpr:
                                    description: Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually exclusive.
                                    type: string
                                required:
                                  - mountPath
                                  - name
                                type: object
                              type: array
                          type: object
                        type: array
                      endpoints:
                        description: Data of endpoints for this instance
                        items:
                          description: Endpoint specific state properties
                          properties:
                            actual:
                              description: Effective name of the resource provision
                              type: string
                            addresses:
                              description: List of endpoint addresses
                              items:
                                description: EndpointAddress contain the addresses to a network node
                                properties:
                                  fqdn:
                                    description: The FQDN of this endpoint address
                                    type: string
                                  ip:
                                    description: The primary IP (the first returned address from the underlying resource, which can depend on the configuration order). Holds only one address if both v4 and v6 are configured.
                                    type: string
                                type: object
                              type: array
                            annotations:
                              additionalProperties:
                                type: string
                              description: Annotations for this resource
                              type: object
                            backends:
                              description: List of ready backend addresses. Only available if network type is loadbalanced.
                              items:
                                description: EndpointBackend info and address
                                properties:
                                  fqdn:
                                    description: The FQDN of this endpoint address
                                    type: string
                                  ip:
                                    description: The primary IP (the first returned address from the underlying resource, which can depend on the configuration order). Holds only one address if both v4 and v6 are configured.
                                    type: string
                                  minion:
                                    description: Minion name this node runs on
                                    type: string
                                  node:
                                    description: Name of the node
                                    type: string
                                type: object
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels for this resource
                              type: object
                            network:
                              description: 'How the nodes of this endpoint are consolidated: - loadbalanced: the nodes are exposed through a cluster address so incoming traffic is loadbalanced using the kubernetes networking - direct: each node address is exposed itself so incoming traffic is addressed directly to the node'
                              enum:
                                - loadbalanced
                                - direct
                              type: string
                            phase:
                              description: Phase to describe the overall current status
                              enum:
                                - error
                                - waiting
                                - ok
                                - ready
                              type: string
                            ports:
                              description: Proto and ports of this endpoint
                              items:
                                description: ServicePort contains information on service's port.
                                properties:
                                  appProtocol:
                                    description: The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.
                                    type: string
                                  name:
                                    description: The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.
                                    type: string
                                  nodePort:
                                    description: 'The port on each node on which this service is exposed when type is NodePort or LoadBalancer.  Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail.  If not specified, a port will be allocated if this Service requires one.  If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport'
                                    format: int32
                                    type: integer
                                  port:
                                    description: The port that will be exposed by this service.
                                    format: int32
                                    type: integer
                                  protocol:
                                    default: TCP
                                    description: The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". Default is TCP.
                                    type: string
                                  targetPort:
                                    anyOf:
                                      - type: integer
                                      - type: string
                                    description: 'Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod''s container ports. If this is not specified, the value of the ''port'' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service'
                                    x-kubernetes-int-or-string: true
                                required:
                                  - port
                                type: object
                              type: array
                            reason:
                              description: A brief human-readable message indicating details about why this resource is in this state.
                              type: string
                          type: object
                        type: array
                      labels:
                        additionalProperties:
                          type: string
                        description: Labels for this resource
                        type: object
                      nodes:
                        description: Data of nodes for this instance
                        items:
                          description: Node specific state properties
                          properties:
                            actual:
                              description: Effective name of the resource provision
                              type: string
                            annotations:
                              additionalProperties:
                                type: string
                              description: Annotations for this resource
                              type: object
                            fqdn:
                              description: The FQDN of this endpoint address
                              type: string
                            ip:
                              description: The primary IP (the first returned address from the underlying resource, which can depend on the configuration order). Holds only one address if both v4 and v6 are configured.
                              type: string
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels for this resource
                              type: object
                            minion:
                              description: Which minion the node is running on
                              type: string
                            phase:
                              description: Phase to describe the overall current status
                              enum:
                                - error
                                - waiting
                                - ok
                                - ready
                              type: string
                            podPhase:
                              description: The pod phase as status
                              type: string
                            ready:
                              description: Whether the pod is ready for incoming traffic. The readiness probe, if defined in the pod, has succeeded.
                              type: boolean
                            reason:
                              description: A brief human-readable message indicating details about why this resource is in this state.
                              type: string
                          type: object
                        type: array
                      phase:
                        description: Phase to describe the overall current status
                        enum:
                          - error
                          - waiting
                          - ok
                          - ready
                        type: string
                      reason:
                        description: A brief human-readable message indicating details about why this resource is in this state.
                        type: string
                    type: object
                  type: array
                labels:
                  additionalProperties:
                    type: string
                  description: Labels for this resource
                  type: object
                name:
                  description: Name of the referenced definition within the vendor
                  type: string
                phase:
                  description: Phase to describe the overall current status
                  enum:
                    - error
                    - waiting
                    - ok
                    - ready
                  type: string
                reason:
                  description: A brief human-readable message indicating details about why this resource is in this state.
                  type: string
                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:
                phase:
                  description: Phase to describe the overall current status
                  enum:
                    - error
                    - waiting
                    - ok
                    - ready
                  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
            - state
          type: object
      served: true
      storage: true
      subresources:
        status: {}
