
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: gatewayroutes.appmesh.k8s.aws
spec:
  group: appmesh.k8s.aws
  names:
    categories:
    - all
    kind: GatewayRoute
    listKind: GatewayRouteList
    plural: gatewayroutes
    singular: gatewayroute
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The AppMesh GatewayRoute object's Amazon Resource Name
      jsonPath: .status.gatewayRouteARN
      name: ARN
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1beta2
    schema:
      openAPIV3Schema:
        description: GatewayRoute is the Schema for the gatewayroutes 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: GatewayRouteSpec defines the desired state of GatewayRoute
              refers to https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html
            properties:
              awsName:
                description: AWSName is the AppMesh GatewayRoute object's name. If
                  unspecified or empty, it defaults to be "${name}_${namespace}" of
                  k8s GatewayRoute
                type: string
              grpcRoute:
                description: An object that represents the specification of a gRPC
                  gatewayRoute.
                properties:
                  action:
                    description: An object that represents the action to take if a
                      match is determined.
                    properties:
                      rewrite:
                        description: GrpcGatewayRouteRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_GrpcGatewayRouteRewrite.html
                        properties:
                          hostname:
                            description: GatewayRouteHostnameRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_GatewayRouteHostnameRewrite.html
                              ENABLE or DISABLE default behavior for Hostname rewrite
                            properties:
                              defaultTargetHostname:
                                enum:
                                - ENABLED
                                - DISABLED
                                type: string
                            type: object
                        type: object
                      target:
                        description: An object that represents the target that traffic
                          is routed to when a request matches the route.
                        properties:
                          port:
                            description: Specifies the port of the gateway route target
                            format: int64
                            minimum: 0
                            type: integer
                          virtualService:
                            description: The virtual service to associate with the
                              gateway route target.
                            properties:
                              virtualServiceARN:
                                description: Amazon Resource Name to AppMesh VirtualService
                                  object to associate with the gateway route virtual
                                  service target. Exactly one of 'virtualServiceRef'
                                  or 'virtualServiceARN' must be specified.
                                type: string
                              virtualServiceRef:
                                description: Reference to Kubernetes VirtualService
                                  CR in cluster to associate with the gateway route
                                  virtual service target. Exactly one of 'virtualServiceRef'
                                  or 'virtualServiceARN' must be specified.
                                properties:
                                  name:
                                    description: Name is the name of VirtualService
                                      CR
                                    type: string
                                  namespace:
                                    description: Namespace is the namespace of VirtualService
                                      CR. If unspecified, defaults to the referencing
                                      object's namespace
                                    type: string
                                required:
                                - name
                                type: object
                            type: object
                        required:
                        - virtualService
                        type: object
                    required:
                    - target
                    type: object
                  match:
                    description: An object that represents the criteria for determining
                      a request match.
                    properties:
                      hostname:
                        description: The client specified Hostname to match on.
                        properties:
                          exact:
                            description: The value sent by the client must match the
                              specified value exactly.
                            maxLength: 253
                            minLength: 1
                            type: string
                          suffix:
                            description: The value sent by the client must end with
                              the specified characters.
                            maxLength: 253
                            minLength: 1
                            type: string
                        type: object
                      metadata:
                        description: An object that represents the data to match from
                          the request.
                        items:
                          description: GRPCGatewayRouteMetadata refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_GrpcGatewayRouteMetadata.html
                          properties:
                            invert:
                              description: Specify True to match anything except the
                                match criteria. The default value is False.
                              type: boolean
                            match:
                              description: An object that represents the data to match
                                from the request.
                              properties:
                                exact:
                                  description: The value sent by the client must match
                                    the specified value exactly.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                                prefix:
                                  description: The value sent by the client must begin
                                    with the specified characters.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                                range:
                                  description: An object that represents the range
                                    of values to match on
                                  properties:
                                    end:
                                      description: The end of the range.
                                      format: int64
                                      type: integer
                                    start:
                                      description: The start of the range.
                                      format: int64
                                      type: integer
                                  required:
                                  - end
                                  - start
                                  type: object
                                regex:
                                  description: The value sent by the client must include
                                    the specified characters.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                                suffix:
                                  description: The value sent by the client must end
                                    with the specified characters.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                              type: object
                            name:
                              description: The name of the route.
                              maxLength: 50
                              minLength: 1
                              type: string
                          required:
                          - name
                          type: object
                        maxItems: 10
                        minItems: 1
                        type: array
                      port:
                        description: Specifies the port the request to be matched
                          on
                        format: int64
                        minimum: 0
                        type: integer
                      serviceName:
                        description: Either ServiceName or Hostname must be specified.
                          Both are allowed as well The fully qualified domain name
                          for the service to match from the request.
                        type: string
                    type: object
                required:
                - action
                - match
                type: object
              http2Route:
                description: An object that represents the specification of an HTTP/2
                  gatewayRoute.
                properties:
                  action:
                    description: An object that represents the action to take if a
                      match is determined.
                    properties:
                      rewrite:
                        description: HTTPGatewayRouteRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpGatewayRouteRewrite.html
                        properties:
                          hostname:
                            description: GatewayRouteHostnameRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_GatewayRouteHostnameRewrite.html
                              ENABLE or DISABLE default behavior for Hostname rewrite
                            properties:
                              defaultTargetHostname:
                                enum:
                                - ENABLED
                                - DISABLED
                                type: string
                            type: object
                          path:
                            description: GatewayRoutePathRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpGatewayRoutePathRewrite.html
                            properties:
                              exact:
                                maxLength: 255
                                minLength: 1
                                type: string
                            type: object
                          prefix:
                            description: GatewayRoutePrefixRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpGatewayRoutePrefixRewrite.html
                            properties:
                              defaultPrefix:
                                enum:
                                - ENABLED
                                - DISABLED
                                type: string
                              value:
                                description: When DefaultPrefix is specified, Value
                                  cannot be set
                                maxLength: 255
                                minLength: 1
                                type: string
                            type: object
                        type: object
                      target:
                        description: An object that represents the target that traffic
                          is routed to when a request matches the route.
                        properties:
                          port:
                            description: Specifies the port of the gateway route target
                            format: int64
                            minimum: 0
                            type: integer
                          virtualService:
                            description: The virtual service to associate with the
                              gateway route target.
                            properties:
                              virtualServiceARN:
                                description: Amazon Resource Name to AppMesh VirtualService
                                  object to associate with the gateway route virtual
                                  service target. Exactly one of 'virtualServiceRef'
                                  or 'virtualServiceARN' must be specified.
                                type: string
                              virtualServiceRef:
                                description: Reference to Kubernetes VirtualService
                                  CR in cluster to associate with the gateway route
                                  virtual service target. Exactly one of 'virtualServiceRef'
                                  or 'virtualServiceARN' must be specified.
                                properties:
                                  name:
                                    description: Name is the name of VirtualService
                                      CR
                                    type: string
                                  namespace:
                                    description: Namespace is the namespace of VirtualService
                                      CR. If unspecified, defaults to the referencing
                                      object's namespace
                                    type: string
                                required:
                                - name
                                type: object
                            type: object
                        required:
                        - virtualService
                        type: object
                    required:
                    - target
                    type: object
                  match:
                    description: An object that represents the criteria for determining
                      a request match.
                    properties:
                      headers:
                        description: An object that represents the client request
                          headers to match on.
                        items:
                          description: HTTPGatewayRouteHeader refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpGatewayRouteHeader.html
                          properties:
                            invert:
                              description: Specify True to match anything except the
                                match criteria. The default value is False.
                              type: boolean
                            match:
                              description: The HeaderMatchMethod object.
                              properties:
                                exact:
                                  description: The value sent by the client must match
                                    the specified value exactly.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                                prefix:
                                  description: The value sent by the client must begin
                                    with the specified characters.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                                range:
                                  description: An object that represents the range
                                    of values to match on.
                                  properties:
                                    end:
                                      description: The end of the range.
                                      format: int64
                                      type: integer
                                    start:
                                      description: The start of the range.
                                      format: int64
                                      type: integer
                                  required:
                                  - end
                                  - start
                                  type: object
                                regex:
                                  description: The value sent by the client must include
                                    the specified characters.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                                suffix:
                                  description: The value sent by the client must end
                                    with the specified characters.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                              type: object
                            name:
                              description: A name for the HTTP header in the client
                                request that will be matched on.
                              maxLength: 50
                              minLength: 1
                              type: string
                          required:
                          - name
                          type: object
                        maxItems: 10
                        minItems: 1
                        type: array
                      hostname:
                        description: The client specified Hostname to match on.
                        properties:
                          exact:
                            description: The value sent by the client must match the
                              specified value exactly.
                            maxLength: 253
                            minLength: 1
                            type: string
                          suffix:
                            description: The value sent by the client must end with
                              the specified characters.
                            maxLength: 253
                            minLength: 1
                            type: string
                        type: object
                      method:
                        description: The client request method to match on.
                        enum:
                        - CONNECT
                        - DELETE
                        - GET
                        - HEAD
                        - OPTIONS
                        - PATCH
                        - POST
                        - PUT
                        - TRACE
                        type: string
                      path:
                        description: Specified path of the request to be matched on
                        properties:
                          exact:
                            description: The value sent by the client must match the
                              specified value exactly.
                            maxLength: 255
                            minLength: 1
                            type: string
                          regex:
                            description: The value sent by the client must end with
                              the specified characters.
                            maxLength: 255
                            minLength: 1
                            type: string
                        type: object
                      port:
                        description: Specifies the port the request to be matched
                          on
                        format: int64
                        minimum: 0
                        type: integer
                      prefix:
                        description: Either Prefix or Hostname must be specified.
                          Both are allowed as well. Specifies the prefix to match
                          requests with
                        type: string
                      queryParameters:
                        description: Client specified query parameters to match on
                        items:
                          description: HTTPQueryParameters refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpQueryParameter.html
                          properties:
                            match:
                              description: The QueryMatchMethod object.
                              properties:
                                exact:
                                  type: string
                              type: object
                            name:
                              type: string
                          required:
                          - name
                          type: object
                        maxItems: 10
                        minItems: 1
                        type: array
                    type: object
                required:
                - action
                - match
                type: object
              httpRoute:
                description: An object that represents the specification of an HTTP
                  gatewayRoute.
                properties:
                  action:
                    description: An object that represents the action to take if a
                      match is determined.
                    properties:
                      rewrite:
                        description: HTTPGatewayRouteRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpGatewayRouteRewrite.html
                        properties:
                          hostname:
                            description: GatewayRouteHostnameRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_GatewayRouteHostnameRewrite.html
                              ENABLE or DISABLE default behavior for Hostname rewrite
                            properties:
                              defaultTargetHostname:
                                enum:
                                - ENABLED
                                - DISABLED
                                type: string
                            type: object
                          path:
                            description: GatewayRoutePathRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpGatewayRoutePathRewrite.html
                            properties:
                              exact:
                                maxLength: 255
                                minLength: 1
                                type: string
                            type: object
                          prefix:
                            description: GatewayRoutePrefixRewrite refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpGatewayRoutePrefixRewrite.html
                            properties:
                              defaultPrefix:
                                enum:
                                - ENABLED
                                - DISABLED
                                type: string
                              value:
                                description: When DefaultPrefix is specified, Value
                                  cannot be set
                                maxLength: 255
                                minLength: 1
                                type: string
                            type: object
                        type: object
                      target:
                        description: An object that represents the target that traffic
                          is routed to when a request matches the route.
                        properties:
                          port:
                            description: Specifies the port of the gateway route target
                            format: int64
                            minimum: 0
                            type: integer
                          virtualService:
                            description: The virtual service to associate with the
                              gateway route target.
                            properties:
                              virtualServiceARN:
                                description: Amazon Resource Name to AppMesh VirtualService
                                  object to associate with the gateway route virtual
                                  service target. Exactly one of 'virtualServiceRef'
                                  or 'virtualServiceARN' must be specified.
                                type: string
                              virtualServiceRef:
                                description: Reference to Kubernetes VirtualService
                                  CR in cluster to associate with the gateway route
                                  virtual service target. Exactly one of 'virtualServiceRef'
                                  or 'virtualServiceARN' must be specified.
                                properties:
                                  name:
                                    description: Name is the name of VirtualService
                                      CR
                                    type: string
                                  namespace:
                                    description: Namespace is the namespace of VirtualService
                                      CR. If unspecified, defaults to the referencing
                                      object's namespace
                                    type: string
                                required:
                                - name
                                type: object
                            type: object
                        required:
                        - virtualService
                        type: object
                    required:
                    - target
                    type: object
                  match:
                    description: An object that represents the criteria for determining
                      a request match.
                    properties:
                      headers:
                        description: An object that represents the client request
                          headers to match on.
                        items:
                          description: HTTPGatewayRouteHeader refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpGatewayRouteHeader.html
                          properties:
                            invert:
                              description: Specify True to match anything except the
                                match criteria. The default value is False.
                              type: boolean
                            match:
                              description: The HeaderMatchMethod object.
                              properties:
                                exact:
                                  description: The value sent by the client must match
                                    the specified value exactly.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                                prefix:
                                  description: The value sent by the client must begin
                                    with the specified characters.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                                range:
                                  description: An object that represents the range
                                    of values to match on.
                                  properties:
                                    end:
                                      description: The end of the range.
                                      format: int64
                                      type: integer
                                    start:
                                      description: The start of the range.
                                      format: int64
                                      type: integer
                                  required:
                                  - end
                                  - start
                                  type: object
                                regex:
                                  description: The value sent by the client must include
                                    the specified characters.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                                suffix:
                                  description: The value sent by the client must end
                                    with the specified characters.
                                  maxLength: 255
                                  minLength: 1
                                  type: string
                              type: object
                            name:
                              description: A name for the HTTP header in the client
                                request that will be matched on.
                              maxLength: 50
                              minLength: 1
                              type: string
                          required:
                          - name
                          type: object
                        maxItems: 10
                        minItems: 1
                        type: array
                      hostname:
                        description: The client specified Hostname to match on.
                        properties:
                          exact:
                            description: The value sent by the client must match the
                              specified value exactly.
                            maxLength: 253
                            minLength: 1
                            type: string
                          suffix:
                            description: The value sent by the client must end with
                              the specified characters.
                            maxLength: 253
                            minLength: 1
                            type: string
                        type: object
                      method:
                        description: The client request method to match on.
                        enum:
                        - CONNECT
                        - DELETE
                        - GET
                        - HEAD
                        - OPTIONS
                        - PATCH
                        - POST
                        - PUT
                        - TRACE
                        type: string
                      path:
                        description: Specified path of the request to be matched on
                        properties:
                          exact:
                            description: The value sent by the client must match the
                              specified value exactly.
                            maxLength: 255
                            minLength: 1
                            type: string
                          regex:
                            description: The value sent by the client must end with
                              the specified characters.
                            maxLength: 255
                            minLength: 1
                            type: string
                        type: object
                      port:
                        description: Specifies the port the request to be matched
                          on
                        format: int64
                        minimum: 0
                        type: integer
                      prefix:
                        description: Either Prefix or Hostname must be specified.
                          Both are allowed as well. Specifies the prefix to match
                          requests with
                        type: string
                      queryParameters:
                        description: Client specified query parameters to match on
                        items:
                          description: HTTPQueryParameters refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpQueryParameter.html
                          properties:
                            match:
                              description: The QueryMatchMethod object.
                              properties:
                                exact:
                                  type: string
                              type: object
                            name:
                              type: string
                          required:
                          - name
                          type: object
                        maxItems: 10
                        minItems: 1
                        type: array
                    type: object
                required:
                - action
                - match
                type: object
              meshRef:
                description: "A reference to k8s Mesh CR that this GatewayRoute belongs
                  to. The admission controller populates it using Meshes's selector,
                  and prevents users from setting this field. \n Populated by the
                  system. Read-only."
                properties:
                  name:
                    description: Name is the name of Mesh CR
                    type: string
                  uid:
                    description: UID is the UID of Mesh CR
                    type: string
                required:
                - name
                - uid
                type: object
              priority:
                description: Priority for the gatewayroute. Default Priority is 1000
                  which is lowest priority
                format: int64
                maximum: 1000
                minimum: 0
                type: integer
              virtualGatewayRef:
                description: "A reference to k8s VirtualGateway CR that this GatewayRoute
                  belongs to. The admission controller populates it using VirtualGateway's
                  selector, and prevents users from setting this field. \n Populated
                  by the system. Read-only."
                properties:
                  name:
                    description: Name is the name of VirtualGateway CR
                    type: string
                  namespace:
                    description: Namespace is the namespace of VirtualGateway CR.
                      If unspecified, defaults to the referencing object's namespace
                    type: string
                  uid:
                    description: UID is the UID of VirtualGateway CR
                    type: string
                required:
                - name
                - uid
                type: object
            type: object
          status:
            description: GatewayRouteStatus defines the observed state of GatewayRoute
            properties:
              conditions:
                description: The current GatewayRoute status.
                items:
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of GatewayRoute condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              gatewayRouteARN:
                description: GatewayRouteARN is the AppMesh GatewayRoute object's
                  Amazon Resource Name
                type: string
              observedGeneration:
                description: The generation observed by the GatewayRoute controller.
                format: int64
                type: integer
            type: object
        type: object
        x-kubernetes-preserve-unknown-fields: true
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
