---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.3
  name: meshmultizoneservices.kuma.io
spec:
  group: kuma.io
  names:
    categories:
    - kuma
    kind: MeshMultiZoneService
    listKind: MeshMultiZoneServiceList
    plural: meshmultizoneservices
    singular: meshmultizoneservice
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.addresses[0].hostname
      name: Hostname
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        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 is the specification of the Kuma MeshMultiZoneService
              resource.
            properties:
              ports:
                description: Ports is a list of ports from selected MeshServices
                items:
                  properties:
                    appProtocol:
                      default: tcp
                      description: Protocol identifies a protocol supported by a service.
                      type: string
                    name:
                      type: string
                    port:
                      format: int32
                      type: integer
                  required:
                  - port
                  type: object
                minItems: 1
                type: array
              selector:
                description: Selector is a way to select multiple MeshServices
                properties:
                  meshService:
                    description: MeshService selects MeshServices
                    properties:
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels matches multiple MeshServices by
                          labels
                        type: object
                    required:
                    - matchLabels
                    type: object
                required:
                - meshService
                type: object
            required:
            - selector
            type: object
          status:
            description: Status is the current status of the Kuma MeshMultiZoneService
              resource.
            properties:
              addresses:
                description: Addresses is a list of addresses generated by HostnameGenerator
                items:
                  properties:
                    hostname:
                      type: string
                    hostnameGeneratorRef:
                      properties:
                        coreName:
                          type: string
                      required:
                      - coreName
                      type: object
                    origin:
                      type: string
                  type: object
                type: array
              hostnameGenerators:
                description: Status of hostnames generator applied on this resource
                items:
                  properties:
                    conditions:
                      description: Conditions is an array of hostname generator conditions.
                      items:
                        properties:
                          message:
                            description: |-
                              message is a human readable message indicating details about the transition.
                              This may be an empty string.
                            maxLength: 32768
                            type: string
                          reason:
                            description: |-
                              reason contains a programmatic identifier indicating the reason for the condition's last transition.
                              Producers of specific condition types may define expected values and meanings for this field,
                              and whether the values are considered a guaranteed API.
                              The value should be a CamelCase string.
                              This field may not be empty.
                            maxLength: 1024
                            minLength: 1
                            pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                            type: string
                          status:
                            description: status of the condition, one of True, False,
                              Unknown.
                            enum:
                            - "True"
                            - "False"
                            - Unknown
                            type: string
                          type:
                            description: type of condition in CamelCase or in foo.example.com/CamelCase.
                            maxLength: 316
                            pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                            type: string
                        required:
                        - message
                        - reason
                        - status
                        - type
                        type: object
                      type: array
                      x-kubernetes-list-map-keys:
                      - type
                      x-kubernetes-list-type: map
                    hostnameGeneratorRef:
                      properties:
                        coreName:
                          type: string
                      required:
                      - coreName
                      type: object
                  required:
                  - hostnameGeneratorRef
                  type: object
                type: array
              meshServices:
                description: MeshServices is a list of matched MeshServices
                items:
                  properties:
                    mesh:
                      type: string
                    name:
                      description: Name is a core name of MeshService
                      type: string
                    namespace:
                      type: string
                    zone:
                      type: string
                  required:
                  - mesh
                  - name
                  - namespace
                  - zone
                  type: object
                type: array
              vips:
                description: VIPs is a list of assigned Kuma VIPs.
                items:
                  properties:
                    ip:
                      type: string
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
