apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: (unknown)
  creationTimestamp: null
  name: healthcheckpolicies.networking.gke.io
spec:
  group: networking.gke.io
  names:
    kind: HealthCheckPolicy
    listKind: HealthCheckPolicyList
    plural: healthcheckpolicies
    singular: healthcheckpolicy
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: HealthCheckPolicy provides a way to create and attach a HealthCheck
          to a BackendService with the GKE implementation of the Gateway API. This
          policy can only be attached to a BackendService.
        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 defines the desired state of HealthCheckPolicy.
            properties:
              default:
                description: Default defines default policy configuration for the
                  targeted resource.
                properties:
                  checkIntervalSec:
                    description: How often (in seconds) to send a health check. If
                      not specified, a default value of 5 seconds will be used.
                    format: int64
                    maximum: 300
                    minimum: 1
                    type: integer
                  config:
                    description: Specifies the type of the healthCheck, either TCP,
                      HTTP, HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific
                      health check field must be specified, which must match type
                      field. Config contains per protocol (i.e. HTTP, HTTPS, HTTP2,
                      TCP, GRPC) configuration. If not specified, health check type
                      defaults to HTTP.
                    properties:
                      grpcHealthCheck:
                        description: GRPC is the health check configuration of type
                          GRPC.
                        properties:
                          grpcServiceName:
                            description: 'The gRPC service name for the health check.
                              This field is optional. The value of grpcServiceName
                              has the following meanings by convention: - Empty serviceName
                              means the overall status of all services at the backend.
                              - Non-empty serviceName means the health of that gRPC
                              service, as defined by   the owner of the service. The
                              grpcServiceName can only be ASCII.'
                            maxLength: 1024
                            pattern: '[\x00-\xFF]+'
                            type: string
                          port:
                            description: The TCP port number for the health check
                              request. Valid values are 1 through 65535.
                            format: int64
                            maximum: 65535
                            minimum: 1
                            type: integer
                          portName:
                            description: Port name as defined in InstanceGroup#NamedPort#name.
                              If both port and portName are defined, port takes precedence.
                            maxLength: 63
                            pattern: '[a-z]([-a-z0-9]*[a-z0-9])?'
                            type: string
                          portSpecification:
                            description: "Specifies how port is selected for health
                              checking, can be one of following values: \n USE_FIXED_PORT:
                              The port number in port is used for health checking.
                              USE_NAMED_PORT: The portName is used for health checking.
                              USE_SERVING_PORT: For NetworkEndpointGroup, the port
                              specified for each network endpoint is used for health
                              checking. For other backends, the port or named port
                              specified in the Backend Service is used for health
                              checking. \n If not specified, Protocol health check
                              follows behavior specified in port and portName fields.
                              If neither Port nor PortName is specified, this defaults
                              to USE_SERVING_PORT."
                            enum:
                            - USE_FIXED_PORT
                            - USE_NAMED_PORT
                            - USE_SERVING_PORT
                            type: string
                        type: object
                      http2HealthCheck:
                        description: HTTP2 is the health check configuration of type
                          HTTP2.
                        properties:
                          host:
                            description: Host is the value of the host header in the
                              HTTP health check request. This matches the RFC 1123
                              definition of a hostname with 1 notable exception that
                              numeric IP addresses are not allowed. If not specified
                              or left empty, the IP on behalf of which this health
                              check is performed will be used.
                            maxLength: 2048
                            pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                            type: string
                          port:
                            description: The TCP port number for the health check
                              request. Valid values are 1 through 65535.
                            format: int64
                            maximum: 65535
                            minimum: 1
                            type: integer
                          portName:
                            description: Port name as defined in InstanceGroup#NamedPort#name.
                              If both port and portName are defined, port takes precedence.
                            maxLength: 63
                            pattern: '[a-z]([-a-z0-9]*[a-z0-9])?'
                            type: string
                          portSpecification:
                            description: "Specifies how port is selected for health
                              checking, can be one of following values: \n USE_FIXED_PORT:
                              The port number in port is used for health checking.
                              USE_NAMED_PORT: The portName is used for health checking.
                              USE_SERVING_PORT: For NetworkEndpointGroup, the port
                              specified for each network endpoint is used for health
                              checking. For other backends, the port or named port
                              specified in the Backend Service is used for health
                              checking. \n If not specified, Protocol health check
                              follows behavior specified in port and portName fields.
                              If neither Port nor PortName is specified, this defaults
                              to USE_SERVING_PORT."
                            enum:
                            - USE_FIXED_PORT
                            - USE_NAMED_PORT
                            - USE_SERVING_PORT
                            type: string
                          proxyHeader:
                            description: Specifies the type of proxy header to append
                              before sending data to the backend, either NONE or PROXY_V1.
                              If not specified, this defaults to NONE.
                            enum:
                            - NONE
                            - PROXY_V1
                            type: string
                          requestPath:
                            description: The request path of the HTTP health check
                              request. If not specified or left empty, a default value
                              of "/" is used.
                            maxLength: 2048
                            pattern: \/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]*$
                            type: string
                          response:
                            description: The string to match anywhere in the first
                              1024 bytes of the response body. If not specified or
                              left empty, the status code determines health. The response
                              data can only be ASCII.
                            maxLength: 1024
                            pattern: '[\x00-\xFF]+'
                            type: string
                        type: object
                      httpHealthCheck:
                        description: HTTP is the health check configuration of type
                          HTTP.
                        properties:
                          host:
                            description: Host is the value of the host header in the
                              HTTP health check request. This matches the RFC 1123
                              definition of a hostname with 1 notable exception that
                              numeric IP addresses are not allowed. If not specified
                              or left empty, the IP on behalf of which this health
                              check is performed will be used.
                            maxLength: 2048
                            pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                            type: string
                          port:
                            description: The TCP port number for the health check
                              request. Valid values are 1 through 65535.
                            format: int64
                            maximum: 65535
                            minimum: 1
                            type: integer
                          portName:
                            description: Port name as defined in InstanceGroup#NamedPort#name.
                              If both port and portName are defined, port takes precedence.
                            maxLength: 63
                            pattern: '[a-z]([-a-z0-9]*[a-z0-9])?'
                            type: string
                          portSpecification:
                            description: "Specifies how port is selected for health
                              checking, can be one of following values: \n USE_FIXED_PORT:
                              The port number in port is used for health checking.
                              USE_NAMED_PORT: The portName is used for health checking.
                              USE_SERVING_PORT: For NetworkEndpointGroup, the port
                              specified for each network endpoint is used for health
                              checking. For other backends, the port or named port
                              specified in the Backend Service is used for health
                              checking. \n If not specified, Protocol health check
                              follows behavior specified in port and portName fields.
                              If neither Port nor PortName is specified, this defaults
                              to USE_SERVING_PORT."
                            enum:
                            - USE_FIXED_PORT
                            - USE_NAMED_PORT
                            - USE_SERVING_PORT
                            type: string
                          proxyHeader:
                            description: Specifies the type of proxy header to append
                              before sending data to the backend, either NONE or PROXY_V1.
                              If not specified, this defaults to NONE.
                            enum:
                            - NONE
                            - PROXY_V1
                            type: string
                          requestPath:
                            description: The request path of the HTTP health check
                              request. If not specified or left empty, a default value
                              of "/" is used.
                            maxLength: 2048
                            pattern: \/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]*$
                            type: string
                          response:
                            description: The string to match anywhere in the first
                              1024 bytes of the response body. If not specified or
                              left empty, the status code determines health. The response
                              data can only be ASCII.
                            maxLength: 1024
                            pattern: '[\x00-\xFF]+'
                            type: string
                        type: object
                      httpsHealthCheck:
                        description: HTTPS is the health check configuration of type
                          HTTPS.
                        properties:
                          host:
                            description: Host is the value of the host header in the
                              HTTP health check request. This matches the RFC 1123
                              definition of a hostname with 1 notable exception that
                              numeric IP addresses are not allowed. If not specified
                              or left empty, the IP on behalf of which this health
                              check is performed will be used.
                            maxLength: 2048
                            pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                            type: string
                          port:
                            description: The TCP port number for the health check
                              request. Valid values are 1 through 65535.
                            format: int64
                            maximum: 65535
                            minimum: 1
                            type: integer
                          portName:
                            description: Port name as defined in InstanceGroup#NamedPort#name.
                              If both port and portName are defined, port takes precedence.
                            maxLength: 63
                            pattern: '[a-z]([-a-z0-9]*[a-z0-9])?'
                            type: string
                          portSpecification:
                            description: "Specifies how port is selected for health
                              checking, can be one of following values: \n USE_FIXED_PORT:
                              The port number in port is used for health checking.
                              USE_NAMED_PORT: The portName is used for health checking.
                              USE_SERVING_PORT: For NetworkEndpointGroup, the port
                              specified for each network endpoint is used for health
                              checking. For other backends, the port or named port
                              specified in the Backend Service is used for health
                              checking. \n If not specified, Protocol health check
                              follows behavior specified in port and portName fields.
                              If neither Port nor PortName is specified, this defaults
                              to USE_SERVING_PORT."
                            enum:
                            - USE_FIXED_PORT
                            - USE_NAMED_PORT
                            - USE_SERVING_PORT
                            type: string
                          proxyHeader:
                            description: Specifies the type of proxy header to append
                              before sending data to the backend, either NONE or PROXY_V1.
                              If not specified, this defaults to NONE.
                            enum:
                            - NONE
                            - PROXY_V1
                            type: string
                          requestPath:
                            description: The request path of the HTTP health check
                              request. If not specified or left empty, a default value
                              of "/" is used.
                            maxLength: 2048
                            pattern: \/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]*$
                            type: string
                          response:
                            description: The string to match anywhere in the first
                              1024 bytes of the response body. If not specified or
                              left empty, the status code determines health. The response
                              data can only be ASCII.
                            maxLength: 1024
                            pattern: '[\x00-\xFF]+'
                            type: string
                        type: object
                      tcpHealthCheck:
                        description: TCP is the health check configuration of type
                          TCP.
                        properties:
                          port:
                            description: The TCP port number for the health check
                              request. Valid values are 1 through 65535.
                            format: int64
                            maximum: 65535
                            minimum: 1
                            type: integer
                          portName:
                            description: Port name as defined in InstanceGroup#NamedPort#name.
                              If both port and portName are defined, port takes precedence.
                            maxLength: 63
                            pattern: '[a-z]([-a-z0-9]*[a-z0-9])?'
                            type: string
                          portSpecification:
                            description: "Specifies how port is selected for health
                              checking, can be one of following values: \n USE_FIXED_PORT:
                              The port number in port is used for health checking.
                              USE_NAMED_PORT: The portName is used for health checking.
                              USE_SERVING_PORT: For NetworkEndpointGroup, the port
                              specified for each network endpoint is used for health
                              checking. For other backends, the port or named port
                              specified in the Backend Service is used for health
                              checking. \n If not specified, Protocol health check
                              follows behavior specified in port and portName fields.
                              If neither Port nor PortName is specified, this defaults
                              to USE_SERVING_PORT."
                            enum:
                            - USE_FIXED_PORT
                            - USE_NAMED_PORT
                            - USE_SERVING_PORT
                            type: string
                          proxyHeader:
                            description: Specifies the type of proxy header to append
                              before sending data to the backend, either NONE or PROXY_V1.
                              If not specified, this defaults to NONE.
                            enum:
                            - NONE
                            - PROXY_V1
                            type: string
                          request:
                            description: The application data to send once the TCP
                              connection has been established. If not specified, this
                              defaults to empty. If both request and response are
                              empty, the connection establishment alone will indicate
                              health. The request data can only be ASCII.
                            maxLength: 1024
                            pattern: '[\x00-\xFF]+'
                            type: string
                          response:
                            description: The bytes to match against the beginning
                              of the response data. If not specified or left empty,
                              any response will indicate health. The response data
                              can only be ASCII.
                            maxLength: 1024
                            pattern: '[\x00-\xFF]+'
                            type: string
                        type: object
                      type:
                        description: Specifies the type of the healthCheck, either
                          TCP, HTTP, HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific
                          health check field must be specified, which must match type
                          field.
                        enum:
                        - TCP
                        - HTTP
                        - HTTPS
                        - HTTP2
                        - GRPC
                        type: string
                    type: object
                  healthyThreshold:
                    description: A so-far unhealthy instance will be marked healthy
                      after this many consecutive successes. If not specified, a default
                      value of 2 will be used.
                    format: int64
                    maximum: 10
                    minimum: 1
                    type: integer
                  logConfig:
                    description: LogConfig configures logging on this health check.
                    properties:
                      enabled:
                        description: Enabled indicates whether or not to export health
                          check logs. If not specified, this defaults to false, which
                          means health check logging will be disabled.
                        type: boolean
                    type: object
                  timeoutSec:
                    description: How long (in seconds) to wait before claiming failure.
                      If not specified, a default value of 5 seconds will be used.
                      It is invalid for timeoutSec to have greater value than checkIntervalSec.
                    format: int64
                    maximum: 300
                    minimum: 1
                    type: integer
                  unhealthyThreshold:
                    description: A so-far healthy instance will be marked unhealthy
                      after this many consecutive failures. If not specified, a default
                      value of 2 will be used.
                    format: int64
                    maximum: 10
                    minimum: 1
                    type: integer
                type: object
              targetRef:
                description: TargetRef identifies an API object to apply policy to.
                properties:
                  group:
                    description: Group is the group of the target resource.
                    maxLength: 253
                    pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                    type: string
                  kind:
                    description: Kind is kind of the target resource.
                    maxLength: 63
                    minLength: 1
                    pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                    type: string
                  name:
                    description: Name is the name of the target resource.
                    maxLength: 253
                    minLength: 1
                    type: string
                  namespace:
                    description: Namespace is the namespace of the referent. When
                      unspecified, the local namespace is inferred. Even when policy
                      targets a resource in a different namespace, it MUST only apply
                      to traffic originating from the same namespace as the policy.
                    maxLength: 63
                    minLength: 1
                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                    type: string
                required:
                - group
                - kind
                - name
                type: object
            required:
            - targetRef
            type: object
          status:
            description: Status defines the current state of HealthCheckPolicy.
            properties:
              conditions:
                description: Conditions describe the current conditions of the HealthCheckPolicy.
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    \n \ttype FooStatus struct{ \t    // Represents the observations
                    of a foo's current state. \t    // Known .status.conditions.type
                    are: \"Available\", \"Progressing\", and \"Degraded\" \t    //
                    +patchMergeKey=type \t    // +patchStrategy=merge \t    // +listType=map
                    \t    // +listMapKey=type \t    Conditions []metav1.Condition
                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
                    protobuf:\"bytes,1,rep,name=conditions\"` \n \t    // other fields
                    \t}"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    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.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      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:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                maxItems: 8
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
