# DO NOT EDIT - Generated by Cue OpenAPI generator based on Istio APIs.
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: apis.application.tsb.tetrate.io
spec:
  group: application.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - application-tsb-tetrate-io
    kind: API
    listKind: APIList
    plural: apis
    shortNames:
      - tapi
    singular: api
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/application']
          name: Application
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: API objects define a set of servers and endpoints that expose the business logic for an Application.
              properties:
                configResources:
                  items:
                    properties:
                      exclusivelyOwned:
                        description: The exclusively owned flag indicates if the referenced configuration resource is exclusively owned by the object.
                        type: boolean
                      expectedEtag:
                        description: The expected etag field is used to check the if the configuration resource contents have changed.
                        type: string
                      fqn:
                        description: The FQN of the resource this status is computed for.
                        type: string
                    type: object
                  type: array
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                endpoints:
                  description: List of endpoints exposed by this API.
                  items:
                    properties:
                      exposedBy:
                        description: The exposer of this endpoint.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - service
                                - required:
                                    - clusterGroup
                          - required:
                              - service
                          - required:
                              - clusterGroup
                        properties:
                          clusterGroup:
                            description: The clusters that are exposing a concrete endpoint.
                            properties:
                              clusters:
                                description: The clusters that contain gateways exposing the HTTPEndpoint.
                                items:
                                  properties:
                                    labels:
                                      additionalProperties:
                                        type: string
                                      description: Labels associated with the cluster.
                                      type: object
                                    name:
                                      description: The name of the cluster exposing the endpoint.
                                      type: string
                                    weight:
                                      description: The weight for traffic to a cluster exposing the endpoint.
                                      type: integer
                                  type: object
                                type: array
                            type: object
                          service:
                            description: The FQN of the service in the service registry that is exposing a concrete endpoint.
                            type: string
                        type: object
                      hostnames:
                        description: The list of hostnames where this endpoint is exposed.
                        items:
                          type: string
                        type: array
                      methods:
                        description: The list of HTTP methods this endpoint supports.
                        items:
                          type: string
                        type: array
                      path:
                        description: The HTTP path of the endpoint, relative to the hostnames exposed by the API.
                        type: string
                      service:
                        description: 'DEPRECATED: For new created APIs, the exposed servers will be available at httpServers.'
                        type: string
                    type: object
                  type: array
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                httpServers:
                  description: List of gateways servers that expose the API.
                  items:
                    properties:
                      authentication:
                        description: Authentication is used to configure the authentication of end-user credentials like JWT.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - jwt
                                - required:
                                    - rules
                          - required:
                              - jwt
                          - required:
                              - rules
                        properties:
                          jwt:
                            description: Authenticate an HTTP request from a JWT Token attached to it.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                              - required:
                                  - jwksUri
                              - required:
                                  - jwks
                            properties:
                              audiences:
                                description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                items:
                                  type: string
                                type: array
                              fromCookies:
                                description: List of cookie names from which JWT is expected.
                                items:
                                  type: string
                                type: array
                              fromHeaders:
                                description: This field specifies the locations to extract JWT token.
                                items:
                                  properties:
                                    name:
                                      description: The HTTP header name.
                                      type: string
                                    prefix:
                                      description: The prefix that should be stripped before decoding the token.
                                      type: string
                                  required:
                                    - name
                                  type: object
                                type: array
                              issuer:
                                description: Identifies the issuer that issued the JWT.
                                type: string
                              jwks:
                                description: JSON Web Key Set of public keys to validate signature of the JWT.
                                type: string
                              jwksUri:
                                description: URL of the provider's public key set to validate signature of the JWT.
                                type: string
                              outputClaimToHeaders:
                                description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                items:
                                  properties:
                                    claim:
                                      description: The name of the claim to be copied from.
                                      type: string
                                    header:
                                      description: The name of the header to be created.
                                      type: string
                                  required:
                                    - header
                                    - claim
                                  type: object
                                type: array
                              outputPayloadToHeader:
                                description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                type: string
                            required:
                              - issuer
                            type: object
                          oidc:
                            properties:
                              authScopes:
                                description: Optional list of OAuth scopes to be claimed in the authorization request.
                                items:
                                  type: string
                                type: array
                              authType:
                                description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                enum:
                                  - DEFAULT_AUTH_TYPE
                                  - URL_ENCODED_BODY
                                  - BASIC_AUTH
                                type: string
                              clientId:
                                description: The client_id to be used in the authorize calls.
                                type: string
                              clientTokenSecret:
                                description: The name of the Kubernetes secret containing the client secret.
                                type: string
                              grantType:
                                enum:
                                  - DEFAULT_GRANT_TYPE
                                  - AUTHORIZATION_CODE
                                type: string
                              provider:
                                description: The OIDC Provider configuration.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - jwksUri
                                        - required:
                                            - jwks
                                  - required:
                                      - jwksUri
                                  - required:
                                      - jwks
                                properties:
                                  authorizationEndpoint:
                                    description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                    type: string
                                  issuer:
                                    description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                    type: string
                                  jwks:
                                    description: JSON string with the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  jwksUri:
                                    description: URI for the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  tls:
                                    description: The TLS settings used by the clients to connect with the OIDC provider.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - files
                                            - required:
                                                - secretName
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                    properties:
                                      files:
                                        description: TLS key source from files.
                                        properties:
                                          caCertificates:
                                            description: File containing CA certificates to verify the certificates presented by the server.
                                            type: string
                                          clientCertificate:
                                            description: Certificate file to authenticate the client.
                                            type: string
                                          privateKey:
                                            description: Private key file associated with the client certificate.
                                            type: string
                                        type: object
                                      mode:
                                        enum:
                                          - DISABLED
                                          - SIMPLE
                                          - MUTUAL
                                        type: string
                                      secretName:
                                        description: TLS key source from a Kubernetes Secret.
                                        type: string
                                      subjectAltNames:
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  tokenEndpoint:
                                    description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                    type: string
                                required:
                                  - issuer
                                type: object
                              redirectPathMatcher:
                                description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                type: string
                              redirectUri:
                                description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                type: string
                              signoutPath:
                                description: The path to sign a user out, clearing their credential cookies.
                                type: string
                              useRefreshToken:
                                description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                nullable: true
                                type: boolean
                            required:
                              - clientId
                              - clientTokenSecret
                              - redirectUri
                              - provider
                            type: object
                          requireJwt:
                            description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                            nullable: true
                            type: boolean
                          rules:
                            description: List of rules how to authenticate an HTTP request.
                            properties:
                              jwt:
                                description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                items:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    audiences:
                                      description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                      items:
                                        type: string
                                      type: array
                                    fromCookies:
                                      description: List of cookie names from which JWT is expected.
                                      items:
                                        type: string
                                      type: array
                                    fromHeaders:
                                      description: This field specifies the locations to extract JWT token.
                                      items:
                                        properties:
                                          name:
                                            description: The HTTP header name.
                                            type: string
                                          prefix:
                                            description: The prefix that should be stripped before decoding the token.
                                            type: string
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    issuer:
                                      description: Identifies the issuer that issued the JWT.
                                      type: string
                                    jwks:
                                      description: JSON Web Key Set of public keys to validate signature of the JWT.
                                      type: string
                                    jwksUri:
                                      description: URL of the provider's public key set to validate signature of the JWT.
                                      type: string
                                    outputClaimToHeaders:
                                      description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                      items:
                                        properties:
                                          claim:
                                            description: The name of the claim to be copied from.
                                            type: string
                                          header:
                                            description: The name of the header to be created.
                                            type: string
                                        required:
                                          - header
                                          - claim
                                        type: object
                                      type: array
                                    outputPayloadToHeader:
                                      description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                type: array
                            type: object
                        type: object
                      authorization:
                        description: Authorization is used to configure authorization of end users.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - external
                                - required:
                                    - local
                          - required:
                              - external
                          - required:
                              - local
                        properties:
                          external:
                            properties:
                              allowedUpstreamHeaders:
                                description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                items:
                                  type: string
                                type: array
                              includeRequestHeaders:
                                items:
                                  type: string
                                type: array
                              pathPrefix:
                                description: Sets a prefix to the value of authorization request header Path.
                                type: string
                              timeout:
                                description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                type: string
                              tls:
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              uri:
                                type: string
                            type: object
                          local:
                            properties:
                              rules:
                                items:
                                  properties:
                                    from:
                                      description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                      items:
                                        properties:
                                          jwt:
                                            description: JWT configuration to identity the subject.
                                            properties:
                                              iss:
                                                type: string
                                              other:
                                                additionalProperties:
                                                  type: string
                                                description: A set of arbitrary claims that are required to qualify the subject.
                                                type: object
                                              sub:
                                                type: string
                                            type: object
                                        type: object
                                      type: array
                                    name:
                                      description: A friendly name to identify the binding.
                                      type: string
                                    to:
                                      description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                      items:
                                        properties:
                                          methods:
                                            description: The HTTP methods that are allowed by this rule.
                                            items:
                                              type: string
                                            type: array
                                          paths:
                                            description: The request path where the request is made against.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                      extensions:
                        description: Configure extensions for this hostname.
                        properties:
                          composer:
                            properties:
                              plugins:
                                description: List of plugins.
                                items:
                                  properties:
                                    config:
                                      description: Configuration for this plugin (Optional).
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - inline
                                              - required:
                                                  - secret
                                              - required:
                                                  - configMap
                                        - required:
                                            - inline
                                        - required:
                                            - secret
                                        - required:
                                            - configMap
                                      properties:
                                        configMap:
                                          type: string
                                        inline:
                                          description: Provide plugin config inline in the `yaml` format.
                                          type: object
                                          x-kubernetes-preserve-unknown-fields: true
                                        secret:
                                          type: string
                                      type: object
                                    name:
                                      description: Plugin name.
                                      type: string
                                    priority:
                                      description: Priority to be given to this plugin (Optional).
                                      format: int32
                                      type: integer
                                    url:
                                      description: Optional reference to a custom plugin.
                                      type: string
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                          kong:
                            description: Extend using Kong.
                            properties:
                              plugins:
                                description: List of plugins.
                                items:
                                  properties:
                                    config:
                                      description: Configuration for this plugin (Optional).
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - inline
                                              - required:
                                                  - secret
                                        - required:
                                            - inline
                                        - required:
                                            - secret
                                      properties:
                                        inline:
                                          description: Provide plugin config inline in the `yaml` format.
                                          type: object
                                          x-kubernetes-preserve-unknown-fields: true
                                        secret:
                                          type: string
                                      type: object
                                    name:
                                      description: Plugin name.
                                      type: string
                                    pluginSource:
                                      description: Reference to a custom plugin that will be attached and enabled.
                                      properties:
                                        configMap:
                                          description: Kubernetes ConfigMap containing the plugin files.
                                          type: string
                                      required:
                                        - configMap
                                      type: object
                                    priority:
                                      description: Priority to be given to this plugin (Optional).
                                      type: integer
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                      failoverSettings:
                        description: Failover settings for all clients that try to access the hostname defined in this section.
                        properties:
                          automaticLoadBalancing:
                            properties:
                              enabled:
                                description: Whether to enable automatic load balancing.
                                nullable: true
                                type: boolean
                            type: object
                          failoverPriority:
                            description: FailoverPriority specifies the failover priority for traffic.
                            items:
                              type: string
                            type: array
                          regionalFailover:
                            description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                            items:
                              properties:
                                from:
                                  description: Originating region.
                                  type: string
                                to:
                                  description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                  type: string
                              type: object
                            type: array
                          topologyChoice:
                            description: TopologyChoice specifies the topology preference for traffic priority.
                            enum:
                              - NONE
                              - CLUSTER
                              - LOCALITY
                            type: string
                        type: object
                      hostname:
                        description: Hostname with which the service can be expected to be accessed by clients.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      openapi:
                        description: OpenAPI configuration for the HTTP server.
                        properties:
                          fqn:
                            description: The fqn of the API that holds the OpenAPI spec document.
                            type: string
                          validation:
                            description: Validation options for the OpenAPI document.
                            properties:
                              enabled:
                                description: If set to true, the OpenAPI document is enabled for validation.
                                type: boolean
                              pathPrefix:
                                description: Prefix to add to the paths in the OpenAPI doc before matching against incoming requests.
                                type: string
                            type: object
                        type: object
                      port:
                        description: The port where the server is exposed at the gateway workload(pod).
                        type: integer
                      rateLimiting:
                        description: Configuration for rate limiting requests.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - settings
                                - required:
                                    - externalService
                                - required:
                                    - local
                          - required:
                              - settings
                          - required:
                              - externalService
                          - required:
                              - local
                        properties:
                          externalService:
                            description: Configure ratelimiting using an external ratelimit server.
                            properties:
                              domain:
                                description: The rate limit domain to use when calling the rate limit service.
                                type: string
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rateLimitServerUri:
                                description: The URI at which the external rate limit server can be reached.
                                type: string
                              rules:
                                description: A set of rate limit rules.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions that are to be applied for this rate limit configuration.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - sourceCluster
                                                - required:
                                                    - destinationCluster
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - requestHeaders
                                                - required:
                                                    - headerValueMatch
                                          - required:
                                              - sourceCluster
                                          - required:
                                              - destinationCluster
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - requestHeaders
                                          - required:
                                              - headerValueMatch
                                        properties:
                                          destinationCluster:
                                            description: Rate limit on destination envoy cluster.
                                            type: object
                                          headerValueMatch:
                                            description: Rate limit on the existence of certain request headers.
                                            properties:
                                              descriptorValue:
                                                description: The value to use in the descriptor entry.
                                                type: string
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              headers:
                                                additionalProperties:
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                                description: Specifies a set of headers that the rate limit action should match on.
                                                type: object
                                            required:
                                              - headers
                                              - descriptorValue
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on remote address of client.
                                            type: object
                                          requestHeaders:
                                            description: Rate limit on the value of certain request headers.
                                            properties:
                                              descriptorKey:
                                                description: The key to use in the descriptor entry.
                                                type: string
                                              headerName:
                                                description: The header name to be queried from the request headers.
                                                type: string
                                            required:
                                              - headerName
                                              - descriptorKey
                                            type: object
                                          sourceCluster:
                                            description: Rate limit on source envoy cluster.
                                            type: object
                                        type: object
                                      type: array
                                  required:
                                    - dimensions
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the external rate limit server RPC.
                                type: string
                              tls:
                                description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                            required:
                              - domain
                              - rateLimitServerUri
                              - rules
                            type: object
                          local:
                            description: Apply rate limits internally in the Envoy proxy.
                            properties:
                              maxWildcardDimensions:
                                description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                nullable: true
                                type: integer
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                nullable: true
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                nullable: true
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                nullable: true
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    tokenBucket:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        fillInterval:
                                          description: The fill interval that tokens are added to the bucket.
                                          type: string
                                        maxTokens:
                                          description: The maximum tokens that the bucket can hold.
                                          nullable: true
                                          type: integer
                                        tokensPerFill:
                                          description: The number of tokens added to the bucket during each fill interval.
                                          nullable: true
                                          type: integer
                                      required:
                                        - maxTokens
                                        - fillInterval
                                      type: object
                                  required:
                                    - dimensions
                                    - tokenBucket
                                  type: object
                                type: array
                            required:
                              - rules
                            type: object
                          settings:
                            properties:
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    limit:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        requestsPerUnit:
                                          description: Specifies the value of the rate limit.
                                          type: integer
                                        unit:
                                          description: Specifies the unit of time for rate limit.
                                          enum:
                                            - UNKNOWN
                                            - SECOND
                                            - MINUTE
                                            - HOUR
                                            - DAY
                                          type: string
                                      required:
                                        - requestsPerUnit
                                        - unit
                                      type: object
                                  required:
                                    - dimensions
                                    - limit
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the rate limit server RPC.
                                type: string
                            required:
                              - rules
                            type: object
                        type: object
                      routing:
                        description: Routing rules associated with HTTP traffic to this server.
                        properties:
                          corsPolicy:
                            description: Cross origin resource request policy settings for all routes.
                            properties:
                              allowCredentials:
                                description: Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials.
                                nullable: true
                                type: boolean
                              allowHeaders:
                                description: List of HTTP headers that can be used when requesting the resource.
                                items:
                                  type: string
                                type: array
                              allowMethods:
                                description: List of HTTP methods allowed to access the resource.
                                items:
                                  type: string
                                type: array
                              allowOrigin:
                                description: The list of origins that are allowed to perform CORS requests.
                                items:
                                  type: string
                                type: array
                              exposeHeaders:
                                description: A white list of HTTP headers that the browsers are allowed to access.
                                items:
                                  type: string
                                type: array
                              maxAge:
                                description: Specifies how long the results of a preflight request can be cached.
                                type: string
                            type: object
                          rules:
                            description: HTTP routes.
                            items:
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - route
                                      - required:
                                          - redirect
                                      - required:
                                          - directResponse
                                - required:
                                    - route
                                - required:
                                    - redirect
                                - required:
                                    - directResponse
                              properties:
                                directResponse:
                                  description: Return a fixed response.
                                  properties:
                                    body:
                                      description: Specifies the content of the response body.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - string
                                              - required:
                                                  - bytes
                                        - required:
                                            - string
                                        - required:
                                            - bytes
                                      properties:
                                        bytes:
                                          description: response body as base64 encoded bytes.
                                          format: binary
                                          type: string
                                        string:
                                          type: string
                                      type: object
                                    status:
                                      description: Specifies the HTTP response status to be returned.
                                      type: integer
                                  required:
                                    - status
                                  type: object
                                disableExternalAuthorization:
                                  description: If set to true, external authorization is disabled on this route when the hostname is configured with external authorization.
                                  type: boolean
                                extensions:
                                  properties:
                                    composer:
                                      properties:
                                        plugins:
                                          description: List of plugins.
                                          items:
                                            properties:
                                              config:
                                                description: Configuration for this plugin (Optional).
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - inline
                                                        - required:
                                                            - secret
                                                        - required:
                                                            - configMap
                                                  - required:
                                                      - inline
                                                  - required:
                                                      - secret
                                                  - required:
                                                      - configMap
                                                properties:
                                                  configMap:
                                                    type: string
                                                  inline:
                                                    description: Provide plugin config inline in the `yaml` format.
                                                    type: object
                                                    x-kubernetes-preserve-unknown-fields: true
                                                  secret:
                                                    type: string
                                                type: object
                                              name:
                                                description: Plugin name.
                                                type: string
                                              priority:
                                                description: Priority to be given to this plugin (Optional).
                                                format: int32
                                                type: integer
                                              url:
                                                description: Optional reference to a custom plugin.
                                                type: string
                                            required:
                                              - name
                                            type: object
                                          type: array
                                      type: object
                                    kong:
                                      description: Extend using Kong.
                                      properties:
                                        plugins:
                                          description: List of plugins.
                                          items:
                                            properties:
                                              config:
                                                description: Configuration for this plugin (Optional).
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - inline
                                                        - required:
                                                            - secret
                                                  - required:
                                                      - inline
                                                  - required:
                                                      - secret
                                                properties:
                                                  inline:
                                                    description: Provide plugin config inline in the `yaml` format.
                                                    type: object
                                                    x-kubernetes-preserve-unknown-fields: true
                                                  secret:
                                                    type: string
                                                type: object
                                              name:
                                                description: Plugin name.
                                                type: string
                                              pluginSource:
                                                description: Reference to a custom plugin that will be attached and enabled.
                                                properties:
                                                  configMap:
                                                    description: Kubernetes ConfigMap containing the plugin files.
                                                    type: string
                                                required:
                                                  - configMap
                                                type: object
                                              priority:
                                                description: Priority to be given to this plugin (Optional).
                                                type: integer
                                            required:
                                              - name
                                            type: object
                                          type: array
                                      type: object
                                  type: object
                                match:
                                  description: One or more match conditions (OR-ed).
                                  items:
                                    properties:
                                      headers:
                                        additionalProperties:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                            - required:
                                                - exact
                                            - required:
                                                - prefix
                                            - required:
                                                - regex
                                          properties:
                                            exact:
                                              description: Exact string match.
                                              type: string
                                            prefix:
                                              description: Prefix-based match.
                                              type: string
                                            regex:
                                              description: ECMAscript style regex-based match.
                                              type: string
                                          type: object
                                        description: The header keys must be lowercase and use hyphen as the separator, e.g.
                                        type: object
                                      uri:
                                        description: URI to match.
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                          - required:
                                              - exact
                                          - required:
                                              - prefix
                                          - required:
                                              - regex
                                        properties:
                                          exact:
                                            description: Exact string match.
                                            type: string
                                          prefix:
                                            description: Prefix-based match.
                                            type: string
                                          regex:
                                            description: ECMAscript style regex-based match.
                                            type: string
                                        type: object
                                    type: object
                                  type: array
                                modify:
                                  description: One or more mutations to be performed before forwarding.
                                  properties:
                                    headers:
                                      description: Add/remove/overwrite one or more HTTP headers in a request or response.
                                      properties:
                                        request:
                                          description: Header manipulation rules to apply before forwarding a request to the destination service.
                                          properties:
                                            add:
                                              additionalProperties:
                                                type: string
                                              description: Append the given values to the headers specified by keys (will create a comma-separated list of values).
                                              type: object
                                            remove:
                                              description: Remove a the specified headers.
                                              items:
                                                type: string
                                              type: array
                                            set:
                                              additionalProperties:
                                                type: string
                                              description: Overwrite the headers specified by key with the given values.
                                              type: object
                                          type: object
                                        response:
                                          description: Header manipulation rules to apply before returning a response to the caller.
                                          properties:
                                            add:
                                              additionalProperties:
                                                type: string
                                              description: Append the given values to the headers specified by keys (will create a comma-separated list of values).
                                              type: object
                                            remove:
                                              description: Remove a the specified headers.
                                              items:
                                                type: string
                                              type: array
                                            set:
                                              additionalProperties:
                                                type: string
                                              description: Overwrite the headers specified by key with the given values.
                                              type: object
                                          type: object
                                      type: object
                                    rewrite:
                                      description: Rewrite the HTTP Host or URL or both.
                                      properties:
                                        authority:
                                          description: Rewrite the Authority/Host header with this value.
                                          type: string
                                        uri:
                                          description: Rewrite the path (or the prefix) portion of the URI with this value.
                                          type: string
                                      type: object
                                  type: object
                                redirect:
                                  description: Redirect the request to a different host or URL or both.
                                  properties:
                                    authority:
                                      description: On a redirect, overwrite the Authority/Host portion of the URL with this value.
                                      type: string
                                    port:
                                      type: integer
                                    redirectCode:
                                      description: On a redirect, Specifies the HTTP status code to use in the redirect response.
                                      type: integer
                                    scheme:
                                      description: On a redirect, overwrite the scheme with this one.
                                      type: string
                                    uri:
                                      description: On a redirect, overwrite the Path portion of the URL with this value.
                                      type: string
                                  type: object
                                route:
                                  description: Forward the request to the specified destination(s).
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - clusterDestination
                                          - required:
                                              - serviceDestination
                                    - required:
                                        - clusterDestination
                                    - required:
                                        - serviceDestination
                                  properties:
                                    clusterDestination:
                                      description: RouteToClusters represents the clusters where the request needs to be routed to from the gateway.
                                      properties:
                                        clusters:
                                          description: The destination clusters that contain ingress gateways exposing the hostname.
                                          items:
                                            properties:
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                description: Labels associated with the cluster.
                                                type: object
                                              name:
                                                description: The name of the destination cluster.
                                                type: string
                                              network:
                                                description: The network associated with the destination clusters.
                                                type: string
                                              weight:
                                                description: The weight for traffic to a given destination.
                                                type: integer
                                            type: object
                                          type: array
                                      type: object
                                    serviceDestination:
                                      description: RouteToService represents the service running in clusters.
                                      properties:
                                        host:
                                          description: The destination service in `<namespace>/<fqdn>`.
                                          type: string
                                        port:
                                          description: The port on the service to forward the request to.
                                          type: integer
                                        tls:
                                          description: The `ClientTLSSettings` specifies how the `gateway` workload should establish connections to external services.
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - files
                                                  - required:
                                                      - secretName
                                            - required:
                                                - files
                                            - required:
                                                - secretName
                                          properties:
                                            files:
                                              description: TLS key source from files.
                                              properties:
                                                caCertificates:
                                                  description: File containing CA certificates to verify the certificates presented by the server.
                                                  type: string
                                                clientCertificate:
                                                  description: Certificate file to authenticate the client.
                                                  type: string
                                                privateKey:
                                                  description: Private key file associated with the client certificate.
                                                  type: string
                                              type: object
                                            mode:
                                              enum:
                                                - DISABLED
                                                - SIMPLE
                                                - MUTUAL
                                              type: string
                                            secretName:
                                              description: TLS key source from a Kubernetes Secret.
                                              type: string
                                            subjectAltNames:
                                              items:
                                                type: string
                                              type: array
                                          type: object
                                      required:
                                        - host
                                      type: object
                                  type: object
                              type: object
                            type: array
                        required:
                          - rules
                        type: object
                      tls:
                        description: TLS certificate info.
                        properties:
                          cipherSuites:
                            description: List of cipher suites to be used for TLS connections.
                            items:
                              type: string
                            type: array
                          files:
                            description: Load the keys and certificates from files accessible to the ingress gateway workload.
                            properties:
                              caCertificates:
                                type: string
                              privateKey:
                                type: string
                              serverCertificate:
                                type: string
                            type: object
                          maxProtocolVersion:
                            description: Set the maximum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          minProtocolVersion:
                            description: Set the minimum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          mode:
                            description: Set this to SIMPLE, or MUTUAL for one-way TLS, mutual TLS respectively.
                            enum:
                              - DISABLED
                              - SIMPLE
                              - MUTUAL
                              - OPTIONAL_MUTUAL
                            type: string
                          secretName:
                            description: The name of the secret in Kubernetes that holds the TLS certs including the CA certificates.
                            type: string
                          subjectAltNames:
                            description: List of Subject Alternative Names (SAN) from the client's certificate that are accepted for client identity verification during the TLS handshake.
                            items:
                              type: string
                            type: array
                        type: object
                      trafficMode:
                        description: Traffic mode specifies the type of configuration applied to this server.
                        enum:
                          - AUTO
                          - INGRESS
                          - EGRESS
                          - TRANSIT
                        type: string
                      transit:
                        description: If set to true, the server is configured to be exposed within the mesh.
                        type: boolean
                    required:
                      - name
                      - hostname
                      - routing
                    type: object
                  type: array
                openapi:
                  description: The raw OpenAPI spec for this API.
                  type: string
                servers:
                  description: 'DEPRECATED: For new created APIs, the exposed servers will be available at httpServers.'
                  items:
                    properties:
                      authentication:
                        description: Configuration to authenticate clients.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - jwt
                                - required:
                                    - rules
                          - required:
                              - jwt
                          - required:
                              - rules
                        properties:
                          jwt:
                            description: Authenticate an HTTP request from a JWT Token attached to it.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                              - required:
                                  - jwksUri
                              - required:
                                  - jwks
                            properties:
                              audiences:
                                description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                items:
                                  type: string
                                type: array
                              fromCookies:
                                description: List of cookie names from which JWT is expected.
                                items:
                                  type: string
                                type: array
                              fromHeaders:
                                description: This field specifies the locations to extract JWT token.
                                items:
                                  properties:
                                    name:
                                      description: The HTTP header name.
                                      type: string
                                    prefix:
                                      description: The prefix that should be stripped before decoding the token.
                                      type: string
                                  required:
                                    - name
                                  type: object
                                type: array
                              issuer:
                                description: Identifies the issuer that issued the JWT.
                                type: string
                              jwks:
                                description: JSON Web Key Set of public keys to validate signature of the JWT.
                                type: string
                              jwksUri:
                                description: URL of the provider's public key set to validate signature of the JWT.
                                type: string
                              outputClaimToHeaders:
                                description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                items:
                                  properties:
                                    claim:
                                      description: The name of the claim to be copied from.
                                      type: string
                                    header:
                                      description: The name of the header to be created.
                                      type: string
                                  required:
                                    - header
                                    - claim
                                  type: object
                                type: array
                              outputPayloadToHeader:
                                description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                type: string
                            required:
                              - issuer
                            type: object
                          oidc:
                            properties:
                              authScopes:
                                description: Optional list of OAuth scopes to be claimed in the authorization request.
                                items:
                                  type: string
                                type: array
                              authType:
                                description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                enum:
                                  - DEFAULT_AUTH_TYPE
                                  - URL_ENCODED_BODY
                                  - BASIC_AUTH
                                type: string
                              clientId:
                                description: The client_id to be used in the authorize calls.
                                type: string
                              clientTokenSecret:
                                description: The name of the Kubernetes secret containing the client secret.
                                type: string
                              grantType:
                                enum:
                                  - DEFAULT_GRANT_TYPE
                                  - AUTHORIZATION_CODE
                                type: string
                              provider:
                                description: The OIDC Provider configuration.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - jwksUri
                                        - required:
                                            - jwks
                                  - required:
                                      - jwksUri
                                  - required:
                                      - jwks
                                properties:
                                  authorizationEndpoint:
                                    description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                    type: string
                                  issuer:
                                    description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                    type: string
                                  jwks:
                                    description: JSON string with the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  jwksUri:
                                    description: URI for the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  tls:
                                    description: The TLS settings used by the clients to connect with the OIDC provider.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - files
                                            - required:
                                                - secretName
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                    properties:
                                      files:
                                        description: TLS key source from files.
                                        properties:
                                          caCertificates:
                                            description: File containing CA certificates to verify the certificates presented by the server.
                                            type: string
                                          clientCertificate:
                                            description: Certificate file to authenticate the client.
                                            type: string
                                          privateKey:
                                            description: Private key file associated with the client certificate.
                                            type: string
                                        type: object
                                      mode:
                                        enum:
                                          - DISABLED
                                          - SIMPLE
                                          - MUTUAL
                                        type: string
                                      secretName:
                                        description: TLS key source from a Kubernetes Secret.
                                        type: string
                                      subjectAltNames:
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  tokenEndpoint:
                                    description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                    type: string
                                required:
                                  - issuer
                                type: object
                              redirectPathMatcher:
                                description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                type: string
                              redirectUri:
                                description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                type: string
                              signoutPath:
                                description: The path to sign a user out, clearing their credential cookies.
                                type: string
                              useRefreshToken:
                                description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                nullable: true
                                type: boolean
                            required:
                              - clientId
                              - clientTokenSecret
                              - redirectUri
                              - provider
                            type: object
                          requireJwt:
                            description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                            nullable: true
                            type: boolean
                          rules:
                            description: List of rules how to authenticate an HTTP request.
                            properties:
                              jwt:
                                description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                items:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    audiences:
                                      description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                      items:
                                        type: string
                                      type: array
                                    fromCookies:
                                      description: List of cookie names from which JWT is expected.
                                      items:
                                        type: string
                                      type: array
                                    fromHeaders:
                                      description: This field specifies the locations to extract JWT token.
                                      items:
                                        properties:
                                          name:
                                            description: The HTTP header name.
                                            type: string
                                          prefix:
                                            description: The prefix that should be stripped before decoding the token.
                                            type: string
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    issuer:
                                      description: Identifies the issuer that issued the JWT.
                                      type: string
                                    jwks:
                                      description: JSON Web Key Set of public keys to validate signature of the JWT.
                                      type: string
                                    jwksUri:
                                      description: URL of the provider's public key set to validate signature of the JWT.
                                      type: string
                                    outputClaimToHeaders:
                                      description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                      items:
                                        properties:
                                          claim:
                                            description: The name of the claim to be copied from.
                                            type: string
                                          header:
                                            description: The name of the header to be created.
                                            type: string
                                        required:
                                          - header
                                          - claim
                                        type: object
                                      type: array
                                    outputPayloadToHeader:
                                      description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                type: array
                            type: object
                        type: object
                      authorization:
                        description: Configuration to authorize a request.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - external
                                - required:
                                    - local
                          - required:
                              - external
                          - required:
                              - local
                        properties:
                          external:
                            properties:
                              allowedUpstreamHeaders:
                                description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                items:
                                  type: string
                                type: array
                              includeRequestHeaders:
                                items:
                                  type: string
                                type: array
                              pathPrefix:
                                description: Sets a prefix to the value of authorization request header Path.
                                type: string
                              timeout:
                                description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                type: string
                              tls:
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              uri:
                                type: string
                            type: object
                          local:
                            properties:
                              rules:
                                items:
                                  properties:
                                    from:
                                      description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                      items:
                                        properties:
                                          jwt:
                                            description: JWT configuration to identity the subject.
                                            properties:
                                              iss:
                                                type: string
                                              other:
                                                additionalProperties:
                                                  type: string
                                                description: A set of arbitrary claims that are required to qualify the subject.
                                                type: object
                                              sub:
                                                type: string
                                            type: object
                                        type: object
                                      type: array
                                    name:
                                      description: A friendly name to identify the binding.
                                      type: string
                                    to:
                                      description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                      items:
                                        properties:
                                          methods:
                                            description: The HTTP methods that are allowed by this rule.
                                            items:
                                              type: string
                                            type: array
                                          paths:
                                            description: The request path where the request is made against.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                      hostname:
                        description: Hostname with which the service can be expected to be accessed by clients.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      port:
                        description: The port where the server is exposed.
                        type: integer
                      rateLimiting:
                        description: Configuration for rate limiting requests.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - settings
                                - required:
                                    - externalService
                                - required:
                                    - local
                          - required:
                              - settings
                          - required:
                              - externalService
                          - required:
                              - local
                        properties:
                          externalService:
                            description: Configure ratelimiting using an external ratelimit server.
                            properties:
                              domain:
                                description: The rate limit domain to use when calling the rate limit service.
                                type: string
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rateLimitServerUri:
                                description: The URI at which the external rate limit server can be reached.
                                type: string
                              rules:
                                description: A set of rate limit rules.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions that are to be applied for this rate limit configuration.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - sourceCluster
                                                - required:
                                                    - destinationCluster
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - requestHeaders
                                                - required:
                                                    - headerValueMatch
                                          - required:
                                              - sourceCluster
                                          - required:
                                              - destinationCluster
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - requestHeaders
                                          - required:
                                              - headerValueMatch
                                        properties:
                                          destinationCluster:
                                            description: Rate limit on destination envoy cluster.
                                            type: object
                                          headerValueMatch:
                                            description: Rate limit on the existence of certain request headers.
                                            properties:
                                              descriptorValue:
                                                description: The value to use in the descriptor entry.
                                                type: string
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              headers:
                                                additionalProperties:
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                                description: Specifies a set of headers that the rate limit action should match on.
                                                type: object
                                            required:
                                              - headers
                                              - descriptorValue
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on remote address of client.
                                            type: object
                                          requestHeaders:
                                            description: Rate limit on the value of certain request headers.
                                            properties:
                                              descriptorKey:
                                                description: The key to use in the descriptor entry.
                                                type: string
                                              headerName:
                                                description: The header name to be queried from the request headers.
                                                type: string
                                            required:
                                              - headerName
                                              - descriptorKey
                                            type: object
                                          sourceCluster:
                                            description: Rate limit on source envoy cluster.
                                            type: object
                                        type: object
                                      type: array
                                  required:
                                    - dimensions
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the external rate limit server RPC.
                                type: string
                              tls:
                                description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                            required:
                              - domain
                              - rateLimitServerUri
                              - rules
                            type: object
                          local:
                            description: Apply rate limits internally in the Envoy proxy.
                            properties:
                              maxWildcardDimensions:
                                description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                nullable: true
                                type: integer
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                nullable: true
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                nullable: true
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                nullable: true
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    tokenBucket:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        fillInterval:
                                          description: The fill interval that tokens are added to the bucket.
                                          type: string
                                        maxTokens:
                                          description: The maximum tokens that the bucket can hold.
                                          nullable: true
                                          type: integer
                                        tokensPerFill:
                                          description: The number of tokens added to the bucket during each fill interval.
                                          nullable: true
                                          type: integer
                                      required:
                                        - maxTokens
                                        - fillInterval
                                      type: object
                                  required:
                                    - dimensions
                                    - tokenBucket
                                  type: object
                                type: array
                            required:
                              - rules
                            type: object
                          settings:
                            properties:
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    limit:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        requestsPerUnit:
                                          description: Specifies the value of the rate limit.
                                          type: integer
                                        unit:
                                          description: Specifies the unit of time for rate limit.
                                          enum:
                                            - UNKNOWN
                                            - SECOND
                                            - MINUTE
                                            - HOUR
                                            - DAY
                                          type: string
                                      required:
                                        - requestsPerUnit
                                        - unit
                                      type: object
                                  required:
                                    - dimensions
                                    - limit
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the rate limit server RPC.
                                type: string
                            required:
                              - rules
                            type: object
                        type: object
                      routing:
                        description: Routing rules associated with HTTP traffic to this service.
                        properties:
                          corsPolicy:
                            description: Cross origin resource request policy settings for all routes.
                            properties:
                              allowCredentials:
                                description: Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials.
                                nullable: true
                                type: boolean
                              allowHeaders:
                                description: List of HTTP headers that can be used when requesting the resource.
                                items:
                                  type: string
                                type: array
                              allowMethods:
                                description: List of HTTP methods allowed to access the resource.
                                items:
                                  type: string
                                type: array
                              allowOrigin:
                                description: The list of origins that are allowed to perform CORS requests.
                                items:
                                  type: string
                                type: array
                              exposeHeaders:
                                description: A white list of HTTP headers that the browsers are allowed to access.
                                items:
                                  type: string
                                type: array
                              maxAge:
                                description: Specifies how long the results of a preflight request can be cached.
                                type: string
                            type: object
                          rules:
                            description: HTTP routes.
                            items:
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - route
                                      - required:
                                          - redirect
                                      - required:
                                          - directResponse
                                - required:
                                    - route
                                - required:
                                    - redirect
                                - required:
                                    - directResponse
                              properties:
                                directResponse:
                                  description: Return a fixed response.
                                  properties:
                                    body:
                                      description: Specifies the content of the response body.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - string
                                              - required:
                                                  - bytes
                                        - required:
                                            - string
                                        - required:
                                            - bytes
                                      properties:
                                        bytes:
                                          description: response body as base64 encoded bytes.
                                          format: binary
                                          type: string
                                        string:
                                          type: string
                                      type: object
                                    status:
                                      description: Specifies the HTTP response status to be returned.
                                      type: integer
                                  required:
                                    - status
                                  type: object
                                match:
                                  description: One or more match conditions (OR-ed).
                                  items:
                                    properties:
                                      headers:
                                        additionalProperties:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                            - required:
                                                - exact
                                            - required:
                                                - prefix
                                            - required:
                                                - regex
                                          properties:
                                            exact:
                                              description: Exact string match.
                                              type: string
                                            prefix:
                                              description: Prefix-based match.
                                              type: string
                                            regex:
                                              description: ECMAscript style regex-based match.
                                              type: string
                                          type: object
                                        description: The header keys must be lowercase and use hyphen as the separator, e.g.
                                        type: object
                                      uri:
                                        description: URI to match.
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                          - required:
                                              - exact
                                          - required:
                                              - prefix
                                          - required:
                                              - regex
                                        properties:
                                          exact:
                                            description: Exact string match.
                                            type: string
                                          prefix:
                                            description: Prefix-based match.
                                            type: string
                                          regex:
                                            description: ECMAscript style regex-based match.
                                            type: string
                                        type: object
                                    type: object
                                  type: array
                                modify:
                                  description: One or more mutations to be performed before forwarding.
                                  properties:
                                    headers:
                                      description: Add/remove/overwrite one or more HTTP headers in a request or response.
                                      properties:
                                        request:
                                          description: Header manipulation rules to apply before forwarding a request to the destination service.
                                          properties:
                                            add:
                                              additionalProperties:
                                                type: string
                                              description: Append the given values to the headers specified by keys (will create a comma-separated list of values).
                                              type: object
                                            remove:
                                              description: Remove a the specified headers.
                                              items:
                                                type: string
                                              type: array
                                            set:
                                              additionalProperties:
                                                type: string
                                              description: Overwrite the headers specified by key with the given values.
                                              type: object
                                          type: object
                                        response:
                                          description: Header manipulation rules to apply before returning a response to the caller.
                                          properties:
                                            add:
                                              additionalProperties:
                                                type: string
                                              description: Append the given values to the headers specified by keys (will create a comma-separated list of values).
                                              type: object
                                            remove:
                                              description: Remove a the specified headers.
                                              items:
                                                type: string
                                              type: array
                                            set:
                                              additionalProperties:
                                                type: string
                                              description: Overwrite the headers specified by key with the given values.
                                              type: object
                                          type: object
                                      type: object
                                    rewrite:
                                      description: Rewrite the HTTP Host or URL or both.
                                      properties:
                                        authority:
                                          description: Rewrite the Authority/Host header with this value.
                                          type: string
                                        uri:
                                          description: Rewrite the path (or the prefix) portion of the URI with this value.
                                          type: string
                                      type: object
                                  type: object
                                redirect:
                                  description: Redirect the request to a different host or URL or both.
                                  properties:
                                    authority:
                                      description: On a redirect, overwrite the Authority/Host portion of the URL with this value.
                                      type: string
                                    port:
                                      type: integer
                                    redirectCode:
                                      description: On a redirect, Specifies the HTTP status code to use in the redirect response.
                                      type: integer
                                    scheme:
                                      description: On a redirect, overwrite the scheme with this one.
                                      type: string
                                    uri:
                                      description: On a redirect, overwrite the Path portion of the URL with this value.
                                      type: string
                                  type: object
                                route:
                                  description: Forward the request to the specified destination(s).
                                  properties:
                                    host:
                                      description: The destination service in `<namespace>/<fqdn>` format for `IngressGateway` resources.
                                      type: string
                                    port:
                                      description: The port on the service to forward the request to.
                                      type: integer
                                  required:
                                    - host
                                  type: object
                              type: object
                            type: array
                        required:
                          - rules
                        type: object
                      tls:
                        description: TLS certificate info.
                        properties:
                          cipherSuites:
                            description: List of cipher suites to be used for TLS connections.
                            items:
                              type: string
                            type: array
                          files:
                            description: Load the keys and certificates from files accessible to the ingress gateway workload.
                            properties:
                              caCertificates:
                                type: string
                              privateKey:
                                type: string
                              serverCertificate:
                                type: string
                            type: object
                          maxProtocolVersion:
                            description: Set the maximum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          minProtocolVersion:
                            description: Set the minimum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          mode:
                            description: Set this to SIMPLE, or MUTUAL for one-way TLS, mutual TLS respectively.
                            enum:
                              - DISABLED
                              - SIMPLE
                              - MUTUAL
                              - OPTIONAL_MUTUAL
                            type: string
                          secretName:
                            description: The name of the secret in Kubernetes that holds the TLS certs including the CA certificates.
                            type: string
                          subjectAltNames:
                            description: List of Subject Alternative Names (SAN) from the client's certificate that are accepted for client identity verification during the TLS handshake.
                            items:
                              type: string
                            type: array
                        type: object
                      xxxOldAuthentication:
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - jwt
                          - required:
                              - jwt
                        properties:
                          jwt:
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                              - required:
                                  - jwksUri
                              - required:
                                  - jwks
                            properties:
                              audiences:
                                description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                items:
                                  type: string
                                type: array
                              issuer:
                                description: Identifies the issuer that issued the JWT.
                                type: string
                              jwks:
                                description: JSON Web Key Set of public keys to validate signature of the JWT.
                                type: string
                              jwksUri:
                                description: URL of the provider's public key set to validate signature of the JWT.
                                type: string
                            required:
                              - issuer
                            type: object
                        type: object
                      xxxOldAuthorization:
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - external
                                - required:
                                    - local
                          - required:
                              - external
                          - required:
                              - local
                        properties:
                          external:
                            properties:
                              includeRequestHeaders:
                                items:
                                  type: string
                                type: array
                              uri:
                                type: string
                            type: object
                          local:
                            properties:
                              rules:
                                items:
                                  properties:
                                    from:
                                      description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                      items:
                                        properties:
                                          jwt:
                                            description: JWT configuration to identity the subject.
                                            properties:
                                              iss:
                                                type: string
                                              other:
                                                additionalProperties:
                                                  type: string
                                                description: A set of arbitrary claims that are required to qualify the subject.
                                                type: object
                                              sub:
                                                type: string
                                            type: object
                                        type: object
                                      type: array
                                    name:
                                      description: A friendly name to identify the binding.
                                      type: string
                                    to:
                                      description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                      items:
                                        properties:
                                          methods:
                                            description: The HTTP methods that are allowed by this rule.
                                            items:
                                              type: string
                                            type: array
                                          paths:
                                            description: The request path where the request is made against.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                    required:
                      - name
                      - port
                      - hostname
                      - routing
                    type: object
                  type: array
                workloadSelector:
                  description: Optional selector to specify the gateway workloads (pod labels and Kubernetes namespace) under the application gateway group that should be configured with this gateway.
                  properties:
                    labels:
                      additionalProperties:
                        type: string
                      description: One or more labels that indicate a specific set of pods/VMs in the namespace.
                      type: object
                    namespace:
                      description: The namespace where the workload resides.
                      type: string
                  required:
                    - namespace
                    - labels
                  type: object
              required:
                - openapi
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: applications.application.tsb.tetrate.io
spec:
  group: application.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - application-tsb-tetrate-io
    kind: Application
    listKind: ApplicationList
    plural: applications
    shortNames:
      - tapp
    singular: application
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: Applications are logical groupings of services that are related to each other, typically within a trusted group.
              oneOf:
                - not:
                    anyOf:
                      - required:
                          - namespaceSelector
                      - required:
                          - gatewayGroup
                - required:
                    - namespaceSelector
                - required:
                    - gatewayGroup
              properties:
                configResources:
                  items:
                    properties:
                      exclusivelyOwned:
                        description: The exclusively owned flag indicates if the referenced configuration resource is exclusively owned by the object.
                        type: boolean
                      expectedEtag:
                        description: The expected etag field is used to check the if the configuration resource contents have changed.
                        type: string
                      fqn:
                        description: The FQN of the resource this status is computed for.
                        type: string
                    type: object
                  type: array
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                gatewayGroup:
                  description: Optional FQN of the Gateway Group to be used by the application.
                  type: string
                namespaceSelector:
                  description: Optional set of namespaces this application can configure.
                  properties:
                    names:
                      description: 'Under the tenant/workspace/group: - `*/ns1` implies `ns1` namespace in any cluster.'
                      items:
                        type: string
                      type: array
                  required:
                    - names
                  type: object
                services:
                  description: Optional list of services that are part of the application.
                  items:
                    type: string
                  type: array
                workspace:
                  description: FQN of the workspace this application is part of.
                  type: string
              required:
                - workspace
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: wasmextensions.extension.tsb.tetrate.io
spec:
  group: extension.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: WasmExtension
    listKind: WasmExtensionList
    plural: wasmextensions
    shortNames:
      - twex
    singular: wasmextension
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.url
          name: URL
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: The WASM extension resource allows defining custom WASM extensions that are packaged in OCI images.
              properties:
                allowedIn:
                  description: List of fqns where this extension is allowed to run.
                  items:
                    type: string
                  type: array
                config:
                  description: Configuration parameters sent to the WASM plugin execution The configuration can be overwritten when instantiating the extensions in IngressGateways or Security groups.
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                description:
                  description: A description of the extension.
                  type: string
                displayName:
                  description: User friendly name for the extension.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                image:
                  description: Deprecated.
                  type: string
                imagePullPolicy:
                  description: The pull behaviour to be applied when fetching Wasm module by either OCI image or http/https.
                  enum:
                    - UNSPECIFIED_POLICY
                    - IfNotPresent
                    - Always
                  type: string
                imagePullSecret:
                  description: Credentials to use for OCI image pulling.
                  type: string
                match:
                  description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                  properties:
                    mode:
                      description: Criteria for selecting traffic by their direction.
                      enum:
                        - UNDEFINED
                        - CLIENT
                        - SERVER
                        - CLIENT_AND_SERVER
                      type: string
                  type: object
                phase:
                  description: The phase in the filter chain where the extension will be injected.
                  enum:
                    - UNSPECIFIED_PHASE
                    - AUTHN
                    - AUTHZ
                    - STATS
                  type: string
                priority:
                  description: Determines the ordering of WasmExtensions in the same phase.
                  format: int32
                  type: integer
                source:
                  type: string
                url:
                  description: URL of a Wasm module or OCI container.
                  type: string
                vmConfig:
                  properties:
                    env:
                      description: Specifies environment variables to be injected to this VM.
                      items:
                        properties:
                          name:
                            description: Name of the environment variable.
                            type: string
                          value:
                            description: Value for the environment variable.
                            type: string
                          valueFrom:
                            description: Source for the environment variable's value.
                            enum:
                              - INLINE
                              - HOST
                            type: string
                        required:
                          - name
                          - valueFrom
                        type: object
                      type: array
                  type: object
              required:
                - url
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: egressgateways.gateway.tsb.tetrate.io
spec:
  group: gateway.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - gateway-tsb-tetrate-io
    kind: EgressGateway
    listKind: EgressGatewayList
    plural: egressgateways
    shortNames:
      - teg
    singular: egressgateway
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/gatewayGroup']
          name: Gateway-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: :::warning Deprecation The functionality provided by the `EgressGateway` is now provided in `Gateway` object, and using it is the recommended approach.
              properties:
                authorization:
                  description: The description of which service accounts can access which hosts.
                  items:
                    properties:
                      from:
                        description: The workloads or service accounts this authorization rule applies to.
                        properties:
                          http:
                            description: This is for configuring HTTP request authorization.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - external
                                    - required:
                                        - local
                              - required:
                                  - external
                              - required:
                                  - local
                            properties:
                              external:
                                properties:
                                  allowedUpstreamHeaders:
                                    description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                    items:
                                      type: string
                                    type: array
                                  includeRequestHeaders:
                                    items:
                                      type: string
                                    type: array
                                  pathPrefix:
                                    description: Sets a prefix to the value of authorization request header Path.
                                    type: string
                                  timeout:
                                    description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                    type: string
                                  tls:
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - files
                                            - required:
                                                - secretName
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                    properties:
                                      files:
                                        description: TLS key source from files.
                                        properties:
                                          caCertificates:
                                            description: File containing CA certificates to verify the certificates presented by the server.
                                            type: string
                                          clientCertificate:
                                            description: Certificate file to authenticate the client.
                                            type: string
                                          privateKey:
                                            description: Private key file associated with the client certificate.
                                            type: string
                                        type: object
                                      mode:
                                        enum:
                                          - DISABLED
                                          - SIMPLE
                                          - MUTUAL
                                        type: string
                                      secretName:
                                        description: TLS key source from a Kubernetes Secret.
                                        type: string
                                      subjectAltNames:
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  uri:
                                    type: string
                                type: object
                              local:
                                properties:
                                  rules:
                                    items:
                                      properties:
                                        from:
                                          description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                          items:
                                            properties:
                                              jwt:
                                                description: JWT configuration to identity the subject.
                                                properties:
                                                  iss:
                                                    type: string
                                                  other:
                                                    additionalProperties:
                                                      type: string
                                                    description: A set of arbitrary claims that are required to qualify the subject.
                                                    type: object
                                                  sub:
                                                    type: string
                                                type: object
                                            type: object
                                          type: array
                                        name:
                                          description: A friendly name to identify the binding.
                                          type: string
                                        to:
                                          description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                          items:
                                            properties:
                                              methods:
                                                description: The HTTP methods that are allowed by this rule.
                                                items:
                                                  type: string
                                                type: array
                                              paths:
                                                description: The request path where the request is made against.
                                                items:
                                                  type: string
                                                type: array
                                            type: object
                                          type: array
                                      required:
                                        - name
                                      type: object
                                    type: array
                                type: object
                            type: object
                          identityMatch:
                            description: identity_match specifies the strategy for client identity verification to be employed during the evaluation of authorization (authz) rules within the service.
                            enum:
                              - UNKNOWN
                              - PEER_CERTIFICATE
                              - PERMISSIVE
                              - SOURCE_IDENTITY
                            type: string
                          mode:
                            description: A short cut for specifying the set of allowed callers.
                            enum:
                              - UNSET
                              - NAMESPACE
                              - GROUP
                              - WORKSPACE
                              - CLUSTER
                              - DISABLED
                              - CUSTOM
                              - RULES
                            type: string
                          rules:
                            description: When the mode is `RULES`, you can allow or deny workload-to-workload communication by specifying in the `rules` field which target workloads are allowed or denied to communicate with other target workloads.
                            properties:
                              allow:
                                description: Allow specifies a list of rules.
                                items:
                                  properties:
                                    from:
                                      description: From specifies the source of a request.
                                      properties:
                                        fqn:
                                          description: The target resource identified by FQN which will be the source of a request.
                                          type: string
                                      type: object
                                    to:
                                      description: To specifies the destination of a request.
                                      properties:
                                        fqn:
                                          description: The target resource identified by FQN which will be the destination of a request.
                                          type: string
                                      type: object
                                  required:
                                    - from
                                    - to
                                  type: object
                                type: array
                              deny:
                                description: Deny specifies a list of rules.
                                items:
                                  properties:
                                    from:
                                      description: From specifies the source of a request.
                                      properties:
                                        fqn:
                                          description: The target resource identified by FQN which will be the source of a request.
                                          type: string
                                      type: object
                                    to:
                                      description: To specifies the destination of a request.
                                      properties:
                                        fqn:
                                          description: The target resource identified by FQN which will be the destination of a request.
                                          type: string
                                      type: object
                                  required:
                                    - from
                                    - to
                                  type: object
                                type: array
                              denyAll:
                                description: Deny all specifies whether all requests should be rejected.
                                type: boolean
                            type: object
                          serviceAccounts:
                            description: When the mode is `CUSTOM`, `serviceAccounts` specify the allowed set of service accounts (and the workloads using them).
                            items:
                              type: string
                            type: array
                        type: object
                      to:
                        description: The external hostnames the workload(s) described in this rule can access.
                        items:
                          type: string
                        type: array
                    required:
                      - to
                    type: object
                  type: array
                configGenerationMetadata:
                  description: Metadata values that will be add into the Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                extension:
                  description: Extensions specifies all the WasmExtensions assigned to this EgressGateway with the specific configuration for each extension.
                  items:
                    properties:
                      config:
                        description: Configuration parameters sent to the WASM plugin execution.
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      fqn:
                        description: Fqn of the extension to be executed.
                        type: string
                      match:
                        description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                        items:
                          properties:
                            mode:
                              description: Criteria for selecting traffic by their direction.
                              enum:
                                - UNDEFINED
                                - CLIENT
                                - SERVER
                                - CLIENT_AND_SERVER
                              type: string
                            ports:
                              description: Criteria for selecting traffic by their destination port.
                              items:
                                properties:
                                  number:
                                    type: integer
                                required:
                                  - number
                                type: object
                              type: array
                          type: object
                        type: array
                    required:
                      - fqn
                    type: object
                  type: array
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                workloadSelector:
                  description: Specify the gateway workloads (pod labels and Kubernetes namespace) under the gateway group that should be configured with this gateway.
                  properties:
                    labels:
                      additionalProperties:
                        type: string
                      description: One or more labels that indicate a specific set of pods/VMs in the namespace.
                      type: object
                    namespace:
                      description: The namespace where the workload resides.
                      type: string
                  required:
                    - namespace
                    - labels
                  type: object
              required:
                - workloadSelector
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: gateways.gateway.tsb.tetrate.io
spec:
  group: gateway.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - gateway-tsb-tetrate-io
    kind: Gateway
    listKind: GatewayList
    plural: gateways
    shortNames:
      - tg
    singular: gateway
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/gatewayGroup']
          name: Gateway-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: The `Gateway` configuration combines the functionalities of both the existing `Tier1Gateway` and `IngressGateway`, providing a unified approach for configuring a workload as a gateway in the mesh.
              properties:
                configGenerationMetadata:
                  description: Metadata values that will be add into the Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                egressAuthorization:
                  description: External services are onboarded into the mesh via service entry, and these services are exposed on the Gateway for egress access.
                  items:
                    properties:
                      from:
                        description: Specifies the source workloads or service accounts for this authorization rule.
                        properties:
                          mode:
                            description: A shortcut for specifying the set of allowed callers.
                            enum:
                              - UNSET
                              - NAMESPACE
                              - GROUP
                              - WORKSPACE
                              - CLUSTER
                              - SERVICE_ACCOUNT
                            type: string
                          resources:
                            description: '`resources` specify the allowed set of resources using TSB FQNs.'
                            items:
                              type: string
                            type: array
                          serviceAccounts:
                            description: '`serviceAccounts` specify the allowed set of service accounts (and the workloads using them).'
                            items:
                              type: string
                            type: array
                        type: object
                      identityMatch:
                        description: IdentityMatch defines the client identity used for evaluating the authorization rules.
                        enum:
                          - UNKNOWN
                          - PEER_CERTIFICATE
                          - PERMISSIVE
                          - SOURCE_IDENTITY
                        type: string
                      to:
                        description: The set of hostnames exposed on the Gateway through which external hosts can be accessed.
                        items:
                          properties:
                            host:
                              description: External host.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - exact
                                      - required:
                                          - prefix
                                      - required:
                                          - regex
                                - required:
                                    - exact
                                - required:
                                    - prefix
                                - required:
                                    - regex
                              properties:
                                exact:
                                  description: Exact string match.
                                  type: string
                                prefix:
                                  description: Prefix-based match.
                                  type: string
                                regex:
                                  description: ECMAscript style regex-based match.
                                  type: string
                              type: object
                            methods:
                              description: The HTTP methods allowed by this rule, e.g., ["GET", "HEAD"].
                              items:
                                type: string
                              type: array
                            paths:
                              description: The request paths allowed for access, e.g., ["/accounts", "/info*", "/user/profile/*"].
                              items:
                                type: string
                              type: array
                          required:
                            - host
                          type: object
                        type: array
                    required:
                      - to
                    type: object
                  type: array
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                http:
                  description: One or more HTTP or HTTPS servers exposed by the gateway.
                  items:
                    properties:
                      authentication:
                        description: Authentication is used to configure the authentication of end-user credentials like JWT.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - jwt
                                - required:
                                    - rules
                          - required:
                              - jwt
                          - required:
                              - rules
                        properties:
                          jwt:
                            description: Authenticate an HTTP request from a JWT Token attached to it.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                              - required:
                                  - jwksUri
                              - required:
                                  - jwks
                            properties:
                              audiences:
                                description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                items:
                                  type: string
                                type: array
                              fromCookies:
                                description: List of cookie names from which JWT is expected.
                                items:
                                  type: string
                                type: array
                              fromHeaders:
                                description: This field specifies the locations to extract JWT token.
                                items:
                                  properties:
                                    name:
                                      description: The HTTP header name.
                                      type: string
                                    prefix:
                                      description: The prefix that should be stripped before decoding the token.
                                      type: string
                                  required:
                                    - name
                                  type: object
                                type: array
                              issuer:
                                description: Identifies the issuer that issued the JWT.
                                type: string
                              jwks:
                                description: JSON Web Key Set of public keys to validate signature of the JWT.
                                type: string
                              jwksUri:
                                description: URL of the provider's public key set to validate signature of the JWT.
                                type: string
                              outputClaimToHeaders:
                                description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                items:
                                  properties:
                                    claim:
                                      description: The name of the claim to be copied from.
                                      type: string
                                    header:
                                      description: The name of the header to be created.
                                      type: string
                                  required:
                                    - header
                                    - claim
                                  type: object
                                type: array
                              outputPayloadToHeader:
                                description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                type: string
                            required:
                              - issuer
                            type: object
                          oidc:
                            properties:
                              authScopes:
                                description: Optional list of OAuth scopes to be claimed in the authorization request.
                                items:
                                  type: string
                                type: array
                              authType:
                                description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                enum:
                                  - DEFAULT_AUTH_TYPE
                                  - URL_ENCODED_BODY
                                  - BASIC_AUTH
                                type: string
                              clientId:
                                description: The client_id to be used in the authorize calls.
                                type: string
                              clientTokenSecret:
                                description: The name of the Kubernetes secret containing the client secret.
                                type: string
                              grantType:
                                enum:
                                  - DEFAULT_GRANT_TYPE
                                  - AUTHORIZATION_CODE
                                type: string
                              provider:
                                description: The OIDC Provider configuration.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - jwksUri
                                        - required:
                                            - jwks
                                  - required:
                                      - jwksUri
                                  - required:
                                      - jwks
                                properties:
                                  authorizationEndpoint:
                                    description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                    type: string
                                  issuer:
                                    description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                    type: string
                                  jwks:
                                    description: JSON string with the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  jwksUri:
                                    description: URI for the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  tls:
                                    description: The TLS settings used by the clients to connect with the OIDC provider.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - files
                                            - required:
                                                - secretName
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                    properties:
                                      files:
                                        description: TLS key source from files.
                                        properties:
                                          caCertificates:
                                            description: File containing CA certificates to verify the certificates presented by the server.
                                            type: string
                                          clientCertificate:
                                            description: Certificate file to authenticate the client.
                                            type: string
                                          privateKey:
                                            description: Private key file associated with the client certificate.
                                            type: string
                                        type: object
                                      mode:
                                        enum:
                                          - DISABLED
                                          - SIMPLE
                                          - MUTUAL
                                        type: string
                                      secretName:
                                        description: TLS key source from a Kubernetes Secret.
                                        type: string
                                      subjectAltNames:
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  tokenEndpoint:
                                    description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                    type: string
                                required:
                                  - issuer
                                type: object
                              redirectPathMatcher:
                                description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                type: string
                              redirectUri:
                                description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                type: string
                              signoutPath:
                                description: The path to sign a user out, clearing their credential cookies.
                                type: string
                              useRefreshToken:
                                description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                nullable: true
                                type: boolean
                            required:
                              - clientId
                              - clientTokenSecret
                              - redirectUri
                              - provider
                            type: object
                          requireJwt:
                            description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                            nullable: true
                            type: boolean
                          rules:
                            description: List of rules how to authenticate an HTTP request.
                            properties:
                              jwt:
                                description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                items:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    audiences:
                                      description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                      items:
                                        type: string
                                      type: array
                                    fromCookies:
                                      description: List of cookie names from which JWT is expected.
                                      items:
                                        type: string
                                      type: array
                                    fromHeaders:
                                      description: This field specifies the locations to extract JWT token.
                                      items:
                                        properties:
                                          name:
                                            description: The HTTP header name.
                                            type: string
                                          prefix:
                                            description: The prefix that should be stripped before decoding the token.
                                            type: string
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    issuer:
                                      description: Identifies the issuer that issued the JWT.
                                      type: string
                                    jwks:
                                      description: JSON Web Key Set of public keys to validate signature of the JWT.
                                      type: string
                                    jwksUri:
                                      description: URL of the provider's public key set to validate signature of the JWT.
                                      type: string
                                    outputClaimToHeaders:
                                      description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                      items:
                                        properties:
                                          claim:
                                            description: The name of the claim to be copied from.
                                            type: string
                                          header:
                                            description: The name of the header to be created.
                                            type: string
                                        required:
                                          - header
                                          - claim
                                        type: object
                                      type: array
                                    outputPayloadToHeader:
                                      description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                type: array
                            type: object
                        type: object
                      authorization:
                        description: Authorization is used to configure authorization of end users.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - external
                                - required:
                                    - local
                          - required:
                              - external
                          - required:
                              - local
                        properties:
                          external:
                            properties:
                              allowedUpstreamHeaders:
                                description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                items:
                                  type: string
                                type: array
                              includeRequestHeaders:
                                items:
                                  type: string
                                type: array
                              pathPrefix:
                                description: Sets a prefix to the value of authorization request header Path.
                                type: string
                              timeout:
                                description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                type: string
                              tls:
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              uri:
                                type: string
                            type: object
                          local:
                            properties:
                              rules:
                                items:
                                  properties:
                                    from:
                                      description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                      items:
                                        properties:
                                          jwt:
                                            description: JWT configuration to identity the subject.
                                            properties:
                                              iss:
                                                type: string
                                              other:
                                                additionalProperties:
                                                  type: string
                                                description: A set of arbitrary claims that are required to qualify the subject.
                                                type: object
                                              sub:
                                                type: string
                                            type: object
                                        type: object
                                      type: array
                                    name:
                                      description: A friendly name to identify the binding.
                                      type: string
                                    to:
                                      description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                      items:
                                        properties:
                                          methods:
                                            description: The HTTP methods that are allowed by this rule.
                                            items:
                                              type: string
                                            type: array
                                          paths:
                                            description: The request path where the request is made against.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                      extensions:
                        description: Configure extensions for this hostname.
                        properties:
                          composer:
                            properties:
                              plugins:
                                description: List of plugins.
                                items:
                                  properties:
                                    config:
                                      description: Configuration for this plugin (Optional).
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - inline
                                              - required:
                                                  - secret
                                              - required:
                                                  - configMap
                                        - required:
                                            - inline
                                        - required:
                                            - secret
                                        - required:
                                            - configMap
                                      properties:
                                        configMap:
                                          type: string
                                        inline:
                                          description: Provide plugin config inline in the `yaml` format.
                                          type: object
                                          x-kubernetes-preserve-unknown-fields: true
                                        secret:
                                          type: string
                                      type: object
                                    name:
                                      description: Plugin name.
                                      type: string
                                    priority:
                                      description: Priority to be given to this plugin (Optional).
                                      format: int32
                                      type: integer
                                    url:
                                      description: Optional reference to a custom plugin.
                                      type: string
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                          kong:
                            description: Extend using Kong.
                            properties:
                              plugins:
                                description: List of plugins.
                                items:
                                  properties:
                                    config:
                                      description: Configuration for this plugin (Optional).
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - inline
                                              - required:
                                                  - secret
                                        - required:
                                            - inline
                                        - required:
                                            - secret
                                      properties:
                                        inline:
                                          description: Provide plugin config inline in the `yaml` format.
                                          type: object
                                          x-kubernetes-preserve-unknown-fields: true
                                        secret:
                                          type: string
                                      type: object
                                    name:
                                      description: Plugin name.
                                      type: string
                                    pluginSource:
                                      description: Reference to a custom plugin that will be attached and enabled.
                                      properties:
                                        configMap:
                                          description: Kubernetes ConfigMap containing the plugin files.
                                          type: string
                                      required:
                                        - configMap
                                      type: object
                                    priority:
                                      description: Priority to be given to this plugin (Optional).
                                      type: integer
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                      failoverSettings:
                        description: Failover settings for all clients that try to access the hostname defined in this section.
                        properties:
                          automaticLoadBalancing:
                            properties:
                              enabled:
                                description: Whether to enable automatic load balancing.
                                nullable: true
                                type: boolean
                            type: object
                          failoverPriority:
                            description: FailoverPriority specifies the failover priority for traffic.
                            items:
                              type: string
                            type: array
                          regionalFailover:
                            description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                            items:
                              properties:
                                from:
                                  description: Originating region.
                                  type: string
                                to:
                                  description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                  type: string
                              type: object
                            type: array
                          topologyChoice:
                            description: TopologyChoice specifies the topology preference for traffic priority.
                            enum:
                              - NONE
                              - CLUSTER
                              - LOCALITY
                            type: string
                        type: object
                      hostname:
                        description: Hostname with which the service can be expected to be accessed by clients.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      openapi:
                        description: OpenAPI configuration for the HTTP server.
                        properties:
                          fqn:
                            description: The fqn of the API that holds the OpenAPI spec document.
                            type: string
                          validation:
                            description: Validation options for the OpenAPI document.
                            properties:
                              enabled:
                                description: If set to true, the OpenAPI document is enabled for validation.
                                type: boolean
                              pathPrefix:
                                description: Prefix to add to the paths in the OpenAPI doc before matching against incoming requests.
                                type: string
                            type: object
                        type: object
                      port:
                        description: The port where the server is exposed at the gateway workload(pod).
                        type: integer
                      rateLimiting:
                        description: Configuration for rate limiting requests.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - settings
                                - required:
                                    - externalService
                                - required:
                                    - local
                          - required:
                              - settings
                          - required:
                              - externalService
                          - required:
                              - local
                        properties:
                          externalService:
                            description: Configure ratelimiting using an external ratelimit server.
                            properties:
                              domain:
                                description: The rate limit domain to use when calling the rate limit service.
                                type: string
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rateLimitServerUri:
                                description: The URI at which the external rate limit server can be reached.
                                type: string
                              rules:
                                description: A set of rate limit rules.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions that are to be applied for this rate limit configuration.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - sourceCluster
                                                - required:
                                                    - destinationCluster
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - requestHeaders
                                                - required:
                                                    - headerValueMatch
                                          - required:
                                              - sourceCluster
                                          - required:
                                              - destinationCluster
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - requestHeaders
                                          - required:
                                              - headerValueMatch
                                        properties:
                                          destinationCluster:
                                            description: Rate limit on destination envoy cluster.
                                            type: object
                                          headerValueMatch:
                                            description: Rate limit on the existence of certain request headers.
                                            properties:
                                              descriptorValue:
                                                description: The value to use in the descriptor entry.
                                                type: string
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              headers:
                                                additionalProperties:
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                                description: Specifies a set of headers that the rate limit action should match on.
                                                type: object
                                            required:
                                              - headers
                                              - descriptorValue
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on remote address of client.
                                            type: object
                                          requestHeaders:
                                            description: Rate limit on the value of certain request headers.
                                            properties:
                                              descriptorKey:
                                                description: The key to use in the descriptor entry.
                                                type: string
                                              headerName:
                                                description: The header name to be queried from the request headers.
                                                type: string
                                            required:
                                              - headerName
                                              - descriptorKey
                                            type: object
                                          sourceCluster:
                                            description: Rate limit on source envoy cluster.
                                            type: object
                                        type: object
                                      type: array
                                  required:
                                    - dimensions
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the external rate limit server RPC.
                                type: string
                              tls:
                                description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                            required:
                              - domain
                              - rateLimitServerUri
                              - rules
                            type: object
                          local:
                            description: Apply rate limits internally in the Envoy proxy.
                            properties:
                              maxWildcardDimensions:
                                description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                nullable: true
                                type: integer
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                nullable: true
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                nullable: true
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                nullable: true
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    tokenBucket:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        fillInterval:
                                          description: The fill interval that tokens are added to the bucket.
                                          type: string
                                        maxTokens:
                                          description: The maximum tokens that the bucket can hold.
                                          nullable: true
                                          type: integer
                                        tokensPerFill:
                                          description: The number of tokens added to the bucket during each fill interval.
                                          nullable: true
                                          type: integer
                                      required:
                                        - maxTokens
                                        - fillInterval
                                      type: object
                                  required:
                                    - dimensions
                                    - tokenBucket
                                  type: object
                                type: array
                            required:
                              - rules
                            type: object
                          settings:
                            properties:
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    limit:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        requestsPerUnit:
                                          description: Specifies the value of the rate limit.
                                          type: integer
                                        unit:
                                          description: Specifies the unit of time for rate limit.
                                          enum:
                                            - UNKNOWN
                                            - SECOND
                                            - MINUTE
                                            - HOUR
                                            - DAY
                                          type: string
                                      required:
                                        - requestsPerUnit
                                        - unit
                                      type: object
                                  required:
                                    - dimensions
                                    - limit
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the rate limit server RPC.
                                type: string
                            required:
                              - rules
                            type: object
                        type: object
                      routing:
                        description: Routing rules associated with HTTP traffic to this server.
                        properties:
                          corsPolicy:
                            description: Cross origin resource request policy settings for all routes.
                            properties:
                              allowCredentials:
                                description: Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials.
                                nullable: true
                                type: boolean
                              allowHeaders:
                                description: List of HTTP headers that can be used when requesting the resource.
                                items:
                                  type: string
                                type: array
                              allowMethods:
                                description: List of HTTP methods allowed to access the resource.
                                items:
                                  type: string
                                type: array
                              allowOrigin:
                                description: The list of origins that are allowed to perform CORS requests.
                                items:
                                  type: string
                                type: array
                              exposeHeaders:
                                description: A white list of HTTP headers that the browsers are allowed to access.
                                items:
                                  type: string
                                type: array
                              maxAge:
                                description: Specifies how long the results of a preflight request can be cached.
                                type: string
                            type: object
                          rules:
                            description: HTTP routes.
                            items:
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - route
                                      - required:
                                          - redirect
                                      - required:
                                          - directResponse
                                - required:
                                    - route
                                - required:
                                    - redirect
                                - required:
                                    - directResponse
                              properties:
                                directResponse:
                                  description: Return a fixed response.
                                  properties:
                                    body:
                                      description: Specifies the content of the response body.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - string
                                              - required:
                                                  - bytes
                                        - required:
                                            - string
                                        - required:
                                            - bytes
                                      properties:
                                        bytes:
                                          description: response body as base64 encoded bytes.
                                          format: binary
                                          type: string
                                        string:
                                          type: string
                                      type: object
                                    status:
                                      description: Specifies the HTTP response status to be returned.
                                      type: integer
                                  required:
                                    - status
                                  type: object
                                disableExternalAuthorization:
                                  description: If set to true, external authorization is disabled on this route when the hostname is configured with external authorization.
                                  type: boolean
                                extensions:
                                  properties:
                                    composer:
                                      properties:
                                        plugins:
                                          description: List of plugins.
                                          items:
                                            properties:
                                              config:
                                                description: Configuration for this plugin (Optional).
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - inline
                                                        - required:
                                                            - secret
                                                        - required:
                                                            - configMap
                                                  - required:
                                                      - inline
                                                  - required:
                                                      - secret
                                                  - required:
                                                      - configMap
                                                properties:
                                                  configMap:
                                                    type: string
                                                  inline:
                                                    description: Provide plugin config inline in the `yaml` format.
                                                    type: object
                                                    x-kubernetes-preserve-unknown-fields: true
                                                  secret:
                                                    type: string
                                                type: object
                                              name:
                                                description: Plugin name.
                                                type: string
                                              priority:
                                                description: Priority to be given to this plugin (Optional).
                                                format: int32
                                                type: integer
                                              url:
                                                description: Optional reference to a custom plugin.
                                                type: string
                                            required:
                                              - name
                                            type: object
                                          type: array
                                      type: object
                                    kong:
                                      description: Extend using Kong.
                                      properties:
                                        plugins:
                                          description: List of plugins.
                                          items:
                                            properties:
                                              config:
                                                description: Configuration for this plugin (Optional).
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - inline
                                                        - required:
                                                            - secret
                                                  - required:
                                                      - inline
                                                  - required:
                                                      - secret
                                                properties:
                                                  inline:
                                                    description: Provide plugin config inline in the `yaml` format.
                                                    type: object
                                                    x-kubernetes-preserve-unknown-fields: true
                                                  secret:
                                                    type: string
                                                type: object
                                              name:
                                                description: Plugin name.
                                                type: string
                                              pluginSource:
                                                description: Reference to a custom plugin that will be attached and enabled.
                                                properties:
                                                  configMap:
                                                    description: Kubernetes ConfigMap containing the plugin files.
                                                    type: string
                                                required:
                                                  - configMap
                                                type: object
                                              priority:
                                                description: Priority to be given to this plugin (Optional).
                                                type: integer
                                            required:
                                              - name
                                            type: object
                                          type: array
                                      type: object
                                  type: object
                                match:
                                  description: One or more match conditions (OR-ed).
                                  items:
                                    properties:
                                      headers:
                                        additionalProperties:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                            - required:
                                                - exact
                                            - required:
                                                - prefix
                                            - required:
                                                - regex
                                          properties:
                                            exact:
                                              description: Exact string match.
                                              type: string
                                            prefix:
                                              description: Prefix-based match.
                                              type: string
                                            regex:
                                              description: ECMAscript style regex-based match.
                                              type: string
                                          type: object
                                        description: The header keys must be lowercase and use hyphen as the separator, e.g.
                                        type: object
                                      uri:
                                        description: URI to match.
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                          - required:
                                              - exact
                                          - required:
                                              - prefix
                                          - required:
                                              - regex
                                        properties:
                                          exact:
                                            description: Exact string match.
                                            type: string
                                          prefix:
                                            description: Prefix-based match.
                                            type: string
                                          regex:
                                            description: ECMAscript style regex-based match.
                                            type: string
                                        type: object
                                    type: object
                                  type: array
                                modify:
                                  description: One or more mutations to be performed before forwarding.
                                  properties:
                                    headers:
                                      description: Add/remove/overwrite one or more HTTP headers in a request or response.
                                      properties:
                                        request:
                                          description: Header manipulation rules to apply before forwarding a request to the destination service.
                                          properties:
                                            add:
                                              additionalProperties:
                                                type: string
                                              description: Append the given values to the headers specified by keys (will create a comma-separated list of values).
                                              type: object
                                            remove:
                                              description: Remove a the specified headers.
                                              items:
                                                type: string
                                              type: array
                                            set:
                                              additionalProperties:
                                                type: string
                                              description: Overwrite the headers specified by key with the given values.
                                              type: object
                                          type: object
                                        response:
                                          description: Header manipulation rules to apply before returning a response to the caller.
                                          properties:
                                            add:
                                              additionalProperties:
                                                type: string
                                              description: Append the given values to the headers specified by keys (will create a comma-separated list of values).
                                              type: object
                                            remove:
                                              description: Remove a the specified headers.
                                              items:
                                                type: string
                                              type: array
                                            set:
                                              additionalProperties:
                                                type: string
                                              description: Overwrite the headers specified by key with the given values.
                                              type: object
                                          type: object
                                      type: object
                                    rewrite:
                                      description: Rewrite the HTTP Host or URL or both.
                                      properties:
                                        authority:
                                          description: Rewrite the Authority/Host header with this value.
                                          type: string
                                        uri:
                                          description: Rewrite the path (or the prefix) portion of the URI with this value.
                                          type: string
                                      type: object
                                  type: object
                                redirect:
                                  description: Redirect the request to a different host or URL or both.
                                  properties:
                                    authority:
                                      description: On a redirect, overwrite the Authority/Host portion of the URL with this value.
                                      type: string
                                    port:
                                      type: integer
                                    redirectCode:
                                      description: On a redirect, Specifies the HTTP status code to use in the redirect response.
                                      type: integer
                                    scheme:
                                      description: On a redirect, overwrite the scheme with this one.
                                      type: string
                                    uri:
                                      description: On a redirect, overwrite the Path portion of the URL with this value.
                                      type: string
                                  type: object
                                route:
                                  description: Forward the request to the specified destination(s).
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - clusterDestination
                                          - required:
                                              - serviceDestination
                                    - required:
                                        - clusterDestination
                                    - required:
                                        - serviceDestination
                                  properties:
                                    clusterDestination:
                                      description: RouteToClusters represents the clusters where the request needs to be routed to from the gateway.
                                      properties:
                                        clusters:
                                          description: The destination clusters that contain ingress gateways exposing the hostname.
                                          items:
                                            properties:
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                description: Labels associated with the cluster.
                                                type: object
                                              name:
                                                description: The name of the destination cluster.
                                                type: string
                                              network:
                                                description: The network associated with the destination clusters.
                                                type: string
                                              weight:
                                                description: The weight for traffic to a given destination.
                                                type: integer
                                            type: object
                                          type: array
                                      type: object
                                    serviceDestination:
                                      description: RouteToService represents the service running in clusters.
                                      properties:
                                        host:
                                          description: The destination service in `<namespace>/<fqdn>`.
                                          type: string
                                        port:
                                          description: The port on the service to forward the request to.
                                          type: integer
                                        tls:
                                          description: The `ClientTLSSettings` specifies how the `gateway` workload should establish connections to external services.
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - files
                                                  - required:
                                                      - secretName
                                            - required:
                                                - files
                                            - required:
                                                - secretName
                                          properties:
                                            files:
                                              description: TLS key source from files.
                                              properties:
                                                caCertificates:
                                                  description: File containing CA certificates to verify the certificates presented by the server.
                                                  type: string
                                                clientCertificate:
                                                  description: Certificate file to authenticate the client.
                                                  type: string
                                                privateKey:
                                                  description: Private key file associated with the client certificate.
                                                  type: string
                                              type: object
                                            mode:
                                              enum:
                                                - DISABLED
                                                - SIMPLE
                                                - MUTUAL
                                              type: string
                                            secretName:
                                              description: TLS key source from a Kubernetes Secret.
                                              type: string
                                            subjectAltNames:
                                              items:
                                                type: string
                                              type: array
                                          type: object
                                      required:
                                        - host
                                      type: object
                                  type: object
                              type: object
                            type: array
                        required:
                          - rules
                        type: object
                      tls:
                        description: TLS certificate info.
                        properties:
                          cipherSuites:
                            description: List of cipher suites to be used for TLS connections.
                            items:
                              type: string
                            type: array
                          files:
                            description: Load the keys and certificates from files accessible to the ingress gateway workload.
                            properties:
                              caCertificates:
                                type: string
                              privateKey:
                                type: string
                              serverCertificate:
                                type: string
                            type: object
                          maxProtocolVersion:
                            description: Set the maximum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          minProtocolVersion:
                            description: Set the minimum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          mode:
                            description: Set this to SIMPLE, or MUTUAL for one-way TLS, mutual TLS respectively.
                            enum:
                              - DISABLED
                              - SIMPLE
                              - MUTUAL
                              - OPTIONAL_MUTUAL
                            type: string
                          secretName:
                            description: The name of the secret in Kubernetes that holds the TLS certs including the CA certificates.
                            type: string
                          subjectAltNames:
                            description: List of Subject Alternative Names (SAN) from the client's certificate that are accepted for client identity verification during the TLS handshake.
                            items:
                              type: string
                            type: array
                        type: object
                      trafficMode:
                        description: Traffic mode specifies the type of configuration applied to this server.
                        enum:
                          - AUTO
                          - INGRESS
                          - EGRESS
                          - TRANSIT
                        type: string
                      transit:
                        description: If set to true, the server is configured to be exposed within the mesh.
                        type: boolean
                    required:
                      - name
                      - hostname
                      - routing
                    type: object
                  type: array
                tcp:
                  description: One or more non-HTTP and non-passthrough servers which use TCP based protocols.
                  items:
                    properties:
                      failoverSettings:
                        description: Failover settings for all clients that try to access the hostname defined in this section.
                        properties:
                          automaticLoadBalancing:
                            properties:
                              enabled:
                                description: Whether to enable automatic load balancing.
                                nullable: true
                                type: boolean
                            type: object
                          failoverPriority:
                            description: FailoverPriority specifies the failover priority for traffic.
                            items:
                              type: string
                            type: array
                          regionalFailover:
                            description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                            items:
                              properties:
                                from:
                                  description: Originating region.
                                  type: string
                                to:
                                  description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                  type: string
                              type: object
                            type: array
                          topologyChoice:
                            description: TopologyChoice specifies the topology preference for traffic priority.
                            enum:
                              - NONE
                              - CLUSTER
                              - LOCALITY
                            type: string
                        type: object
                      hostname:
                        description: Hostname to identify the service.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      port:
                        description: The port where the server is exposed.
                        type: integer
                      route:
                        description: Forward the connection to the specified destination.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - clusterDestination
                                - required:
                                    - serviceDestination
                          - required:
                              - clusterDestination
                          - required:
                              - serviceDestination
                        properties:
                          clusterDestination:
                            description: RouteToClusters represents the clusters where the request needs to be routed to from the gateway.
                            properties:
                              clusters:
                                description: The destination clusters that contain ingress gateways exposing the hostname.
                                items:
                                  properties:
                                    labels:
                                      additionalProperties:
                                        type: string
                                      description: Labels associated with the cluster.
                                      type: object
                                    name:
                                      description: The name of the destination cluster.
                                      type: string
                                    network:
                                      description: The network associated with the destination clusters.
                                      type: string
                                    weight:
                                      description: The weight for traffic to a given destination.
                                      type: integer
                                  type: object
                                type: array
                            type: object
                          serviceDestination:
                            description: RouteToService represents the service running in clusters.
                            properties:
                              host:
                                description: The destination service in `<namespace>/<fqdn>`.
                                type: string
                              port:
                                description: The port on the service to forward the request to.
                                type: integer
                              tls:
                                description: The `ClientTLSSettings` specifies how the `gateway` workload should establish connections to external services.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                            required:
                              - host
                            type: object
                        type: object
                      tls:
                        description: TLS certificate info to terminate the TLS connection.
                        properties:
                          cipherSuites:
                            description: List of cipher suites to be used for TLS connections.
                            items:
                              type: string
                            type: array
                          files:
                            description: Load the keys and certificates from files accessible to the ingress gateway workload.
                            properties:
                              caCertificates:
                                type: string
                              privateKey:
                                type: string
                              serverCertificate:
                                type: string
                            type: object
                          maxProtocolVersion:
                            description: Set the maximum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          minProtocolVersion:
                            description: Set the minimum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          mode:
                            description: Set this to SIMPLE, or MUTUAL for one-way TLS, mutual TLS respectively.
                            enum:
                              - DISABLED
                              - SIMPLE
                              - MUTUAL
                              - OPTIONAL_MUTUAL
                            type: string
                          secretName:
                            description: The name of the secret in Kubernetes that holds the TLS certs including the CA certificates.
                            type: string
                          subjectAltNames:
                            description: List of Subject Alternative Names (SAN) from the client's certificate that are accepted for client identity verification during the TLS handshake.
                            items:
                              type: string
                            type: array
                        type: object
                      trafficMode:
                        description: Traffic mode specifies the type of configuration applied to this server.
                        enum:
                          - AUTO
                          - INGRESS
                          - EGRESS
                          - TRANSIT
                        type: string
                      transit:
                        description: If set to true, the server is configured to be exposed within the mesh.
                        type: boolean
                    required:
                      - name
                      - hostname
                      - route
                    type: object
                  type: array
                tls:
                  description: One or more TLS servers exposed by the gateway.
                  items:
                    properties:
                      failoverSettings:
                        description: Failover settings for all clients that try to access the hostname defined in this section.
                        properties:
                          automaticLoadBalancing:
                            properties:
                              enabled:
                                description: Whether to enable automatic load balancing.
                                nullable: true
                                type: boolean
                            type: object
                          failoverPriority:
                            description: FailoverPriority specifies the failover priority for traffic.
                            items:
                              type: string
                            type: array
                          regionalFailover:
                            description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                            items:
                              properties:
                                from:
                                  description: Originating region.
                                  type: string
                                to:
                                  description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                  type: string
                              type: object
                            type: array
                          topologyChoice:
                            description: TopologyChoice specifies the topology preference for traffic priority.
                            enum:
                              - NONE
                              - CLUSTER
                              - LOCALITY
                            type: string
                        type: object
                      hostname:
                        description: Hostname with which the service can be expected to be accessed by clients.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      port:
                        description: The port where the server is exposed.
                        type: integer
                      route:
                        description: Forward the connection to the specified destination.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - clusterDestination
                                - required:
                                    - serviceDestination
                          - required:
                              - clusterDestination
                          - required:
                              - serviceDestination
                        properties:
                          clusterDestination:
                            description: RouteToClusters represents the clusters where the request needs to be routed to from the gateway.
                            properties:
                              clusters:
                                description: The destination clusters that contain ingress gateways exposing the hostname.
                                items:
                                  properties:
                                    labels:
                                      additionalProperties:
                                        type: string
                                      description: Labels associated with the cluster.
                                      type: object
                                    name:
                                      description: The name of the destination cluster.
                                      type: string
                                    network:
                                      description: The network associated with the destination clusters.
                                      type: string
                                    weight:
                                      description: The weight for traffic to a given destination.
                                      type: integer
                                  type: object
                                type: array
                            type: object
                          serviceDestination:
                            description: RouteToService represents the service running in clusters.
                            properties:
                              host:
                                description: The destination service in `<namespace>/<fqdn>`.
                                type: string
                              port:
                                description: The port on the service to forward the request to.
                                type: integer
                              tls:
                                description: The `ClientTLSSettings` specifies how the `gateway` workload should establish connections to external services.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                            required:
                              - host
                            type: object
                        type: object
                    required:
                      - name
                      - port
                      - hostname
                      - route
                    type: object
                  type: array
                waf:
                  description: WAF settings to be enabled for traffic passing through the HttpServer.
                  properties:
                    rules:
                      description: Rules to be leveraged by WAF.
                      items:
                        type: string
                      type: array
                  required:
                    - rules
                  type: object
                wasmPlugins:
                  description: WasmPlugins specifies all the WasmExtensionAttachment assigned to this Gateway with the specific configuration for each plugin.
                  items:
                    properties:
                      config:
                        description: Configuration parameters sent to the WASM plugin execution.
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      fqn:
                        description: Fqn of the extension to be executed.
                        type: string
                      match:
                        description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                        items:
                          properties:
                            mode:
                              description: Criteria for selecting traffic by their direction.
                              enum:
                                - UNDEFINED
                                - CLIENT
                                - SERVER
                                - CLIENT_AND_SERVER
                              type: string
                            ports:
                              description: Criteria for selecting traffic by their destination port.
                              items:
                                properties:
                                  number:
                                    type: integer
                                required:
                                  - number
                                type: object
                              type: array
                          type: object
                        type: array
                    required:
                      - fqn
                    type: object
                  type: array
                workloadSelector:
                  description: Specify the gateway workloads (pod labels and Kubernetes namespace) under the gateway group that should be configured with this gateway.
                  properties:
                    labels:
                      additionalProperties:
                        type: string
                      description: One or more labels that indicate a specific set of pods/VMs in the namespace.
                      type: object
                    namespace:
                      description: The namespace where the workload resides.
                      type: string
                  required:
                    - namespace
                    - labels
                  type: object
              required:
                - workloadSelector
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: groups.gateway.tsb.tetrate.io
spec:
  group: gateway.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - gateway-tsb-tetrate-io
    kind: Group
    listKind: GroupList
    plural: groups
    shortNames:
      - tgg
    singular: group
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.configMode
          name: Mode
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - jsonPath: .spec.deletionProtectionEnabled
          name: Deletion Protection
          type: boolean
        - jsonPath: .spec.namespaceSelector.names
          name: Namespace Selector
          priority: 1
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: Gateway Groups allow grouping the gateways in a set of namespaces owned by its parent workspace.
              properties:
                configGenerationMetadata:
                  description: Default metadata values that will be propagated to the children Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                configMode:
                  description: The Configuration types that will be added to this group.
                  enum:
                    - BRIDGED
                    - DIRECT
                  type: string
                deletionProtectionEnabled:
                  description: When set, prevents the resource from being deleted.
                  type: boolean
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                namespaceSelector:
                  description: Set of namespaces owned exclusively by this group.
                  properties:
                    names:
                      description: 'Under the tenant/workspace/group: - `*/ns1` implies `ns1` namespace in any cluster.'
                      items:
                        type: string
                      type: array
                  required:
                    - names
                  type: object
                profiles:
                  description: List of profiles attached to the gateway group to be used to propagate default and mandatory configurations down to the children.
                  items:
                    type: string
                  type: array
              required:
                - namespaceSelector
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: ingressgateways.gateway.tsb.tetrate.io
spec:
  group: gateway.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - gateway-tsb-tetrate-io
    kind: IngressGateway
    listKind: IngressGatewayList
    plural: ingressgateways
    shortNames:
      - tig
    singular: ingressgateway
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/gatewayGroup']
          name: Gateway-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: :::warning Deprecation The functionality provided by the `IngressGateway` is now provided in `Gateway` object, and using it is the recommended approach.
              properties:
                configGenerationMetadata:
                  description: Metadata values that will be add into the Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                extension:
                  description: Extensions specifies all the WasmExtensions assigned to this IngressGateway with the specific configuration for each extension.
                  items:
                    properties:
                      config:
                        description: Configuration parameters sent to the WASM plugin execution.
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      fqn:
                        description: Fqn of the extension to be executed.
                        type: string
                      match:
                        description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                        items:
                          properties:
                            mode:
                              description: Criteria for selecting traffic by their direction.
                              enum:
                                - UNDEFINED
                                - CLIENT
                                - SERVER
                                - CLIENT_AND_SERVER
                              type: string
                            ports:
                              description: Criteria for selecting traffic by their destination port.
                              items:
                                properties:
                                  number:
                                    type: integer
                                required:
                                  - number
                                type: object
                              type: array
                          type: object
                        type: array
                    required:
                      - fqn
                    type: object
                  type: array
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                http:
                  description: One or more HTTP or HTTPS servers exposed by the gateway.
                  items:
                    properties:
                      authentication:
                        description: Configuration to authenticate clients.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - jwt
                                - required:
                                    - rules
                          - required:
                              - jwt
                          - required:
                              - rules
                        properties:
                          jwt:
                            description: Authenticate an HTTP request from a JWT Token attached to it.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                              - required:
                                  - jwksUri
                              - required:
                                  - jwks
                            properties:
                              audiences:
                                description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                items:
                                  type: string
                                type: array
                              fromCookies:
                                description: List of cookie names from which JWT is expected.
                                items:
                                  type: string
                                type: array
                              fromHeaders:
                                description: This field specifies the locations to extract JWT token.
                                items:
                                  properties:
                                    name:
                                      description: The HTTP header name.
                                      type: string
                                    prefix:
                                      description: The prefix that should be stripped before decoding the token.
                                      type: string
                                  required:
                                    - name
                                  type: object
                                type: array
                              issuer:
                                description: Identifies the issuer that issued the JWT.
                                type: string
                              jwks:
                                description: JSON Web Key Set of public keys to validate signature of the JWT.
                                type: string
                              jwksUri:
                                description: URL of the provider's public key set to validate signature of the JWT.
                                type: string
                              outputClaimToHeaders:
                                description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                items:
                                  properties:
                                    claim:
                                      description: The name of the claim to be copied from.
                                      type: string
                                    header:
                                      description: The name of the header to be created.
                                      type: string
                                  required:
                                    - header
                                    - claim
                                  type: object
                                type: array
                              outputPayloadToHeader:
                                description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                type: string
                            required:
                              - issuer
                            type: object
                          oidc:
                            properties:
                              authScopes:
                                description: Optional list of OAuth scopes to be claimed in the authorization request.
                                items:
                                  type: string
                                type: array
                              authType:
                                description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                enum:
                                  - DEFAULT_AUTH_TYPE
                                  - URL_ENCODED_BODY
                                  - BASIC_AUTH
                                type: string
                              clientId:
                                description: The client_id to be used in the authorize calls.
                                type: string
                              clientTokenSecret:
                                description: The name of the Kubernetes secret containing the client secret.
                                type: string
                              grantType:
                                enum:
                                  - DEFAULT_GRANT_TYPE
                                  - AUTHORIZATION_CODE
                                type: string
                              provider:
                                description: The OIDC Provider configuration.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - jwksUri
                                        - required:
                                            - jwks
                                  - required:
                                      - jwksUri
                                  - required:
                                      - jwks
                                properties:
                                  authorizationEndpoint:
                                    description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                    type: string
                                  issuer:
                                    description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                    type: string
                                  jwks:
                                    description: JSON string with the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  jwksUri:
                                    description: URI for the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  tls:
                                    description: The TLS settings used by the clients to connect with the OIDC provider.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - files
                                            - required:
                                                - secretName
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                    properties:
                                      files:
                                        description: TLS key source from files.
                                        properties:
                                          caCertificates:
                                            description: File containing CA certificates to verify the certificates presented by the server.
                                            type: string
                                          clientCertificate:
                                            description: Certificate file to authenticate the client.
                                            type: string
                                          privateKey:
                                            description: Private key file associated with the client certificate.
                                            type: string
                                        type: object
                                      mode:
                                        enum:
                                          - DISABLED
                                          - SIMPLE
                                          - MUTUAL
                                        type: string
                                      secretName:
                                        description: TLS key source from a Kubernetes Secret.
                                        type: string
                                      subjectAltNames:
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  tokenEndpoint:
                                    description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                    type: string
                                required:
                                  - issuer
                                type: object
                              redirectPathMatcher:
                                description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                type: string
                              redirectUri:
                                description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                type: string
                              signoutPath:
                                description: The path to sign a user out, clearing their credential cookies.
                                type: string
                              useRefreshToken:
                                description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                nullable: true
                                type: boolean
                            required:
                              - clientId
                              - clientTokenSecret
                              - redirectUri
                              - provider
                            type: object
                          requireJwt:
                            description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                            nullable: true
                            type: boolean
                          rules:
                            description: List of rules how to authenticate an HTTP request.
                            properties:
                              jwt:
                                description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                items:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    audiences:
                                      description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                      items:
                                        type: string
                                      type: array
                                    fromCookies:
                                      description: List of cookie names from which JWT is expected.
                                      items:
                                        type: string
                                      type: array
                                    fromHeaders:
                                      description: This field specifies the locations to extract JWT token.
                                      items:
                                        properties:
                                          name:
                                            description: The HTTP header name.
                                            type: string
                                          prefix:
                                            description: The prefix that should be stripped before decoding the token.
                                            type: string
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    issuer:
                                      description: Identifies the issuer that issued the JWT.
                                      type: string
                                    jwks:
                                      description: JSON Web Key Set of public keys to validate signature of the JWT.
                                      type: string
                                    jwksUri:
                                      description: URL of the provider's public key set to validate signature of the JWT.
                                      type: string
                                    outputClaimToHeaders:
                                      description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                      items:
                                        properties:
                                          claim:
                                            description: The name of the claim to be copied from.
                                            type: string
                                          header:
                                            description: The name of the header to be created.
                                            type: string
                                        required:
                                          - header
                                          - claim
                                        type: object
                                      type: array
                                    outputPayloadToHeader:
                                      description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                type: array
                            type: object
                        type: object
                      authorization:
                        description: Configuration to authorize a request.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - external
                                - required:
                                    - local
                          - required:
                              - external
                          - required:
                              - local
                        properties:
                          external:
                            properties:
                              allowedUpstreamHeaders:
                                description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                items:
                                  type: string
                                type: array
                              includeRequestHeaders:
                                items:
                                  type: string
                                type: array
                              pathPrefix:
                                description: Sets a prefix to the value of authorization request header Path.
                                type: string
                              timeout:
                                description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                type: string
                              tls:
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              uri:
                                type: string
                            type: object
                          local:
                            properties:
                              rules:
                                items:
                                  properties:
                                    from:
                                      description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                      items:
                                        properties:
                                          jwt:
                                            description: JWT configuration to identity the subject.
                                            properties:
                                              iss:
                                                type: string
                                              other:
                                                additionalProperties:
                                                  type: string
                                                description: A set of arbitrary claims that are required to qualify the subject.
                                                type: object
                                              sub:
                                                type: string
                                            type: object
                                        type: object
                                      type: array
                                    name:
                                      description: A friendly name to identify the binding.
                                      type: string
                                    to:
                                      description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                      items:
                                        properties:
                                          methods:
                                            description: The HTTP methods that are allowed by this rule.
                                            items:
                                              type: string
                                            type: array
                                          paths:
                                            description: The request path where the request is made against.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                      hostname:
                        description: Hostname with which the service can be expected to be accessed by clients.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      port:
                        description: The port where the server is exposed.
                        type: integer
                      rateLimiting:
                        description: Configuration for rate limiting requests.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - settings
                                - required:
                                    - externalService
                                - required:
                                    - local
                          - required:
                              - settings
                          - required:
                              - externalService
                          - required:
                              - local
                        properties:
                          externalService:
                            description: Configure ratelimiting using an external ratelimit server.
                            properties:
                              domain:
                                description: The rate limit domain to use when calling the rate limit service.
                                type: string
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rateLimitServerUri:
                                description: The URI at which the external rate limit server can be reached.
                                type: string
                              rules:
                                description: A set of rate limit rules.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions that are to be applied for this rate limit configuration.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - sourceCluster
                                                - required:
                                                    - destinationCluster
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - requestHeaders
                                                - required:
                                                    - headerValueMatch
                                          - required:
                                              - sourceCluster
                                          - required:
                                              - destinationCluster
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - requestHeaders
                                          - required:
                                              - headerValueMatch
                                        properties:
                                          destinationCluster:
                                            description: Rate limit on destination envoy cluster.
                                            type: object
                                          headerValueMatch:
                                            description: Rate limit on the existence of certain request headers.
                                            properties:
                                              descriptorValue:
                                                description: The value to use in the descriptor entry.
                                                type: string
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              headers:
                                                additionalProperties:
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                                description: Specifies a set of headers that the rate limit action should match on.
                                                type: object
                                            required:
                                              - headers
                                              - descriptorValue
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on remote address of client.
                                            type: object
                                          requestHeaders:
                                            description: Rate limit on the value of certain request headers.
                                            properties:
                                              descriptorKey:
                                                description: The key to use in the descriptor entry.
                                                type: string
                                              headerName:
                                                description: The header name to be queried from the request headers.
                                                type: string
                                            required:
                                              - headerName
                                              - descriptorKey
                                            type: object
                                          sourceCluster:
                                            description: Rate limit on source envoy cluster.
                                            type: object
                                        type: object
                                      type: array
                                  required:
                                    - dimensions
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the external rate limit server RPC.
                                type: string
                              tls:
                                description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                            required:
                              - domain
                              - rateLimitServerUri
                              - rules
                            type: object
                          local:
                            description: Apply rate limits internally in the Envoy proxy.
                            properties:
                              maxWildcardDimensions:
                                description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                nullable: true
                                type: integer
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                nullable: true
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                nullable: true
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                nullable: true
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    tokenBucket:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        fillInterval:
                                          description: The fill interval that tokens are added to the bucket.
                                          type: string
                                        maxTokens:
                                          description: The maximum tokens that the bucket can hold.
                                          nullable: true
                                          type: integer
                                        tokensPerFill:
                                          description: The number of tokens added to the bucket during each fill interval.
                                          nullable: true
                                          type: integer
                                      required:
                                        - maxTokens
                                        - fillInterval
                                      type: object
                                  required:
                                    - dimensions
                                    - tokenBucket
                                  type: object
                                type: array
                            required:
                              - rules
                            type: object
                          settings:
                            properties:
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    limit:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        requestsPerUnit:
                                          description: Specifies the value of the rate limit.
                                          type: integer
                                        unit:
                                          description: Specifies the unit of time for rate limit.
                                          enum:
                                            - UNKNOWN
                                            - SECOND
                                            - MINUTE
                                            - HOUR
                                            - DAY
                                          type: string
                                      required:
                                        - requestsPerUnit
                                        - unit
                                      type: object
                                  required:
                                    - dimensions
                                    - limit
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the rate limit server RPC.
                                type: string
                            required:
                              - rules
                            type: object
                        type: object
                      routing:
                        description: Routing rules associated with HTTP traffic to this service.
                        properties:
                          corsPolicy:
                            description: Cross origin resource request policy settings for all routes.
                            properties:
                              allowCredentials:
                                description: Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials.
                                nullable: true
                                type: boolean
                              allowHeaders:
                                description: List of HTTP headers that can be used when requesting the resource.
                                items:
                                  type: string
                                type: array
                              allowMethods:
                                description: List of HTTP methods allowed to access the resource.
                                items:
                                  type: string
                                type: array
                              allowOrigin:
                                description: The list of origins that are allowed to perform CORS requests.
                                items:
                                  type: string
                                type: array
                              exposeHeaders:
                                description: A white list of HTTP headers that the browsers are allowed to access.
                                items:
                                  type: string
                                type: array
                              maxAge:
                                description: Specifies how long the results of a preflight request can be cached.
                                type: string
                            type: object
                          rules:
                            description: HTTP routes.
                            items:
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - route
                                      - required:
                                          - redirect
                                      - required:
                                          - directResponse
                                - required:
                                    - route
                                - required:
                                    - redirect
                                - required:
                                    - directResponse
                              properties:
                                directResponse:
                                  description: Return a fixed response.
                                  properties:
                                    body:
                                      description: Specifies the content of the response body.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - string
                                              - required:
                                                  - bytes
                                        - required:
                                            - string
                                        - required:
                                            - bytes
                                      properties:
                                        bytes:
                                          description: response body as base64 encoded bytes.
                                          format: binary
                                          type: string
                                        string:
                                          type: string
                                      type: object
                                    status:
                                      description: Specifies the HTTP response status to be returned.
                                      type: integer
                                  required:
                                    - status
                                  type: object
                                match:
                                  description: One or more match conditions (OR-ed).
                                  items:
                                    properties:
                                      headers:
                                        additionalProperties:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                            - required:
                                                - exact
                                            - required:
                                                - prefix
                                            - required:
                                                - regex
                                          properties:
                                            exact:
                                              description: Exact string match.
                                              type: string
                                            prefix:
                                              description: Prefix-based match.
                                              type: string
                                            regex:
                                              description: ECMAscript style regex-based match.
                                              type: string
                                          type: object
                                        description: The header keys must be lowercase and use hyphen as the separator, e.g.
                                        type: object
                                      uri:
                                        description: URI to match.
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                          - required:
                                              - exact
                                          - required:
                                              - prefix
                                          - required:
                                              - regex
                                        properties:
                                          exact:
                                            description: Exact string match.
                                            type: string
                                          prefix:
                                            description: Prefix-based match.
                                            type: string
                                          regex:
                                            description: ECMAscript style regex-based match.
                                            type: string
                                        type: object
                                    type: object
                                  type: array
                                modify:
                                  description: One or more mutations to be performed before forwarding.
                                  properties:
                                    headers:
                                      description: Add/remove/overwrite one or more HTTP headers in a request or response.
                                      properties:
                                        request:
                                          description: Header manipulation rules to apply before forwarding a request to the destination service.
                                          properties:
                                            add:
                                              additionalProperties:
                                                type: string
                                              description: Append the given values to the headers specified by keys (will create a comma-separated list of values).
                                              type: object
                                            remove:
                                              description: Remove a the specified headers.
                                              items:
                                                type: string
                                              type: array
                                            set:
                                              additionalProperties:
                                                type: string
                                              description: Overwrite the headers specified by key with the given values.
                                              type: object
                                          type: object
                                        response:
                                          description: Header manipulation rules to apply before returning a response to the caller.
                                          properties:
                                            add:
                                              additionalProperties:
                                                type: string
                                              description: Append the given values to the headers specified by keys (will create a comma-separated list of values).
                                              type: object
                                            remove:
                                              description: Remove a the specified headers.
                                              items:
                                                type: string
                                              type: array
                                            set:
                                              additionalProperties:
                                                type: string
                                              description: Overwrite the headers specified by key with the given values.
                                              type: object
                                          type: object
                                      type: object
                                    rewrite:
                                      description: Rewrite the HTTP Host or URL or both.
                                      properties:
                                        authority:
                                          description: Rewrite the Authority/Host header with this value.
                                          type: string
                                        uri:
                                          description: Rewrite the path (or the prefix) portion of the URI with this value.
                                          type: string
                                      type: object
                                  type: object
                                redirect:
                                  description: Redirect the request to a different host or URL or both.
                                  properties:
                                    authority:
                                      description: On a redirect, overwrite the Authority/Host portion of the URL with this value.
                                      type: string
                                    port:
                                      type: integer
                                    redirectCode:
                                      description: On a redirect, Specifies the HTTP status code to use in the redirect response.
                                      type: integer
                                    scheme:
                                      description: On a redirect, overwrite the scheme with this one.
                                      type: string
                                    uri:
                                      description: On a redirect, overwrite the Path portion of the URL with this value.
                                      type: string
                                  type: object
                                route:
                                  description: Forward the request to the specified destination(s).
                                  properties:
                                    host:
                                      description: The destination service in `<namespace>/<fqdn>` format for `IngressGateway` resources.
                                      type: string
                                    port:
                                      description: The port on the service to forward the request to.
                                      type: integer
                                  required:
                                    - host
                                  type: object
                              type: object
                            type: array
                        required:
                          - rules
                        type: object
                      tls:
                        description: TLS certificate info.
                        properties:
                          cipherSuites:
                            description: List of cipher suites to be used for TLS connections.
                            items:
                              type: string
                            type: array
                          files:
                            description: Load the keys and certificates from files accessible to the ingress gateway workload.
                            properties:
                              caCertificates:
                                type: string
                              privateKey:
                                type: string
                              serverCertificate:
                                type: string
                            type: object
                          maxProtocolVersion:
                            description: Set the maximum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          minProtocolVersion:
                            description: Set the minimum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          mode:
                            description: Set this to SIMPLE, or MUTUAL for one-way TLS, mutual TLS respectively.
                            enum:
                              - DISABLED
                              - SIMPLE
                              - MUTUAL
                              - OPTIONAL_MUTUAL
                            type: string
                          secretName:
                            description: The name of the secret in Kubernetes that holds the TLS certs including the CA certificates.
                            type: string
                          subjectAltNames:
                            description: List of Subject Alternative Names (SAN) from the client's certificate that are accepted for client identity verification during the TLS handshake.
                            items:
                              type: string
                            type: array
                        type: object
                      xxxOldAuthentication:
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - jwt
                          - required:
                              - jwt
                        properties:
                          jwt:
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                              - required:
                                  - jwksUri
                              - required:
                                  - jwks
                            properties:
                              audiences:
                                description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                items:
                                  type: string
                                type: array
                              issuer:
                                description: Identifies the issuer that issued the JWT.
                                type: string
                              jwks:
                                description: JSON Web Key Set of public keys to validate signature of the JWT.
                                type: string
                              jwksUri:
                                description: URL of the provider's public key set to validate signature of the JWT.
                                type: string
                            required:
                              - issuer
                            type: object
                        type: object
                      xxxOldAuthorization:
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - external
                                - required:
                                    - local
                          - required:
                              - external
                          - required:
                              - local
                        properties:
                          external:
                            properties:
                              includeRequestHeaders:
                                items:
                                  type: string
                                type: array
                              uri:
                                type: string
                            type: object
                          local:
                            properties:
                              rules:
                                items:
                                  properties:
                                    from:
                                      description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                      items:
                                        properties:
                                          jwt:
                                            description: JWT configuration to identity the subject.
                                            properties:
                                              iss:
                                                type: string
                                              other:
                                                additionalProperties:
                                                  type: string
                                                description: A set of arbitrary claims that are required to qualify the subject.
                                                type: object
                                              sub:
                                                type: string
                                            type: object
                                        type: object
                                      type: array
                                    name:
                                      description: A friendly name to identify the binding.
                                      type: string
                                    to:
                                      description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                      items:
                                        properties:
                                          methods:
                                            description: The HTTP methods that are allowed by this rule.
                                            items:
                                              type: string
                                            type: array
                                          paths:
                                            description: The request path where the request is made against.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                    required:
                      - name
                      - port
                      - hostname
                      - routing
                    type: object
                  type: array
                tcp:
                  description: One or more non-HTTP and non-passthrough servers which use TCP based protocols.
                  items:
                    properties:
                      hostname:
                        description: Hostname to identify the service.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      port:
                        description: The port where the server is exposed.
                        type: integer
                      route:
                        description: Forward the connection to the specified destination.
                        properties:
                          host:
                            description: The destination service in `<namespace>/<fqdn>` format for `IngressGateway` resources.
                            type: string
                          port:
                            description: The port on the service to forward the request to.
                            type: integer
                        required:
                          - host
                        type: object
                      tls:
                        properties:
                          cipherSuites:
                            description: List of cipher suites to be used for TLS connections.
                            items:
                              type: string
                            type: array
                          files:
                            description: Load the keys and certificates from files accessible to the ingress gateway workload.
                            properties:
                              caCertificates:
                                type: string
                              privateKey:
                                type: string
                              serverCertificate:
                                type: string
                            type: object
                          maxProtocolVersion:
                            description: Set the maximum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          minProtocolVersion:
                            description: Set the minimum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          mode:
                            description: Set this to SIMPLE, or MUTUAL for one-way TLS, mutual TLS respectively.
                            enum:
                              - DISABLED
                              - SIMPLE
                              - MUTUAL
                              - OPTIONAL_MUTUAL
                            type: string
                          secretName:
                            description: The name of the secret in Kubernetes that holds the TLS certs including the CA certificates.
                            type: string
                          subjectAltNames:
                            description: List of Subject Alternative Names (SAN) from the client's certificate that are accepted for client identity verification during the TLS handshake.
                            items:
                              type: string
                            type: array
                        type: object
                    required:
                      - name
                      - port
                      - hostname
                    type: object
                  type: array
                tlsPassthrough:
                  description: One or more TLS servers exposed by the gateway.
                  items:
                    properties:
                      hostname:
                        description: Hostname with which the service can be expected to be accessed by clients.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      port:
                        description: The port where the server is exposed.
                        type: integer
                      route:
                        description: Forward the connection to the specified destination.
                        properties:
                          host:
                            description: The destination service in `<namespace>/<fqdn>` format for `IngressGateway` resources.
                            type: string
                          port:
                            description: The port on the service to forward the request to.
                            type: integer
                        required:
                          - host
                        type: object
                    required:
                      - name
                      - port
                      - hostname
                      - route
                    type: object
                  type: array
                waf:
                  description: WAF settings to be enabled for traffic passing through the HttpServer.
                  properties:
                    rules:
                      description: Rules to be leveraged by WAF.
                      items:
                        type: string
                      type: array
                  required:
                    - rules
                  type: object
                workloadSelector:
                  description: Specify the gateway workloads (pod labels and Kubernetes namespace) under the gateway group that should be configured with this gateway.
                  properties:
                    labels:
                      additionalProperties:
                        type: string
                      description: One or more labels that indicate a specific set of pods/VMs in the namespace.
                      type: object
                    namespace:
                      description: The namespace where the workload resides.
                      type: string
                  required:
                    - namespace
                    - labels
                  type: object
              required:
                - workloadSelector
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: installgatewaytemplates.gateway.tsb.tetrate.io
spec:
  group: gateway.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - gateway-tsb-tetrate-io
    kind: InstallGatewayTemplate
    listKind: InstallGatewayTemplateList
    plural: installgatewaytemplates
    shortNames:
      - tigtpl
    singular: installgatewaytemplate
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.deletionProtectionEnabled
          name: Deletion Protection
          type: boolean
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: :::warning Alpha early access The install gateway template feature is in an early access alpha state.
              oneOf:
                - not:
                    anyOf:
                      - required:
                          - environmentSelector
                      - required:
                          - clusterSelector
                      - required:
                          - allClustersSelector
                - required:
                    - environmentSelector
                - required:
                    - clusterSelector
                - required:
                    - allClustersSelector
              properties:
                allClustersSelector:
                  description: Selects all the onboarded clusters on TSB.
                  type: boolean
                clusterSelector:
                  description: Selects the gateways targeting the clusters based on cluster specific details (e.g.
                  oneOf:
                    - not:
                        anyOf:
                          - required:
                              - name
                          - required:
                              - labelsSelector
                    - required:
                        - name
                    - required:
                        - labelsSelector
                  properties:
                    labelsSelector:
                      description: Matches the minimum required set of labels defined in the cluster metadata.
                      properties:
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                    name:
                      description: Matches the name of the cluster.
                      type: string
                    namespaceSelector:
                      description: Selector to target namespaces in the matching cluster.
                      items:
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - name
                                - required:
                                    - labelsSelector
                          - required:
                              - name
                          - required:
                              - labelsSelector
                        properties:
                          labelsSelector:
                            description: The minimum required namespace labels.
                            properties:
                              labels:
                                additionalProperties:
                                  type: string
                                type: object
                            type: object
                          name:
                            description: The namespace name.
                            type: string
                        type: object
                      type: array
                  type: object
                deletionProtectionEnabled:
                  description: When set, prevents the resource from being deleted.
                  type: boolean
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                environmentSelector:
                  description: Selects the gateways targeting the clusters based on environment details, such as the provider.
                  properties:
                    provider:
                      description: The provider name to match against the Cluster State provider field (case-insensitive match).
                      type: string
                  required:
                    - provider
                  type: object
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                gatewaySpec:
                  description: The gateway spec to apply to the created gateway.
                  oneOf:
                    - not:
                        anyOf:
                          - required:
                              - concurrency
                    - required:
                        - concurrency
                  properties:
                    concurrency:
                      description: Number of Envoy worker threads to run.
                      format: int32
                      type: integer
                    connectionDrainDuration:
                      description: The amount of time the gateway will wait on shutdown for connections to complete before terminating the gateway.
                      type: string
                    kubeSpec:
                      description: Configure Kubernetes specific settings.
                      properties:
                        deployment:
                          allOf:
                            - oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - podSecurityContext
                                - required:
                                    - podSecurityContext
                            - oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - containerSecurityContext
                                - required:
                                    - containerSecurityContext
                          properties:
                            affinity:
                              description: The scheduling constraints for the pod.
                              properties:
                                nodeAffinity:
                                  description: Group of node affinity scheduling rules.
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                      items:
                                        properties:
                                          preference:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                type: array
                                              matchFields:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                type: array
                                            type: object
                                          weight:
                                            format: int32
                                            type: integer
                                        type: object
                                      type: array
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      properties:
                                        nodeSelectorTerms:
                                          items:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                type: array
                                              matchFields:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                      type: object
                                  type: object
                                podAffinity:
                                  description: Group of inter-pod affinity scheduling rules.
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      items:
                                        properties:
                                          podAffinityTerm:
                                            properties:
                                              labelSelector:
                                                properties:
                                                  matchExpressions:
                                                    description: matchExpressions is a list of label selector requirements.
                                                    items:
                                                      properties:
                                                        key:
                                                          description: key is the label key that the selector applies to.
                                                          type: string
                                                        operator:
                                                          description: operator represents a key's relationship to a set of values.
                                                          type: string
                                                        values:
                                                          description: values is an array of string values.
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    type: array
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: matchLabels is a map of {key,value} pairs.
                                                    type: object
                                                type: object
                                              namespaces:
                                                items:
                                                  type: string
                                                type: array
                                              topologyKey:
                                                type: string
                                            type: object
                                          weight:
                                            format: int32
                                            type: integer
                                        type: object
                                      type: array
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      items:
                                        properties:
                                          labelSelector:
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements.
                                                items:
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: operator represents a key's relationship to a set of values.
                                                      type: string
                                                    values:
                                                      description: values is an array of string values.
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                type: array
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: matchLabels is a map of {key,value} pairs.
                                                type: object
                                            type: object
                                          namespaces:
                                            items:
                                              type: string
                                            type: array
                                          topologyKey:
                                            type: string
                                        type: object
                                      type: array
                                  type: object
                                podAntiAffinity:
                                  description: Group of inter-pod anti-affinity scheduling rules.
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      items:
                                        properties:
                                          podAffinityTerm:
                                            properties:
                                              labelSelector:
                                                properties:
                                                  matchExpressions:
                                                    description: matchExpressions is a list of label selector requirements.
                                                    items:
                                                      properties:
                                                        key:
                                                          description: key is the label key that the selector applies to.
                                                          type: string
                                                        operator:
                                                          description: operator represents a key's relationship to a set of values.
                                                          type: string
                                                        values:
                                                          description: values is an array of string values.
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    type: array
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: matchLabels is a map of {key,value} pairs.
                                                    type: object
                                                type: object
                                              namespaces:
                                                items:
                                                  type: string
                                                type: array
                                              topologyKey:
                                                type: string
                                            type: object
                                          weight:
                                            format: int32
                                            type: integer
                                        type: object
                                      type: array
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      items:
                                        properties:
                                          labelSelector:
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements.
                                                items:
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: operator represents a key's relationship to a set of values.
                                                      type: string
                                                    values:
                                                      description: values is an array of string values.
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                type: array
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: matchLabels is a map of {key,value} pairs.
                                                type: object
                                            type: object
                                          namespaces:
                                            items:
                                              type: string
                                            type: array
                                          topologyKey:
                                            type: string
                                        type: object
                                      type: array
                                  type: object
                              type: object
                            containerSecurityContext:
                              allOf:
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - capabilities
                                    - required:
                                        - capabilities
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - privileged
                                    - required:
                                        - privileged
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - seLinuxOptions
                                    - required:
                                        - seLinuxOptions
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - windowsOptions
                                    - required:
                                        - windowsOptions
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - runAsUser
                                    - required:
                                        - runAsUser
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - runAsGroup
                                    - required:
                                        - runAsGroup
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - runAsNonRoot
                                    - required:
                                        - runAsNonRoot
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - readOnlyRootFilesystem
                                    - required:
                                        - readOnlyRootFilesystem
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - allowPrivilegeEscalation
                                    - required:
                                        - allowPrivilegeEscalation
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - procMount
                                    - required:
                                        - procMount
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - seccompProfile
                                    - required:
                                        - seccompProfile
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            env:
                              description: Environment variables for all containers in the deployment.
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          localObjectReference:
                                            properties:
                                              name:
                                                description: Name of the referent.
                                                type: string
                                            type: object
                                          optional:
                                            type: boolean
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            properties:
                                              intVal:
                                                nullable: true
                                                type: integer
                                              strVal:
                                                nullable: true
                                                type: string
                                              type:
                                                type: integer
                                            type: object
                                          resource:
                                            type: string
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          localObjectReference:
                                            properties:
                                              name:
                                                description: Name of the referent.
                                                type: string
                                            type: object
                                          optional:
                                            type: boolean
                                        type: object
                                    type: object
                                type: object
                              type: array
                            hpaSpec:
                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                              properties:
                                maxReplicas:
                                  format: int32
                                  type: integer
                                metrics:
                                  items:
                                    properties:
                                      external:
                                        properties:
                                          metricName:
                                            type: string
                                          metricSelector:
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements.
                                                items:
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: operator represents a key's relationship to a set of values.
                                                      type: string
                                                    values:
                                                      description: values is an array of string values.
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                type: array
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: matchLabels is a map of {key,value} pairs.
                                                type: object
                                            type: object
                                          targetAverageValue:
                                            properties:
                                              intVal:
                                                nullable: true
                                                type: integer
                                              strVal:
                                                nullable: true
                                                type: string
                                              type:
                                                type: integer
                                            type: object
                                          targetValue:
                                            properties:
                                              intVal:
                                                nullable: true
                                                type: integer
                                              strVal:
                                                nullable: true
                                                type: string
                                              type:
                                                type: integer
                                            type: object
                                        type: object
                                      object:
                                        properties:
                                          averageValue:
                                            properties:
                                              intVal:
                                                nullable: true
                                                type: integer
                                              strVal:
                                                nullable: true
                                                type: string
                                              type:
                                                type: integer
                                            type: object
                                          metricName:
                                            type: string
                                          selector:
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements.
                                                items:
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: operator represents a key's relationship to a set of values.
                                                      type: string
                                                    values:
                                                      description: values is an array of string values.
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                type: array
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: matchLabels is a map of {key,value} pairs.
                                                type: object
                                            type: object
                                          target:
                                            properties:
                                              apiVersion:
                                                type: string
                                              kind:
                                                type: string
                                              name:
                                                type: string
                                            type: object
                                          targetValue:
                                            properties:
                                              intVal:
                                                nullable: true
                                                type: integer
                                              strVal:
                                                nullable: true
                                                type: string
                                              type:
                                                type: integer
                                            type: object
                                        type: object
                                      pods:
                                        properties:
                                          metricName:
                                            type: string
                                          selector:
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements.
                                                items:
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: operator represents a key's relationship to a set of values.
                                                      type: string
                                                    values:
                                                      description: values is an array of string values.
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                type: array
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: matchLabels is a map of {key,value} pairs.
                                                type: object
                                            type: object
                                          targetAverageValue:
                                            properties:
                                              intVal:
                                                nullable: true
                                                type: integer
                                              strVal:
                                                nullable: true
                                                type: string
                                              type:
                                                type: integer
                                            type: object
                                        type: object
                                      resource:
                                        properties:
                                          name:
                                            type: string
                                          target:
                                            properties:
                                              averageUtilization:
                                                format: int32
                                                type: integer
                                              averageValue:
                                                properties:
                                                  intVal:
                                                    nullable: true
                                                    type: integer
                                                  strVal:
                                                    nullable: true
                                                    type: string
                                                  type:
                                                    type: integer
                                                type: object
                                              type:
                                                type: string
                                              value:
                                                properties:
                                                  intVal:
                                                    nullable: true
                                                    type: integer
                                                  strVal:
                                                    nullable: true
                                                    type: string
                                                  type:
                                                    type: integer
                                                type: object
                                            type: object
                                          targetAverageUtilization:
                                            properties:
                                              intVal:
                                                nullable: true
                                                type: integer
                                              strVal:
                                                nullable: true
                                                type: string
                                              type:
                                                type: integer
                                            type: object
                                          targetAverageValue:
                                            properties:
                                              intVal:
                                                nullable: true
                                                type: integer
                                              strVal:
                                                nullable: true
                                                type: string
                                              type:
                                                type: integer
                                            type: object
                                        type: object
                                      type:
                                        type: string
                                    type: object
                                  type: array
                                minReplicas:
                                  format: int32
                                  type: integer
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels are an unstructured key-value map stored with the Deployment.
                              type: object
                            podAnnotations:
                              additionalProperties:
                                type: string
                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                              type: object
                            podSecurityContext:
                              allOf:
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - seLinuxOptions
                                    - required:
                                        - seLinuxOptions
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - runAsUser
                                    - required:
                                        - runAsUser
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - runAsNonRoot
                                    - required:
                                        - runAsNonRoot
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - fsGroup
                                    - required:
                                        - fsGroup
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - runAsGroup
                                    - required:
                                        - runAsGroup
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - windowsOptions
                                    - required:
                                        - windowsOptions
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - fsGroupChangePolicy
                                    - required:
                                        - fsGroupChangePolicy
                                - oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - seccompProfile
                                    - required:
                                        - seccompProfile
                              properties:
                                fsGroup:
                                  type: integer
                                fsGroupChangePolicy:
                                  type: string
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  type: object
                                supplementalGroups:
                                  items:
                                    type: integer
                                  type: array
                                sysctls:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    type: object
                                  type: array
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            replicaCount:
                              description: Number of desired pods.
                              type: integer
                            resources:
                              description: Compute Resources required by the primary container in the deployment PodSpec.
                              properties:
                                limits:
                                  additionalProperties:
                                    type: string
                                  type: object
                                requests:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            strategy:
                              description: The deployment strategy to use to replace existing pods with new ones.
                              properties:
                                rollingUpdate:
                                  properties:
                                    maxSurge:
                                      properties:
                                        intVal:
                                          nullable: true
                                          type: integer
                                        strVal:
                                          nullable: true
                                          type: string
                                        type:
                                          type: integer
                                      type: object
                                    maxUnavailable:
                                      properties:
                                        intVal:
                                          nullable: true
                                          type: integer
                                        strVal:
                                          nullable: true
                                          type: string
                                        type:
                                          type: integer
                                      type: object
                                  type: object
                                type:
                                  type: string
                              type: object
                            tolerations:
                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                              items:
                                properties:
                                  effect:
                                    description: Effect indicates the taint effect to match.
                                    type: string
                                  key:
                                    description: Key is the taint key that the toleration applies to.
                                    type: string
                                  operator:
                                    description: Operator represents a key's relationship to the value.
                                    type: string
                                  tolerationSeconds:
                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                    type: integer
                                  value:
                                    description: Value is the taint value the toleration matches to.
                                    type: string
                                type: object
                              type: array
                          type: object
                        overlays:
                          items:
                            properties:
                              apiVersion:
                                description: Resource API version.
                                type: string
                              kind:
                                description: Resource kind.
                                type: string
                              name:
                                description: Name of resource.
                                type: string
                              patches:
                                description: List of patches to apply to resource.
                                items:
                                  properties:
                                    path:
                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                      type: string
                                    value:
                                      description: Value to add, delete or replace.
                                      x-kubernetes-preserve-unknown-fields: true
                                  type: object
                                type: array
                            type: object
                          type: array
                        service:
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: Pod annotations are an unstructured key value map stored with the service.
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels are an unstructured key value map stored with the deployment.
                              type: object
                            ports:
                              description: List of ports exposed by the component's service.
                              items:
                                properties:
                                  name:
                                    type: string
                                  nodePort:
                                    format: int32
                                    type: integer
                                  port:
                                    format: int32
                                    type: integer
                                  protocol:
                                    type: string
                                  targetPort:
                                    properties:
                                      intVal:
                                        nullable: true
                                        type: integer
                                      strVal:
                                        nullable: true
                                        type: string
                                      type:
                                        type: integer
                                    type: object
                                type: object
                              type: array
                            type:
                              description: Determines how the Service is exposed.
                              type: string
                          type: object
                        serviceAccount:
                          properties:
                            imagePullSecrets:
                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                              items:
                                properties:
                                  name:
                                    description: Name of the referent.
                                    type: string
                                type: object
                              type: array
                          type: object
                      type: object
                    revision:
                      description: Specifies the Istio revision to reconcile with.
                      type: string
                    type:
                      description: Type defines the type of gateway deployment created as part of this gateway install object.
                      enum:
                        - UNIFIED
                        - INGRESS
                        - EGRESS
                        - EASTWEST
                      type: string
                  type: object
                gatewayWorkloadSelector:
                  description: Matches the workload selector defined by a Gateway configuration.
                  properties:
                    labelsSelector:
                      description: The minimum required workload selector labels.
                      properties:
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                  required:
                    - labelsSelector
                  type: object
                priority:
                  description: Indicates when a template must be chosen in case of multiple selectors of the same type matching a single gateway configuration.
                  format: int32
                  type: integer
              required:
                - gatewaySpec
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: sharedgatewayreferencegrants.gateway.tsb.tetrate.io
spec:
  group: gateway.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - gateway-reference-grant-tsb-tetrate-io
    kind: SharedGatewayReferenceGrant
    listKind: SharedGatewayReferenceGrantList
    plural: sharedgatewayreferencegrants
    shortNames:
      - tgrg
    singular: sharedgatewayreferencegrant
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/gatewayGroup']
          name: Gateway-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: Shared Gateway Reference Grants allows sharing a Gateway with other Workspaces or Gateway Groups, so that the referencing Workspaces or Gateway Groups can apply their own configurations to the shared Gateway.
              properties:
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                from:
                  description: The fully-qualified name of the resource that is being granted access to the shared Gateway.
                  properties:
                    fqn:
                      description: The fully-qualified name of the resource that is being granted access to the shared Gateway.
                      items:
                        type: string
                      type: array
                  required:
                    - fqn
                  type: object
                gatewaySelectors:
                  description: A list of Gateway Selectors that specify which Gateways are being shared.
                  items:
                    oneOf:
                      - not:
                          anyOf:
                            - required:
                                - nameSelector
                            - required:
                                - appLabelSelector
                      - required:
                          - nameSelector
                      - required:
                          - appLabelSelector
                    properties:
                      appLabelSelector:
                        description: AppLabelSelector specifies the app label and namespace of the Gateway to be shared.
                        properties:
                          appLabel:
                            description: The app label and namespace of the Gateway to be shared.
                            type: string
                          namespace:
                            description: The namespace of the Gateway to be shared.
                            type: string
                        required:
                          - appLabel
                          - namespace
                        type: object
                      nameSelector:
                        description: NameSelector specifies the name of the Gateway to be shared in the same Workspace or Gateway Group as the SharedGatewayReferenceGrant.
                        properties:
                          name:
                            description: The name of the Gateway to be shared.
                            type: string
                        required:
                          - name
                        type: object
                    type: object
                  type: array
                updateProtectionEnabled:
                  description: When set, prevents the resource from being deleted or updated.
                  type: boolean
              required:
                - from
                - gatewaySelectors
              type: object
          type: object
      served: true
      storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: tier1gateways.gateway.tsb.tetrate.io
spec:
  group: gateway.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - gateway-tsb-tetrate-io
    kind: Tier1Gateway
    listKind: Tier1GatewayList
    plural: tier1gateways
    shortNames:
      - tt1
    singular: tier1gateway
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/gatewayGroup']
          name: Gateway-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: :::warning Deprecation The functionality provided by the `Tier1Gateway` is now provided in `Gateway` object, and using it is the recommended approach.
              properties:
                configGenerationMetadata:
                  description: Metadata values that will be add into the Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                extension:
                  description: Extensions specifies all the WasmExtensions assigned to this Tier1Gateway with the specific configuration for each extension.
                  items:
                    properties:
                      config:
                        description: Configuration parameters sent to the WASM plugin execution.
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      fqn:
                        description: Fqn of the extension to be executed.
                        type: string
                      match:
                        description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                        items:
                          properties:
                            mode:
                              description: Criteria for selecting traffic by their direction.
                              enum:
                                - UNDEFINED
                                - CLIENT
                                - SERVER
                                - CLIENT_AND_SERVER
                              type: string
                            ports:
                              description: Criteria for selecting traffic by their destination port.
                              items:
                                properties:
                                  number:
                                    type: integer
                                required:
                                  - number
                                type: object
                              type: array
                          type: object
                        type: array
                    required:
                      - fqn
                    type: object
                  type: array
                externalServers:
                  description: One or more servers exposed by the gateway externally.
                  items:
                    properties:
                      authentication:
                        description: Authentication is used to configure the authentication of end-user credentials like JWT.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - jwt
                                - required:
                                    - rules
                          - required:
                              - jwt
                          - required:
                              - rules
                        properties:
                          jwt:
                            description: Authenticate an HTTP request from a JWT Token attached to it.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                              - required:
                                  - jwksUri
                              - required:
                                  - jwks
                            properties:
                              audiences:
                                description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                items:
                                  type: string
                                type: array
                              fromCookies:
                                description: List of cookie names from which JWT is expected.
                                items:
                                  type: string
                                type: array
                              fromHeaders:
                                description: This field specifies the locations to extract JWT token.
                                items:
                                  properties:
                                    name:
                                      description: The HTTP header name.
                                      type: string
                                    prefix:
                                      description: The prefix that should be stripped before decoding the token.
                                      type: string
                                  required:
                                    - name
                                  type: object
                                type: array
                              issuer:
                                description: Identifies the issuer that issued the JWT.
                                type: string
                              jwks:
                                description: JSON Web Key Set of public keys to validate signature of the JWT.
                                type: string
                              jwksUri:
                                description: URL of the provider's public key set to validate signature of the JWT.
                                type: string
                              outputClaimToHeaders:
                                description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                items:
                                  properties:
                                    claim:
                                      description: The name of the claim to be copied from.
                                      type: string
                                    header:
                                      description: The name of the header to be created.
                                      type: string
                                  required:
                                    - header
                                    - claim
                                  type: object
                                type: array
                              outputPayloadToHeader:
                                description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                type: string
                            required:
                              - issuer
                            type: object
                          oidc:
                            properties:
                              authScopes:
                                description: Optional list of OAuth scopes to be claimed in the authorization request.
                                items:
                                  type: string
                                type: array
                              authType:
                                description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                enum:
                                  - DEFAULT_AUTH_TYPE
                                  - URL_ENCODED_BODY
                                  - BASIC_AUTH
                                type: string
                              clientId:
                                description: The client_id to be used in the authorize calls.
                                type: string
                              clientTokenSecret:
                                description: The name of the Kubernetes secret containing the client secret.
                                type: string
                              grantType:
                                enum:
                                  - DEFAULT_GRANT_TYPE
                                  - AUTHORIZATION_CODE
                                type: string
                              provider:
                                description: The OIDC Provider configuration.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - jwksUri
                                        - required:
                                            - jwks
                                  - required:
                                      - jwksUri
                                  - required:
                                      - jwks
                                properties:
                                  authorizationEndpoint:
                                    description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                    type: string
                                  issuer:
                                    description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                    type: string
                                  jwks:
                                    description: JSON string with the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  jwksUri:
                                    description: URI for the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  tls:
                                    description: The TLS settings used by the clients to connect with the OIDC provider.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - files
                                            - required:
                                                - secretName
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                    properties:
                                      files:
                                        description: TLS key source from files.
                                        properties:
                                          caCertificates:
                                            description: File containing CA certificates to verify the certificates presented by the server.
                                            type: string
                                          clientCertificate:
                                            description: Certificate file to authenticate the client.
                                            type: string
                                          privateKey:
                                            description: Private key file associated with the client certificate.
                                            type: string
                                        type: object
                                      mode:
                                        enum:
                                          - DISABLED
                                          - SIMPLE
                                          - MUTUAL
                                        type: string
                                      secretName:
                                        description: TLS key source from a Kubernetes Secret.
                                        type: string
                                      subjectAltNames:
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  tokenEndpoint:
                                    description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                    type: string
                                required:
                                  - issuer
                                type: object
                              redirectPathMatcher:
                                description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                type: string
                              redirectUri:
                                description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                type: string
                              signoutPath:
                                description: The path to sign a user out, clearing their credential cookies.
                                type: string
                              useRefreshToken:
                                description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                nullable: true
                                type: boolean
                            required:
                              - clientId
                              - clientTokenSecret
                              - redirectUri
                              - provider
                            type: object
                          requireJwt:
                            description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                            nullable: true
                            type: boolean
                          rules:
                            description: List of rules how to authenticate an HTTP request.
                            properties:
                              jwt:
                                description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                items:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    audiences:
                                      description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                      items:
                                        type: string
                                      type: array
                                    fromCookies:
                                      description: List of cookie names from which JWT is expected.
                                      items:
                                        type: string
                                      type: array
                                    fromHeaders:
                                      description: This field specifies the locations to extract JWT token.
                                      items:
                                        properties:
                                          name:
                                            description: The HTTP header name.
                                            type: string
                                          prefix:
                                            description: The prefix that should be stripped before decoding the token.
                                            type: string
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    issuer:
                                      description: Identifies the issuer that issued the JWT.
                                      type: string
                                    jwks:
                                      description: JSON Web Key Set of public keys to validate signature of the JWT.
                                      type: string
                                    jwksUri:
                                      description: URL of the provider's public key set to validate signature of the JWT.
                                      type: string
                                    outputClaimToHeaders:
                                      description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                      items:
                                        properties:
                                          claim:
                                            description: The name of the claim to be copied from.
                                            type: string
                                          header:
                                            description: The name of the header to be created.
                                            type: string
                                        required:
                                          - header
                                          - claim
                                        type: object
                                      type: array
                                    outputPayloadToHeader:
                                      description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                type: array
                            type: object
                        type: object
                      authorization:
                        description: Authorization is used to configure authorization of end users.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - external
                                - required:
                                    - local
                          - required:
                              - external
                          - required:
                              - local
                        properties:
                          external:
                            properties:
                              allowedUpstreamHeaders:
                                description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                items:
                                  type: string
                                type: array
                              includeRequestHeaders:
                                items:
                                  type: string
                                type: array
                              pathPrefix:
                                description: Sets a prefix to the value of authorization request header Path.
                                type: string
                              timeout:
                                description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                type: string
                              tls:
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              uri:
                                type: string
                            type: object
                          local:
                            properties:
                              rules:
                                items:
                                  properties:
                                    from:
                                      description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                      items:
                                        properties:
                                          jwt:
                                            description: JWT configuration to identity the subject.
                                            properties:
                                              iss:
                                                type: string
                                              other:
                                                additionalProperties:
                                                  type: string
                                                description: A set of arbitrary claims that are required to qualify the subject.
                                                type: object
                                              sub:
                                                type: string
                                            type: object
                                        type: object
                                      type: array
                                    name:
                                      description: A friendly name to identify the binding.
                                      type: string
                                    to:
                                      description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                      items:
                                        properties:
                                          methods:
                                            description: The HTTP methods that are allowed by this rule.
                                            items:
                                              type: string
                                            type: array
                                          paths:
                                            description: The request path where the request is made against.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                      clusters:
                        description: The destination clusters that contain ingress gateways exposing the hostname.
                        items:
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels associated with the cluster.
                              type: object
                            name:
                              description: The name of the destination cluster.
                              type: string
                            network:
                              description: The network associated with the destination clusters.
                              type: string
                            weight:
                              description: The weight for traffic to a given destination.
                              type: integer
                          type: object
                        type: array
                      hostname:
                        description: Hostname with which the service can be expected to be accessed by clients.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      port:
                        description: The port where the server is exposed.
                        type: integer
                      rateLimiting:
                        description: Configuration for rate limiting requests.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - settings
                                - required:
                                    - externalService
                                - required:
                                    - local
                          - required:
                              - settings
                          - required:
                              - externalService
                          - required:
                              - local
                        properties:
                          externalService:
                            description: Configure ratelimiting using an external ratelimit server.
                            properties:
                              domain:
                                description: The rate limit domain to use when calling the rate limit service.
                                type: string
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rateLimitServerUri:
                                description: The URI at which the external rate limit server can be reached.
                                type: string
                              rules:
                                description: A set of rate limit rules.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions that are to be applied for this rate limit configuration.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - sourceCluster
                                                - required:
                                                    - destinationCluster
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - requestHeaders
                                                - required:
                                                    - headerValueMatch
                                          - required:
                                              - sourceCluster
                                          - required:
                                              - destinationCluster
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - requestHeaders
                                          - required:
                                              - headerValueMatch
                                        properties:
                                          destinationCluster:
                                            description: Rate limit on destination envoy cluster.
                                            type: object
                                          headerValueMatch:
                                            description: Rate limit on the existence of certain request headers.
                                            properties:
                                              descriptorValue:
                                                description: The value to use in the descriptor entry.
                                                type: string
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              headers:
                                                additionalProperties:
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                                description: Specifies a set of headers that the rate limit action should match on.
                                                type: object
                                            required:
                                              - headers
                                              - descriptorValue
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on remote address of client.
                                            type: object
                                          requestHeaders:
                                            description: Rate limit on the value of certain request headers.
                                            properties:
                                              descriptorKey:
                                                description: The key to use in the descriptor entry.
                                                type: string
                                              headerName:
                                                description: The header name to be queried from the request headers.
                                                type: string
                                            required:
                                              - headerName
                                              - descriptorKey
                                            type: object
                                          sourceCluster:
                                            description: Rate limit on source envoy cluster.
                                            type: object
                                        type: object
                                      type: array
                                  required:
                                    - dimensions
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the external rate limit server RPC.
                                type: string
                              tls:
                                description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                            required:
                              - domain
                              - rateLimitServerUri
                              - rules
                            type: object
                          local:
                            description: Apply rate limits internally in the Envoy proxy.
                            properties:
                              maxWildcardDimensions:
                                description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                nullable: true
                                type: integer
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                nullable: true
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                nullable: true
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                nullable: true
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    tokenBucket:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        fillInterval:
                                          description: The fill interval that tokens are added to the bucket.
                                          type: string
                                        maxTokens:
                                          description: The maximum tokens that the bucket can hold.
                                          nullable: true
                                          type: integer
                                        tokensPerFill:
                                          description: The number of tokens added to the bucket during each fill interval.
                                          nullable: true
                                          type: integer
                                      required:
                                        - maxTokens
                                        - fillInterval
                                      type: object
                                  required:
                                    - dimensions
                                    - tokenBucket
                                  type: object
                                type: array
                            required:
                              - rules
                            type: object
                          settings:
                            properties:
                              failClosed:
                                description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                type: boolean
                              rules:
                                description: A list of rules for ratelimiting.
                                items:
                                  properties:
                                    dimensions:
                                      description: A list of dimensions to define each ratelimit rule.
                                      items:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                        properties:
                                          header:
                                            description: Rate limit on certain HTTP headers.
                                            properties:
                                              dontMatch:
                                                description: If set to true, the condition will be met when the header value does not match.
                                                type: boolean
                                              name:
                                                description: Name of the header to match on.
                                                type: string
                                              value:
                                                description: Value of the header to match on if matching on a specific value.
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                            required:
                                              - name
                                            type: object
                                          remoteAddress:
                                            description: Rate limit on the remote address of client.
                                            properties:
                                              value:
                                                description: Ratelimit on a specific remote address.
                                                type: string
                                            required:
                                              - value
                                            type: object
                                        type: object
                                      type: array
                                    limit:
                                      description: The ratelimit value that will be configured for the above rules.
                                      properties:
                                        requestsPerUnit:
                                          description: Specifies the value of the rate limit.
                                          type: integer
                                        unit:
                                          description: Specifies the unit of time for rate limit.
                                          enum:
                                            - UNKNOWN
                                            - SECOND
                                            - MINUTE
                                            - HOUR
                                            - DAY
                                          type: string
                                      required:
                                        - requestsPerUnit
                                        - unit
                                      type: object
                                  required:
                                    - dimensions
                                    - limit
                                  type: object
                                type: array
                              timeout:
                                description: The timeout in seconds for the rate limit server RPC.
                                type: string
                            required:
                              - rules
                            type: object
                        type: object
                      redirect:
                        description: Redirect allows configuring HTTP redirect.
                        properties:
                          authority:
                            description: On a redirect, overwrite the Authority/Host portion of the URL with this value.
                            type: string
                          port:
                            type: integer
                          redirectCode:
                            description: On a redirect, Specifies the HTTP status code to use in the redirect response.
                            type: integer
                          scheme:
                            description: On a redirect, overwrite the scheme with this one.
                            type: string
                          uri:
                            description: On a redirect, overwrite the Path portion of the URL with this value.
                            type: string
                        type: object
                      tls:
                        description: TLS certificate info.
                        properties:
                          cipherSuites:
                            description: List of cipher suites to be used for TLS connections.
                            items:
                              type: string
                            type: array
                          files:
                            description: Load the keys and certificates from files accessible to the ingress gateway workload.
                            properties:
                              caCertificates:
                                type: string
                              privateKey:
                                type: string
                              serverCertificate:
                                type: string
                            type: object
                          maxProtocolVersion:
                            description: Set the maximum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          minProtocolVersion:
                            description: Set the minimum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          mode:
                            description: Set this to SIMPLE, or MUTUAL for one-way TLS, mutual TLS respectively.
                            enum:
                              - DISABLED
                              - SIMPLE
                              - MUTUAL
                              - OPTIONAL_MUTUAL
                            type: string
                          secretName:
                            description: The name of the secret in Kubernetes that holds the TLS certs including the CA certificates.
                            type: string
                          subjectAltNames:
                            description: List of Subject Alternative Names (SAN) from the client's certificate that are accepted for client identity verification during the TLS handshake.
                            items:
                              type: string
                            type: array
                        type: object
                    required:
                      - name
                      - port
                      - hostname
                    type: object
                  type: array
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                internalServers:
                  description: One or more servers exposed by the gateway internally for cross cluster forwarding.
                  items:
                    properties:
                      authentication:
                        description: Authentication is used to configure the authentication of end-user credentials like JWT.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - jwt
                                - required:
                                    - rules
                          - required:
                              - jwt
                          - required:
                              - rules
                        properties:
                          jwt:
                            description: Authenticate an HTTP request from a JWT Token attached to it.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                              - required:
                                  - jwksUri
                              - required:
                                  - jwks
                            properties:
                              audiences:
                                description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                items:
                                  type: string
                                type: array
                              fromCookies:
                                description: List of cookie names from which JWT is expected.
                                items:
                                  type: string
                                type: array
                              fromHeaders:
                                description: This field specifies the locations to extract JWT token.
                                items:
                                  properties:
                                    name:
                                      description: The HTTP header name.
                                      type: string
                                    prefix:
                                      description: The prefix that should be stripped before decoding the token.
                                      type: string
                                  required:
                                    - name
                                  type: object
                                type: array
                              issuer:
                                description: Identifies the issuer that issued the JWT.
                                type: string
                              jwks:
                                description: JSON Web Key Set of public keys to validate signature of the JWT.
                                type: string
                              jwksUri:
                                description: URL of the provider's public key set to validate signature of the JWT.
                                type: string
                              outputClaimToHeaders:
                                description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                items:
                                  properties:
                                    claim:
                                      description: The name of the claim to be copied from.
                                      type: string
                                    header:
                                      description: The name of the header to be created.
                                      type: string
                                  required:
                                    - header
                                    - claim
                                  type: object
                                type: array
                              outputPayloadToHeader:
                                description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                type: string
                            required:
                              - issuer
                            type: object
                          oidc:
                            properties:
                              authScopes:
                                description: Optional list of OAuth scopes to be claimed in the authorization request.
                                items:
                                  type: string
                                type: array
                              authType:
                                description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                enum:
                                  - DEFAULT_AUTH_TYPE
                                  - URL_ENCODED_BODY
                                  - BASIC_AUTH
                                type: string
                              clientId:
                                description: The client_id to be used in the authorize calls.
                                type: string
                              clientTokenSecret:
                                description: The name of the Kubernetes secret containing the client secret.
                                type: string
                              grantType:
                                enum:
                                  - DEFAULT_GRANT_TYPE
                                  - AUTHORIZATION_CODE
                                type: string
                              provider:
                                description: The OIDC Provider configuration.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - jwksUri
                                        - required:
                                            - jwks
                                  - required:
                                      - jwksUri
                                  - required:
                                      - jwks
                                properties:
                                  authorizationEndpoint:
                                    description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                    type: string
                                  issuer:
                                    description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                    type: string
                                  jwks:
                                    description: JSON string with the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  jwksUri:
                                    description: URI for the OIDC provider's JSON Web Key Sets.
                                    type: string
                                  tls:
                                    description: The TLS settings used by the clients to connect with the OIDC provider.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - files
                                            - required:
                                                - secretName
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                    properties:
                                      files:
                                        description: TLS key source from files.
                                        properties:
                                          caCertificates:
                                            description: File containing CA certificates to verify the certificates presented by the server.
                                            type: string
                                          clientCertificate:
                                            description: Certificate file to authenticate the client.
                                            type: string
                                          privateKey:
                                            description: Private key file associated with the client certificate.
                                            type: string
                                        type: object
                                      mode:
                                        enum:
                                          - DISABLED
                                          - SIMPLE
                                          - MUTUAL
                                        type: string
                                      secretName:
                                        description: TLS key source from a Kubernetes Secret.
                                        type: string
                                      subjectAltNames:
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  tokenEndpoint:
                                    description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                    type: string
                                required:
                                  - issuer
                                type: object
                              redirectPathMatcher:
                                description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                type: string
                              redirectUri:
                                description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                type: string
                              signoutPath:
                                description: The path to sign a user out, clearing their credential cookies.
                                type: string
                              useRefreshToken:
                                description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                nullable: true
                                type: boolean
                            required:
                              - clientId
                              - clientTokenSecret
                              - redirectUri
                              - provider
                            type: object
                          requireJwt:
                            description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                            nullable: true
                            type: boolean
                          rules:
                            description: List of rules how to authenticate an HTTP request.
                            properties:
                              jwt:
                                description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                items:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    audiences:
                                      description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                      items:
                                        type: string
                                      type: array
                                    fromCookies:
                                      description: List of cookie names from which JWT is expected.
                                      items:
                                        type: string
                                      type: array
                                    fromHeaders:
                                      description: This field specifies the locations to extract JWT token.
                                      items:
                                        properties:
                                          name:
                                            description: The HTTP header name.
                                            type: string
                                          prefix:
                                            description: The prefix that should be stripped before decoding the token.
                                            type: string
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    issuer:
                                      description: Identifies the issuer that issued the JWT.
                                      type: string
                                    jwks:
                                      description: JSON Web Key Set of public keys to validate signature of the JWT.
                                      type: string
                                    jwksUri:
                                      description: URL of the provider's public key set to validate signature of the JWT.
                                      type: string
                                    outputClaimToHeaders:
                                      description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                      items:
                                        properties:
                                          claim:
                                            description: The name of the claim to be copied from.
                                            type: string
                                          header:
                                            description: The name of the header to be created.
                                            type: string
                                        required:
                                          - header
                                          - claim
                                        type: object
                                      type: array
                                    outputPayloadToHeader:
                                      description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                type: array
                            type: object
                        type: object
                      authorization:
                        description: Authorization is used to configure authorization of end user and traffic.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - external
                                - required:
                                    - local
                          - required:
                              - external
                          - required:
                              - local
                        properties:
                          external:
                            properties:
                              allowedUpstreamHeaders:
                                description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                items:
                                  type: string
                                type: array
                              includeRequestHeaders:
                                items:
                                  type: string
                                type: array
                              pathPrefix:
                                description: Sets a prefix to the value of authorization request header Path.
                                type: string
                              timeout:
                                description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                type: string
                              tls:
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                                properties:
                                  files:
                                    description: TLS key source from files.
                                    properties:
                                      caCertificates:
                                        description: File containing CA certificates to verify the certificates presented by the server.
                                        type: string
                                      clientCertificate:
                                        description: Certificate file to authenticate the client.
                                        type: string
                                      privateKey:
                                        description: Private key file associated with the client certificate.
                                        type: string
                                    type: object
                                  mode:
                                    enum:
                                      - DISABLED
                                      - SIMPLE
                                      - MUTUAL
                                    type: string
                                  secretName:
                                    description: TLS key source from a Kubernetes Secret.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              uri:
                                type: string
                            type: object
                          local:
                            properties:
                              rules:
                                items:
                                  properties:
                                    from:
                                      description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                      items:
                                        properties:
                                          jwt:
                                            description: JWT configuration to identity the subject.
                                            properties:
                                              iss:
                                                type: string
                                              other:
                                                additionalProperties:
                                                  type: string
                                                description: A set of arbitrary claims that are required to qualify the subject.
                                                type: object
                                              sub:
                                                type: string
                                            type: object
                                        type: object
                                      type: array
                                    name:
                                      description: A friendly name to identify the binding.
                                      type: string
                                    to:
                                      description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                      items:
                                        properties:
                                          methods:
                                            description: The HTTP methods that are allowed by this rule.
                                            items:
                                              type: string
                                            type: array
                                          paths:
                                            description: The request path where the request is made against.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                  required:
                                    - name
                                  type: object
                                type: array
                            type: object
                        type: object
                      clusters:
                        description: The destination clusters that contain ingress gateways exposing the hostname.
                        items:
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels associated with the cluster.
                              type: object
                            name:
                              description: The name of the destination cluster.
                              type: string
                            network:
                              description: The network associated with the destination clusters.
                              type: string
                            weight:
                              description: The weight for traffic to a given destination.
                              type: integer
                          type: object
                        type: array
                      hostname:
                        description: Hostname with which the service can be expected to be accessed by sidecars in the mesh.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                    required:
                      - name
                      - hostname
                    type: object
                  type: array
                passthroughServers:
                  description: One or more tls passthrough servers exposed by the gateway externally.
                  items:
                    properties:
                      clusters:
                        description: The destination clusters that contain ingress gateways exposing the hostname on passthrough servers.
                        items:
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels associated with the cluster.
                              type: object
                            name:
                              description: The name of the destination cluster.
                              type: string
                            network:
                              description: The network associated with the destination clusters.
                              type: string
                            weight:
                              description: The weight for traffic to a given destination.
                              type: integer
                          type: object
                        type: array
                      hostname:
                        description: Hostname with which the service can be expected to be accessed by clients.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      port:
                        description: The port where the server is exposed.
                        type: integer
                    required:
                      - name
                      - port
                      - hostname
                    type: object
                  type: array
                tcpExternalServers:
                  description: One or more tcp servers exposed by the gateway externally.
                  items:
                    properties:
                      clusters:
                        description: The destination clusters contain ingress gateways exposing the service.
                        items:
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels associated with the cluster.
                              type: object
                            name:
                              description: The name of the destination cluster.
                              type: string
                            network:
                              description: The network associated with the destination clusters.
                              type: string
                            weight:
                              description: The weight for traffic to a given destination.
                              type: integer
                          type: object
                        type: array
                      hostname:
                        description: Although hostname or authority does not make sense in the non-HTTP context, this is used to define the routing rules.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                      port:
                        description: The port where the server is exposed.
                        type: integer
                      tls:
                        description: TLS certificate information to terminate TLS.
                        properties:
                          cipherSuites:
                            description: List of cipher suites to be used for TLS connections.
                            items:
                              type: string
                            type: array
                          files:
                            description: Load the keys and certificates from files accessible to the ingress gateway workload.
                            properties:
                              caCertificates:
                                type: string
                              privateKey:
                                type: string
                              serverCertificate:
                                type: string
                            type: object
                          maxProtocolVersion:
                            description: Set the maximum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          minProtocolVersion:
                            description: Set the minimum supported TLS protocol version.
                            enum:
                              - TLS_AUTO
                              - TLSV1_0
                              - TLSV1_1
                              - TLSV1_2
                              - TLSV1_3
                            type: string
                          mode:
                            description: Set this to SIMPLE, or MUTUAL for one-way TLS, mutual TLS respectively.
                            enum:
                              - DISABLED
                              - SIMPLE
                              - MUTUAL
                              - OPTIONAL_MUTUAL
                            type: string
                          secretName:
                            description: The name of the secret in Kubernetes that holds the TLS certs including the CA certificates.
                            type: string
                          subjectAltNames:
                            description: List of Subject Alternative Names (SAN) from the client's certificate that are accepted for client identity verification during the TLS handshake.
                            items:
                              type: string
                            type: array
                        type: object
                    required:
                      - name
                      - port
                      - hostname
                    type: object
                  type: array
                tcpInternalServers:
                  description: One or more tcp servers exposed by the gateway for mesh internal traffic.
                  items:
                    properties:
                      clusters:
                        description: The destination clusters contain ingress gateways exposing the service.
                        items:
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              description: Labels associated with the cluster.
                              type: object
                            name:
                              description: The name of the destination cluster.
                              type: string
                            network:
                              description: The network associated with the destination clusters.
                              type: string
                            weight:
                              description: The weight for traffic to a given destination.
                              type: integer
                          type: object
                        type: array
                      hostname:
                        description: The name of the service used.
                        type: string
                      name:
                        description: A name assigned to the server.
                        type: string
                    required:
                      - name
                      - hostname
                    type: object
                  type: array
                waf:
                  description: WAF settings to be enabled for traffic passing through this Tier1 gateway.
                  properties:
                    rules:
                      description: Rules to be leveraged by WAF.
                      items:
                        type: string
                      type: array
                  required:
                    - rules
                  type: object
                workloadSelector:
                  description: Specify the gateway workloads (pod labels and Kubernetes namespace) under the gateway group that should be configured with this gateway.
                  properties:
                    labels:
                      additionalProperties:
                        type: string
                      description: One or more labels that indicate a specific set of pods/VMs in the namespace.
                      type: object
                    namespace:
                      description: The namespace where the workload resides.
                      type: string
                  required:
                    - namespace
                    - labels
                  type: object
              required:
                - workloadSelector
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: groups.istiointernal.tsb.tetrate.io
spec:
  group: istiointernal.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - istiointernal-tsb-tetrate-io
    kind: Group
    listKind: GroupList
    plural: groups
    shortNames:
      - tiig
    singular: group
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - jsonPath: .spec.deletionProtectionEnabled
          name: Deletion Protection
          type: boolean
        - jsonPath: .spec.namespaceSelector.names
          name: Namespace Selector
          priority: 1
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: Istio internal groups only allow grouping `DIRECT` mode mesh resources in a set of namespaces owned by its parent workspace.
              properties:
                configGenerationMetadata:
                  description: Default metadata values that will be propagated to the children Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                deletionProtectionEnabled:
                  description: When set, prevents the resource from being deleted.
                  type: boolean
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                namespaceSelector:
                  description: Set of namespaces owned exclusively by this group.
                  properties:
                    names:
                      description: 'Under the tenant/workspace/group: - `*/ns1` implies `ns1` namespace in any cluster.'
                      items:
                        type: string
                      type: array
                  required:
                    - names
                  type: object
              required:
                - namespaceSelector
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: profiles.profile.tsb.tetrate.io
spec:
  group: profile.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - profile-tsb-tetrate-io
    kind: Profile
    listKind: ProfileList
    plural: profiles
    shortNames:
      - tp
    singular: profile
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.deletionProtectionEnabled
          name: Deletion Protection
          type: boolean
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: :::warning Beta feature The Configuration Profiles feature is in beta state for release 1.13.
              properties:
                defaults:
                  description: Defaults section of the profile is meant for configurations which are allowed to be overwritten by subsequent profiles or by user defined configurations in the attached resources.
                  properties:
                    authenticationSettings:
                      description: Authentication settings is used to set workload-to-workload traffic and end-user/origin authentication configuration.
                      properties:
                        http:
                          description: HTTP request authentication is used to configure authentication of origin/end-user credentials like JSON Web Token (JWT).
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - jwt
                                  - required:
                                      - rules
                            - required:
                                - jwt
                            - required:
                                - rules
                          properties:
                            jwt:
                              description: Authenticate an HTTP request from a JWT Token attached to it.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                - required:
                                    - jwksUri
                                - required:
                                    - jwks
                              properties:
                                audiences:
                                  description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                  items:
                                    type: string
                                  type: array
                                fromCookies:
                                  description: List of cookie names from which JWT is expected.
                                  items:
                                    type: string
                                  type: array
                                fromHeaders:
                                  description: This field specifies the locations to extract JWT token.
                                  items:
                                    properties:
                                      name:
                                        description: The HTTP header name.
                                        type: string
                                      prefix:
                                        description: The prefix that should be stripped before decoding the token.
                                        type: string
                                    required:
                                      - name
                                    type: object
                                  type: array
                                issuer:
                                  description: Identifies the issuer that issued the JWT.
                                  type: string
                                jwks:
                                  description: JSON Web Key Set of public keys to validate signature of the JWT.
                                  type: string
                                jwksUri:
                                  description: URL of the provider's public key set to validate signature of the JWT.
                                  type: string
                                outputClaimToHeaders:
                                  description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                  items:
                                    properties:
                                      claim:
                                        description: The name of the claim to be copied from.
                                        type: string
                                      header:
                                        description: The name of the header to be created.
                                        type: string
                                    required:
                                      - header
                                      - claim
                                    type: object
                                  type: array
                                outputPayloadToHeader:
                                  description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                  type: string
                              required:
                                - issuer
                              type: object
                            oidc:
                              properties:
                                authScopes:
                                  description: Optional list of OAuth scopes to be claimed in the authorization request.
                                  items:
                                    type: string
                                  type: array
                                authType:
                                  description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                  enum:
                                    - DEFAULT_AUTH_TYPE
                                    - URL_ENCODED_BODY
                                    - BASIC_AUTH
                                  type: string
                                clientId:
                                  description: The client_id to be used in the authorize calls.
                                  type: string
                                clientTokenSecret:
                                  description: The name of the Kubernetes secret containing the client secret.
                                  type: string
                                grantType:
                                  enum:
                                    - DEFAULT_GRANT_TYPE
                                    - AUTHORIZATION_CODE
                                  type: string
                                provider:
                                  description: The OIDC Provider configuration.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    authorizationEndpoint:
                                      description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                      type: string
                                    issuer:
                                      description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                      type: string
                                    jwks:
                                      description: JSON string with the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    jwksUri:
                                      description: URI for the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    tls:
                                      description: The TLS settings used by the clients to connect with the OIDC provider.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    tokenEndpoint:
                                      description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                redirectPathMatcher:
                                  description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                  type: string
                                redirectUri:
                                  description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                  type: string
                                signoutPath:
                                  description: The path to sign a user out, clearing their credential cookies.
                                  type: string
                                useRefreshToken:
                                  description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                  nullable: true
                                  type: boolean
                              required:
                                - clientId
                                - clientTokenSecret
                                - redirectUri
                                - provider
                              type: object
                            requireJwt:
                              description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                              nullable: true
                              type: boolean
                            rules:
                              description: List of rules how to authenticate an HTTP request.
                              properties:
                                jwt:
                                  description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                  items:
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - jwksUri
                                            - required:
                                                - jwks
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                    properties:
                                      audiences:
                                        description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                        items:
                                          type: string
                                        type: array
                                      fromCookies:
                                        description: List of cookie names from which JWT is expected.
                                        items:
                                          type: string
                                        type: array
                                      fromHeaders:
                                        description: This field specifies the locations to extract JWT token.
                                        items:
                                          properties:
                                            name:
                                              description: The HTTP header name.
                                              type: string
                                            prefix:
                                              description: The prefix that should be stripped before decoding the token.
                                              type: string
                                          required:
                                            - name
                                          type: object
                                        type: array
                                      issuer:
                                        description: Identifies the issuer that issued the JWT.
                                        type: string
                                      jwks:
                                        description: JSON Web Key Set of public keys to validate signature of the JWT.
                                        type: string
                                      jwksUri:
                                        description: URL of the provider's public key set to validate signature of the JWT.
                                        type: string
                                      outputClaimToHeaders:
                                        description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                        items:
                                          properties:
                                            claim:
                                              description: The name of the claim to be copied from.
                                              type: string
                                            header:
                                              description: The name of the header to be created.
                                              type: string
                                          required:
                                            - header
                                            - claim
                                          type: object
                                        type: array
                                      outputPayloadToHeader:
                                        description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                        type: string
                                    required:
                                      - issuer
                                    type: object
                                  type: array
                              type: object
                          type: object
                        trafficMode:
                          enum:
                            - UNSET
                            - OPTIONAL
                            - REQUIRED
                          type: string
                      type: object
                    traffic:
                      description: Traffic settings for proxy workloads.
                      properties:
                        inbound:
                          description: Configures inbound traffic.
                          properties:
                            failoverSettings:
                              description: Failover settings apply to all clients accessing the hostname defined in this section.
                              properties:
                                automaticLoadBalancing:
                                  properties:
                                    enabled:
                                      description: Whether to enable automatic load balancing.
                                      nullable: true
                                      type: boolean
                                  type: object
                                failoverPriority:
                                  description: FailoverPriority specifies the failover priority for traffic.
                                  items:
                                    type: string
                                  type: array
                                regionalFailover:
                                  description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                                  items:
                                    properties:
                                      from:
                                        description: Originating region.
                                        type: string
                                      to:
                                        description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                        type: string
                                    type: object
                                  type: array
                                topologyChoice:
                                  description: TopologyChoice specifies the topology preference for traffic priority.
                                  enum:
                                    - NONE
                                    - CLUSTER
                                    - LOCALITY
                                  type: string
                              type: object
                            rateLimiting:
                              description: Configuration for rate limiting requests.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - settings
                                      - required:
                                          - externalService
                                      - required:
                                          - local
                                - required:
                                    - settings
                                - required:
                                    - externalService
                                - required:
                                    - local
                              properties:
                                externalService:
                                  description: Configure ratelimiting using an external ratelimit server.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - failClosed
                                    - required:
                                        - failClosed
                                  properties:
                                    domain:
                                      description: The rate limit domain to use when calling the rate limit service.
                                      type: string
                                    failClosed:
                                      description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                      type: boolean
                                    rateLimitServerUri:
                                      description: The URI at which the external rate limit server can be reached.
                                      type: string
                                    rules:
                                      description: A set of rate limit rules.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions that are to be applied for this rate limit configuration.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - sourceCluster
                                                      - required:
                                                          - destinationCluster
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - requestHeaders
                                                      - required:
                                                          - headerValueMatch
                                                - required:
                                                    - sourceCluster
                                                - required:
                                                    - destinationCluster
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - requestHeaders
                                                - required:
                                                    - headerValueMatch
                                              properties:
                                                destinationCluster:
                                                  description: Rate limit on destination envoy cluster.
                                                  type: object
                                                headerValueMatch:
                                                  description: Rate limit on the existence of certain request headers.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - dontMatch
                                                    - required:
                                                        - dontMatch
                                                  properties:
                                                    descriptorValue:
                                                      description: The value to use in the descriptor entry.
                                                      type: string
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      type: boolean
                                                    headers:
                                                      additionalProperties:
                                                        oneOf:
                                                          - not:
                                                              anyOf:
                                                                - required:
                                                                    - exact
                                                                - required:
                                                                    - prefix
                                                                - required:
                                                                    - regex
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                        properties:
                                                          exact:
                                                            description: Exact string match.
                                                            type: string
                                                          prefix:
                                                            description: Prefix-based match.
                                                            type: string
                                                          regex:
                                                            description: ECMAscript style regex-based match.
                                                            type: string
                                                        type: object
                                                      description: Specifies a set of headers that the rate limit action should match on.
                                                      type: object
                                                  required:
                                                    - headers
                                                    - descriptorValue
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on remote address of client.
                                                  type: object
                                                requestHeaders:
                                                  description: Rate limit on the value of certain request headers.
                                                  properties:
                                                    descriptorKey:
                                                      description: The key to use in the descriptor entry.
                                                      type: string
                                                    headerName:
                                                      description: The header name to be queried from the request headers.
                                                      type: string
                                                  required:
                                                    - headerName
                                                    - descriptorKey
                                                  type: object
                                                sourceCluster:
                                                  description: Rate limit on source envoy cluster.
                                                  type: object
                                              type: object
                                            type: array
                                        required:
                                          - dimensions
                                        type: object
                                      type: array
                                    timeout:
                                      description: The timeout in seconds for the external rate limit server RPC.
                                      type: string
                                    tls:
                                      description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - clientCertificate
                                                - required:
                                                    - clientCertificate
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - privateKey
                                                - required:
                                                    - privateKey
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - caCertificates
                                                - required:
                                                    - caCertificates
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                  required:
                                    - domain
                                    - rateLimitServerUri
                                    - rules
                                  type: object
                                local:
                                  description: Apply rate limits internally in the Envoy proxy.
                                  properties:
                                    maxWildcardDimensions:
                                      description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                      nullable: true
                                      type: integer
                                    rules:
                                      description: A list of rules for ratelimiting.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions to define each ratelimit rule.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - header
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                              properties:
                                                header:
                                                  description: Rate limit on certain HTTP headers.
                                                  properties:
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      nullable: true
                                                      type: boolean
                                                    name:
                                                      description: Name of the header to match on.
                                                      nullable: true
                                                      type: string
                                                    value:
                                                      description: Value of the header to match on if matching on a specific value.
                                                      oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - exact
                                                              - required:
                                                                  - prefix
                                                              - required:
                                                                  - regex
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                      properties:
                                                        exact:
                                                          description: Exact string match.
                                                          type: string
                                                        prefix:
                                                          description: Prefix-based match.
                                                          type: string
                                                        regex:
                                                          description: ECMAscript style regex-based match.
                                                          type: string
                                                      type: object
                                                  required:
                                                    - name
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on the remote address of client.
                                                  properties:
                                                    value:
                                                      description: Ratelimit on a specific remote address.
                                                      nullable: true
                                                      type: string
                                                  required:
                                                    - value
                                                  type: object
                                              type: object
                                            type: array
                                          tokenBucket:
                                            description: The ratelimit value that will be configured for the above rules.
                                            properties:
                                              fillInterval:
                                                description: The fill interval that tokens are added to the bucket.
                                                type: string
                                              maxTokens:
                                                description: The maximum tokens that the bucket can hold.
                                                nullable: true
                                                type: integer
                                              tokensPerFill:
                                                description: The number of tokens added to the bucket during each fill interval.
                                                nullable: true
                                                type: integer
                                            required:
                                              - maxTokens
                                              - fillInterval
                                            type: object
                                        required:
                                          - dimensions
                                          - tokenBucket
                                        type: object
                                      type: array
                                  required:
                                    - rules
                                  type: object
                                settings:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - failClosed
                                    - required:
                                        - failClosed
                                  properties:
                                    failClosed:
                                      description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                      type: boolean
                                    rules:
                                      description: A list of rules for ratelimiting.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions to define each ratelimit rule.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - header
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                              properties:
                                                header:
                                                  description: Rate limit on certain HTTP headers.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - dontMatch
                                                    - required:
                                                        - dontMatch
                                                  properties:
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      type: boolean
                                                    name:
                                                      description: Name of the header to match on.
                                                      type: string
                                                    value:
                                                      description: Value of the header to match on if matching on a specific value.
                                                      oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - exact
                                                              - required:
                                                                  - prefix
                                                              - required:
                                                                  - regex
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                      properties:
                                                        exact:
                                                          description: Exact string match.
                                                          type: string
                                                        prefix:
                                                          description: Prefix-based match.
                                                          type: string
                                                        regex:
                                                          description: ECMAscript style regex-based match.
                                                          type: string
                                                      type: object
                                                  required:
                                                    - name
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on the remote address of client.
                                                  properties:
                                                    value:
                                                      description: Ratelimit on a specific remote address.
                                                      type: string
                                                  required:
                                                    - value
                                                  type: object
                                              type: object
                                            type: array
                                          limit:
                                            description: The ratelimit value that will be configured for the above rules.
                                            oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - requestsPerUnit
                                              - required:
                                                  - requestsPerUnit
                                            properties:
                                              requestsPerUnit:
                                                description: Specifies the value of the rate limit.
                                                type: integer
                                              unit:
                                                description: Specifies the unit of time for rate limit.
                                                enum:
                                                  - UNKNOWN
                                                  - SECOND
                                                  - MINUTE
                                                  - HOUR
                                                  - DAY
                                                type: string
                                            required:
                                              - requestsPerUnit
                                              - unit
                                            type: object
                                        required:
                                          - dimensions
                                          - limit
                                        type: object
                                      type: array
                                    timeout:
                                      description: The timeout in seconds for the rate limit server RPC.
                                      type: string
                                  required:
                                    - rules
                                  type: object
                              type: object
                            resilience:
                              description: Resiliency configuration for inbound connections.
                              properties:
                                connectionPool:
                                  description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                  properties:
                                    tcp:
                                      properties:
                                        keepAlive:
                                          description: Keep Alive Settings.
                                          properties:
                                            idleTime:
                                              description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                              nullable: true
                                              type: integer
                                            interval:
                                              description: The number of seconds between keep-alive probes.
                                              nullable: true
                                              type: integer
                                            probes:
                                              description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                              nullable: true
                                              type: integer
                                          type: object
                                      type: object
                                  type: object
                                meshTimeout:
                                  description: Configures the max connection and stream durations for HTTP and TCP connections.
                                  properties:
                                    maxConnectionDuration:
                                      description: This specifies the duration of time after which a downstream and upstream connection will be drained and/or closed, starting from when it was first established.
                                      type: string
                                    maxDownstreamConnectionDuration:
                                      description: The maximum duration of a TCP connection.
                                      type: string
                                    maxStreamDuration:
                                      description: The max stream duration is the maximum time that a stream’s lifetime will span.
                                      type: string
                                    proxyType:
                                      description: Specifies the type of proxy to which to apply the mesh timeout settings.
                                      enum:
                                        - ANY
                                        - SIDECAR
                                        - GATEWAY
                                      type: string
                                  type: object
                              type: object
                          type: object
                        outbound:
                          description: Configures outbound traffic.
                          properties:
                            egress:
                              description: Specifies the details of the egress proxy to which traffic to services that are not part to the mesh should be forwarded to from the proxy workloads.
                              properties:
                                host:
                                  description: Specifies the egress gateway hostname.
                                  type: string
                              required:
                                - host
                              type: object
                            reachability:
                              description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                              properties:
                                hosts:
                                  description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                                  items:
                                    type: string
                                  type: array
                                mode:
                                  description: A short cut for specifying the set of services accessed by the workload.
                                  enum:
                                    - UNSET
                                    - NAMESPACE
                                    - GROUP
                                    - WORKSPACE
                                    - CLUSTER
                                    - CUSTOM
                                  type: string
                              type: object
                            upstreamTrafficSettings:
                              description: List of hosts and the associated traffic settings to be used by the clients sending traffic to them.
                              items:
                                properties:
                                  hosts:
                                    description: List of hosts for which the settings will be created.
                                    items:
                                      type: string
                                    type: array
                                  settings:
                                    description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                    properties:
                                      authentication:
                                        description: Configuration for connection authentication parameters.
                                        properties:
                                          trafficMode:
                                            description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                            enum:
                                              - UNSET
                                              - OPTIONAL
                                              - REQUIRED
                                            type: string
                                        type: object
                                      loadBalancer:
                                        description: Load balancing settings for the clients.
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - simple
                                                - required:
                                                    - consistentHash
                                          - required:
                                              - simple
                                          - required:
                                              - consistentHash
                                        properties:
                                          consistentHash:
                                            allOf:
                                              - oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - httpHeaderName
                                                        - required:
                                                            - httpCookie
                                                        - required:
                                                            - useSourceIp
                                                        - required:
                                                            - httpQueryParameterName
                                                  - required:
                                                      - httpHeaderName
                                                  - required:
                                                      - httpCookie
                                                  - required:
                                                      - useSourceIp
                                                  - required:
                                                      - httpQueryParameterName
                                              - oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - ringHash
                                                        - required:
                                                            - maglev
                                                  - required:
                                                      - ringHash
                                                  - required:
                                                      - maglev
                                            description: Use consistent hash load balancing which can provide soft session affinity.
                                            properties:
                                              httpCookie:
                                                description: Hash based on HTTP cookie.
                                                properties:
                                                  name:
                                                    description: Name of the cookie.
                                                    type: string
                                                  path:
                                                    description: Path to set for the cookie.
                                                    type: string
                                                  ttl:
                                                    description: Lifetime of the cookie.
                                                    type: string
                                                required:
                                                  - name
                                                  - ttl
                                                type: object
                                              httpHeaderName:
                                                description: Hash based on a specific HTTP header.
                                                type: string
                                              httpQueryParameterName:
                                                description: Hash based on a specific HTTP query parameter.
                                                type: string
                                              maglev:
                                                description: The Maglev load balancer implements consistent hashing to backend hosts.
                                                properties:
                                                  tableSize:
                                                    description: The table size for Maglev hashing.
                                                    type: integer
                                                required:
                                                  - tableSize
                                                type: object
                                              ringHash:
                                                description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                                properties:
                                                  minimumRingSize:
                                                    description: The minimum number of virtual nodes to use for the hash ring.
                                                    type: integer
                                                type: object
                                              useSourceIp:
                                                description: Hash based on the source IP address.
                                                type: boolean
                                            type: object
                                          simple:
                                            description: Use standard load balancing algorithms that require no tuning.
                                            enum:
                                              - UNSPECIFIED
                                              - RANDOM
                                              - PASSTHROUGH
                                              - ROUND_ROBIN
                                              - LEAST_REQUEST
                                            type: string
                                        type: object
                                      resilience:
                                        description: Resilience settings for the clients.
                                        properties:
                                          circuitBreakerSensitivity:
                                            description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                            enum:
                                              - UNSET
                                              - LOW
                                              - MEDIUM
                                              - HIGH
                                              - CUSTOM
                                            type: string
                                          connectionPool:
                                            description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                            properties:
                                              http:
                                                allOf:
                                                  - oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - maxRequests
                                                      - required:
                                                          - maxRequests
                                                  - oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - maxRequestsPerConnection
                                                      - required:
                                                          - maxRequestsPerConnection
                                                properties:
                                                  maxRequests:
                                                    description: Maximum number of active requests to the service.
                                                    type: integer
                                                  maxRequestsPerConnection:
                                                    description: Maximum number of requests per connection to the service.
                                                    type: integer
                                                  requestTimeout:
                                                    description: Timeout for HTTP requests.
                                                    type: string
                                                  retries:
                                                    description: Retry policy for HTTP requests.
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - attempts
                                                      - required:
                                                          - attempts
                                                    properties:
                                                      attempts:
                                                        description: Number of retries for a given request.
                                                        format: int32
                                                        type: integer
                                                      perTryTimeout:
                                                        description: Timeout per retry attempt for a given request.
                                                        type: string
                                                      retryBackOff:
                                                        description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                        properties:
                                                          baseInterval:
                                                            description: The base interval between retry attempts.
                                                            type: string
                                                          maxInterval:
                                                            description: The maximum interval between retry attempts.
                                                            type: string
                                                        required:
                                                          - baseInterval
                                                        type: object
                                                      retryOn:
                                                        description: Specifies the conditions under which retry takes place.
                                                        type: string
                                                    required:
                                                      - attempts
                                                    type: object
                                                type: object
                                              tcp:
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - maxConnections
                                                  - required:
                                                      - maxConnections
                                                properties:
                                                  connectTimeout:
                                                    description: TCP connection timeout.
                                                    type: string
                                                  keepAlive:
                                                    description: Keep Alive Settings.
                                                    properties:
                                                      idleTime:
                                                        description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                        nullable: true
                                                        type: integer
                                                      interval:
                                                        description: The number of seconds between keep-alive probes.
                                                        nullable: true
                                                        type: integer
                                                      probes:
                                                        description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                        nullable: true
                                                        type: integer
                                                    type: object
                                                  maxConnections:
                                                    description: Maximum number of HTTP1 /TCP connections to the service.
                                                    type: integer
                                                type: object
                                            type: object
                                          outlierDetection:
                                            description: Outlier detection settings for the upstream host when custom mode is used.
                                            oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - splitExternalLocalOriginErrors
                                              - required:
                                                  - splitExternalLocalOriginErrors
                                            properties:
                                              baseEjectionTime:
                                                description: The base time that a host is ejected for.
                                                type: string
                                              consecutive5xx:
                                                description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                                nullable: true
                                                type: integer
                                              consecutiveGatewayFailure:
                                                description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                                nullable: true
                                                type: integer
                                              consecutiveLocalOriginFailure:
                                                nullable: true
                                                type: integer
                                              enforcingConsecutive5xx:
                                                description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                                nullable: true
                                                type: integer
                                              enforcingConsecutiveGatewayFailure:
                                                description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                                nullable: true
                                                type: integer
                                              enforcingConsecutiveLocalOriginFailure:
                                                description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                                nullable: true
                                                type: integer
                                              interval:
                                                description: The time interval between ejection analysis sweeps.
                                                type: string
                                              maxEjectionPercent:
                                                description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                                nullable: true
                                                type: integer
                                              maxEjectionTime:
                                                description: The maximum time that a host is ejected for.
                                                type: string
                                              splitExternalLocalOriginErrors:
                                                description: Determines whether to distinguish local origin failures from external errors.
                                                type: boolean
                                            type: object
                                        type: object
                                    type: object
                                type: object
                              type: array
                          type: object
                      type: object
                    trafficSettings:
                      properties:
                        configGenerationMetadata:
                          description: Metadata values that will be add into the Istio generated configurations.
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                              type: object
                          type: object
                        description:
                          description: A description of the resource.
                          type: string
                        displayName:
                          description: User friendly name for the resource.
                          type: string
                        egress:
                          description: Specifies the details of the egress proxy to which unknown traffic should be forwarded to from the proxy workload.
                          properties:
                            host:
                              description: Specifies the egress gateway hostname.
                              type: string
                            port:
                              description: Deprecated.
                              format: int32
                              type: integer
                          required:
                            - host
                          type: object
                        etag:
                          description: The etag for the resource.
                          type: string
                        fqn:
                          description: Fully-qualified name of the resource.
                          type: string
                        inbound:
                          description: Configures inbound traffic.
                          properties:
                            failoverSettings:
                              description: Failover settings apply to all clients accessing the hostname defined in this section.
                              properties:
                                automaticLoadBalancing:
                                  properties:
                                    enabled:
                                      description: Whether to enable automatic load balancing.
                                      nullable: true
                                      type: boolean
                                  type: object
                                failoverPriority:
                                  description: FailoverPriority specifies the failover priority for traffic.
                                  items:
                                    type: string
                                  type: array
                                regionalFailover:
                                  description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                                  items:
                                    properties:
                                      from:
                                        description: Originating region.
                                        type: string
                                      to:
                                        description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                        type: string
                                    type: object
                                  type: array
                                topologyChoice:
                                  description: TopologyChoice specifies the topology preference for traffic priority.
                                  enum:
                                    - NONE
                                    - CLUSTER
                                    - LOCALITY
                                  type: string
                              type: object
                            rateLimiting:
                              description: Configuration for rate limiting requests.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - settings
                                      - required:
                                          - externalService
                                      - required:
                                          - local
                                - required:
                                    - settings
                                - required:
                                    - externalService
                                - required:
                                    - local
                              properties:
                                externalService:
                                  description: Configure ratelimiting using an external ratelimit server.
                                  properties:
                                    domain:
                                      description: The rate limit domain to use when calling the rate limit service.
                                      type: string
                                    failClosed:
                                      description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                      type: boolean
                                    rateLimitServerUri:
                                      description: The URI at which the external rate limit server can be reached.
                                      type: string
                                    rules:
                                      description: A set of rate limit rules.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions that are to be applied for this rate limit configuration.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - sourceCluster
                                                      - required:
                                                          - destinationCluster
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - requestHeaders
                                                      - required:
                                                          - headerValueMatch
                                                - required:
                                                    - sourceCluster
                                                - required:
                                                    - destinationCluster
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - requestHeaders
                                                - required:
                                                    - headerValueMatch
                                              properties:
                                                destinationCluster:
                                                  description: Rate limit on destination envoy cluster.
                                                  type: object
                                                headerValueMatch:
                                                  description: Rate limit on the existence of certain request headers.
                                                  properties:
                                                    descriptorValue:
                                                      description: The value to use in the descriptor entry.
                                                      type: string
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      type: boolean
                                                    headers:
                                                      additionalProperties:
                                                        oneOf:
                                                          - not:
                                                              anyOf:
                                                                - required:
                                                                    - exact
                                                                - required:
                                                                    - prefix
                                                                - required:
                                                                    - regex
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                        properties:
                                                          exact:
                                                            description: Exact string match.
                                                            type: string
                                                          prefix:
                                                            description: Prefix-based match.
                                                            type: string
                                                          regex:
                                                            description: ECMAscript style regex-based match.
                                                            type: string
                                                        type: object
                                                      description: Specifies a set of headers that the rate limit action should match on.
                                                      type: object
                                                  required:
                                                    - headers
                                                    - descriptorValue
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on remote address of client.
                                                  type: object
                                                requestHeaders:
                                                  description: Rate limit on the value of certain request headers.
                                                  properties:
                                                    descriptorKey:
                                                      description: The key to use in the descriptor entry.
                                                      type: string
                                                    headerName:
                                                      description: The header name to be queried from the request headers.
                                                      type: string
                                                  required:
                                                    - headerName
                                                    - descriptorKey
                                                  type: object
                                                sourceCluster:
                                                  description: Rate limit on source envoy cluster.
                                                  type: object
                                              type: object
                                            type: array
                                        required:
                                          - dimensions
                                        type: object
                                      type: array
                                    timeout:
                                      description: The timeout in seconds for the external rate limit server RPC.
                                      type: string
                                    tls:
                                      description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                  required:
                                    - domain
                                    - rateLimitServerUri
                                    - rules
                                  type: object
                                local:
                                  description: Apply rate limits internally in the Envoy proxy.
                                  properties:
                                    maxWildcardDimensions:
                                      description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                      nullable: true
                                      type: integer
                                    rules:
                                      description: A list of rules for ratelimiting.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions to define each ratelimit rule.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - header
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                              properties:
                                                header:
                                                  description: Rate limit on certain HTTP headers.
                                                  properties:
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      nullable: true
                                                      type: boolean
                                                    name:
                                                      description: Name of the header to match on.
                                                      nullable: true
                                                      type: string
                                                    value:
                                                      description: Value of the header to match on if matching on a specific value.
                                                      oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - exact
                                                              - required:
                                                                  - prefix
                                                              - required:
                                                                  - regex
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                      properties:
                                                        exact:
                                                          description: Exact string match.
                                                          type: string
                                                        prefix:
                                                          description: Prefix-based match.
                                                          type: string
                                                        regex:
                                                          description: ECMAscript style regex-based match.
                                                          type: string
                                                      type: object
                                                  required:
                                                    - name
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on the remote address of client.
                                                  properties:
                                                    value:
                                                      description: Ratelimit on a specific remote address.
                                                      nullable: true
                                                      type: string
                                                  required:
                                                    - value
                                                  type: object
                                              type: object
                                            type: array
                                          tokenBucket:
                                            description: The ratelimit value that will be configured for the above rules.
                                            properties:
                                              fillInterval:
                                                description: The fill interval that tokens are added to the bucket.
                                                type: string
                                              maxTokens:
                                                description: The maximum tokens that the bucket can hold.
                                                nullable: true
                                                type: integer
                                              tokensPerFill:
                                                description: The number of tokens added to the bucket during each fill interval.
                                                nullable: true
                                                type: integer
                                            required:
                                              - maxTokens
                                              - fillInterval
                                            type: object
                                        required:
                                          - dimensions
                                          - tokenBucket
                                        type: object
                                      type: array
                                  required:
                                    - rules
                                  type: object
                                settings:
                                  properties:
                                    failClosed:
                                      description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                      type: boolean
                                    rules:
                                      description: A list of rules for ratelimiting.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions to define each ratelimit rule.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - header
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                              properties:
                                                header:
                                                  description: Rate limit on certain HTTP headers.
                                                  properties:
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      type: boolean
                                                    name:
                                                      description: Name of the header to match on.
                                                      type: string
                                                    value:
                                                      description: Value of the header to match on if matching on a specific value.
                                                      oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - exact
                                                              - required:
                                                                  - prefix
                                                              - required:
                                                                  - regex
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                      properties:
                                                        exact:
                                                          description: Exact string match.
                                                          type: string
                                                        prefix:
                                                          description: Prefix-based match.
                                                          type: string
                                                        regex:
                                                          description: ECMAscript style regex-based match.
                                                          type: string
                                                      type: object
                                                  required:
                                                    - name
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on the remote address of client.
                                                  properties:
                                                    value:
                                                      description: Ratelimit on a specific remote address.
                                                      type: string
                                                  required:
                                                    - value
                                                  type: object
                                              type: object
                                            type: array
                                          limit:
                                            description: The ratelimit value that will be configured for the above rules.
                                            properties:
                                              requestsPerUnit:
                                                description: Specifies the value of the rate limit.
                                                type: integer
                                              unit:
                                                description: Specifies the unit of time for rate limit.
                                                enum:
                                                  - UNKNOWN
                                                  - SECOND
                                                  - MINUTE
                                                  - HOUR
                                                  - DAY
                                                type: string
                                            required:
                                              - requestsPerUnit
                                              - unit
                                            type: object
                                        required:
                                          - dimensions
                                          - limit
                                        type: object
                                      type: array
                                    timeout:
                                      description: The timeout in seconds for the rate limit server RPC.
                                      type: string
                                  required:
                                    - rules
                                  type: object
                              type: object
                            resilience:
                              description: Resiliency configuration for inbound connections.
                              properties:
                                connectionPool:
                                  description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                  properties:
                                    tcp:
                                      properties:
                                        keepAlive:
                                          description: Keep Alive Settings.
                                          properties:
                                            idleTime:
                                              description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                              nullable: true
                                              type: integer
                                            interval:
                                              description: The number of seconds between keep-alive probes.
                                              nullable: true
                                              type: integer
                                            probes:
                                              description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                              nullable: true
                                              type: integer
                                          type: object
                                      type: object
                                  type: object
                                meshTimeout:
                                  description: Configures the max connection and stream durations for HTTP and TCP connections.
                                  properties:
                                    maxConnectionDuration:
                                      description: This specifies the duration of time after which a downstream and upstream connection will be drained and/or closed, starting from when it was first established.
                                      type: string
                                    maxDownstreamConnectionDuration:
                                      description: The maximum duration of a TCP connection.
                                      type: string
                                    maxStreamDuration:
                                      description: The max stream duration is the maximum time that a stream’s lifetime will span.
                                      type: string
                                    proxyType:
                                      description: Specifies the type of proxy to which to apply the mesh timeout settings.
                                      enum:
                                        - ANY
                                        - SIDECAR
                                        - GATEWAY
                                      type: string
                                  type: object
                              type: object
                          type: object
                        outbound:
                          description: Configures outbound traffic.
                          properties:
                            egress:
                              description: Specifies the details of the egress proxy to which traffic to services that are not part to the mesh should be forwarded to from the proxy workloads.
                              properties:
                                host:
                                  description: Specifies the egress gateway hostname.
                                  type: string
                              required:
                                - host
                              type: object
                            reachability:
                              description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                              properties:
                                hosts:
                                  description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                                  items:
                                    type: string
                                  type: array
                                mode:
                                  description: A short cut for specifying the set of services accessed by the workload.
                                  enum:
                                    - UNSET
                                    - NAMESPACE
                                    - GROUP
                                    - WORKSPACE
                                    - CLUSTER
                                    - CUSTOM
                                  type: string
                              type: object
                            upstreamTrafficSettings:
                              description: List of hosts and the associated traffic settings to be used by the clients sending traffic to them.
                              items:
                                properties:
                                  hosts:
                                    description: List of hosts for which the settings will be created.
                                    items:
                                      type: string
                                    type: array
                                  settings:
                                    description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                    properties:
                                      authentication:
                                        description: Configuration for connection authentication parameters.
                                        properties:
                                          trafficMode:
                                            description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                            enum:
                                              - UNSET
                                              - OPTIONAL
                                              - REQUIRED
                                            type: string
                                        type: object
                                      loadBalancer:
                                        description: Load balancing settings for the clients.
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - simple
                                                - required:
                                                    - consistentHash
                                          - required:
                                              - simple
                                          - required:
                                              - consistentHash
                                        properties:
                                          consistentHash:
                                            allOf:
                                              - oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - httpHeaderName
                                                        - required:
                                                            - httpCookie
                                                        - required:
                                                            - useSourceIp
                                                        - required:
                                                            - httpQueryParameterName
                                                  - required:
                                                      - httpHeaderName
                                                  - required:
                                                      - httpCookie
                                                  - required:
                                                      - useSourceIp
                                                  - required:
                                                      - httpQueryParameterName
                                              - oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - ringHash
                                                        - required:
                                                            - maglev
                                                  - required:
                                                      - ringHash
                                                  - required:
                                                      - maglev
                                            description: Use consistent hash load balancing which can provide soft session affinity.
                                            properties:
                                              httpCookie:
                                                description: Hash based on HTTP cookie.
                                                properties:
                                                  name:
                                                    description: Name of the cookie.
                                                    type: string
                                                  path:
                                                    description: Path to set for the cookie.
                                                    type: string
                                                  ttl:
                                                    description: Lifetime of the cookie.
                                                    type: string
                                                required:
                                                  - name
                                                  - ttl
                                                type: object
                                              httpHeaderName:
                                                description: Hash based on a specific HTTP header.
                                                type: string
                                              httpQueryParameterName:
                                                description: Hash based on a specific HTTP query parameter.
                                                type: string
                                              maglev:
                                                description: The Maglev load balancer implements consistent hashing to backend hosts.
                                                properties:
                                                  tableSize:
                                                    description: The table size for Maglev hashing.
                                                    type: integer
                                                required:
                                                  - tableSize
                                                type: object
                                              ringHash:
                                                description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                                properties:
                                                  minimumRingSize:
                                                    description: The minimum number of virtual nodes to use for the hash ring.
                                                    type: integer
                                                type: object
                                              useSourceIp:
                                                description: Hash based on the source IP address.
                                                type: boolean
                                            type: object
                                          simple:
                                            description: Use standard load balancing algorithms that require no tuning.
                                            enum:
                                              - UNSPECIFIED
                                              - RANDOM
                                              - PASSTHROUGH
                                              - ROUND_ROBIN
                                              - LEAST_REQUEST
                                            type: string
                                        type: object
                                      resilience:
                                        description: Resilience settings for the clients.
                                        properties:
                                          circuitBreakerSensitivity:
                                            description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                            enum:
                                              - UNSET
                                              - LOW
                                              - MEDIUM
                                              - HIGH
                                              - CUSTOM
                                            type: string
                                          connectionPool:
                                            description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                            properties:
                                              http:
                                                properties:
                                                  maxRequests:
                                                    description: Maximum number of active requests to the service.
                                                    type: integer
                                                  maxRequestsPerConnection:
                                                    description: Maximum number of requests per connection to the service.
                                                    type: integer
                                                  requestTimeout:
                                                    description: Timeout for HTTP requests.
                                                    type: string
                                                  retries:
                                                    description: Retry policy for HTTP requests.
                                                    properties:
                                                      attempts:
                                                        description: Number of retries for a given request.
                                                        format: int32
                                                        type: integer
                                                      perTryTimeout:
                                                        description: Timeout per retry attempt for a given request.
                                                        type: string
                                                      retryBackOff:
                                                        description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                        properties:
                                                          baseInterval:
                                                            description: The base interval between retry attempts.
                                                            type: string
                                                          maxInterval:
                                                            description: The maximum interval between retry attempts.
                                                            type: string
                                                        required:
                                                          - baseInterval
                                                        type: object
                                                      retryOn:
                                                        description: Specifies the conditions under which retry takes place.
                                                        type: string
                                                    required:
                                                      - attempts
                                                    type: object
                                                type: object
                                              tcp:
                                                properties:
                                                  connectTimeout:
                                                    description: TCP connection timeout.
                                                    type: string
                                                  keepAlive:
                                                    description: Keep Alive Settings.
                                                    properties:
                                                      idleTime:
                                                        description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                        nullable: true
                                                        type: integer
                                                      interval:
                                                        description: The number of seconds between keep-alive probes.
                                                        nullable: true
                                                        type: integer
                                                      probes:
                                                        description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                        nullable: true
                                                        type: integer
                                                    type: object
                                                  maxConnections:
                                                    description: Maximum number of HTTP1 /TCP connections to the service.
                                                    type: integer
                                                type: object
                                            type: object
                                          outlierDetection:
                                            description: Outlier detection settings for the upstream host when custom mode is used.
                                            properties:
                                              baseEjectionTime:
                                                description: The base time that a host is ejected for.
                                                type: string
                                              consecutive5xx:
                                                description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                                nullable: true
                                                type: integer
                                              consecutiveGatewayFailure:
                                                description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                                nullable: true
                                                type: integer
                                              consecutiveLocalOriginFailure:
                                                nullable: true
                                                type: integer
                                              enforcingConsecutive5xx:
                                                description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                                nullable: true
                                                type: integer
                                              enforcingConsecutiveGatewayFailure:
                                                description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                                nullable: true
                                                type: integer
                                              enforcingConsecutiveLocalOriginFailure:
                                                description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                                nullable: true
                                                type: integer
                                              interval:
                                                description: The time interval between ejection analysis sweeps.
                                                type: string
                                              maxEjectionPercent:
                                                description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                                nullable: true
                                                type: integer
                                              maxEjectionTime:
                                                description: The maximum time that a host is ejected for.
                                                type: string
                                              splitExternalLocalOriginErrors:
                                                description: Determines whether to distinguish local origin failures from external errors.
                                                type: boolean
                                            type: object
                                        type: object
                                    type: object
                                type: object
                              type: array
                          type: object
                        rateLimiting:
                          description: Configuration for rate limiting requests.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - settings
                                  - required:
                                      - externalService
                                  - required:
                                      - local
                            - required:
                                - settings
                            - required:
                                - externalService
                            - required:
                                - local
                          properties:
                            externalService:
                              description: Configure ratelimiting using an external ratelimit server.
                              properties:
                                domain:
                                  description: The rate limit domain to use when calling the rate limit service.
                                  type: string
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rateLimitServerUri:
                                  description: The URI at which the external rate limit server can be reached.
                                  type: string
                                rules:
                                  description: A set of rate limit rules.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions that are to be applied for this rate limit configuration.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - sourceCluster
                                                  - required:
                                                      - destinationCluster
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - requestHeaders
                                                  - required:
                                                      - headerValueMatch
                                            - required:
                                                - sourceCluster
                                            - required:
                                                - destinationCluster
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - requestHeaders
                                            - required:
                                                - headerValueMatch
                                          properties:
                                            destinationCluster:
                                              description: Rate limit on destination envoy cluster.
                                              type: object
                                            headerValueMatch:
                                              description: Rate limit on the existence of certain request headers.
                                              properties:
                                                descriptorValue:
                                                  description: The value to use in the descriptor entry.
                                                  type: string
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                headers:
                                                  additionalProperties:
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - exact
                                                            - required:
                                                                - prefix
                                                            - required:
                                                                - regex
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                    properties:
                                                      exact:
                                                        description: Exact string match.
                                                        type: string
                                                      prefix:
                                                        description: Prefix-based match.
                                                        type: string
                                                      regex:
                                                        description: ECMAscript style regex-based match.
                                                        type: string
                                                    type: object
                                                  description: Specifies a set of headers that the rate limit action should match on.
                                                  type: object
                                              required:
                                                - headers
                                                - descriptorValue
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on remote address of client.
                                              type: object
                                            requestHeaders:
                                              description: Rate limit on the value of certain request headers.
                                              properties:
                                                descriptorKey:
                                                  description: The key to use in the descriptor entry.
                                                  type: string
                                                headerName:
                                                  description: The header name to be queried from the request headers.
                                                  type: string
                                              required:
                                                - headerName
                                                - descriptorKey
                                              type: object
                                            sourceCluster:
                                              description: Rate limit on source envoy cluster.
                                              type: object
                                          type: object
                                        type: array
                                    required:
                                      - dimensions
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the external rate limit server RPC.
                                  type: string
                                tls:
                                  description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                              required:
                                - domain
                                - rateLimitServerUri
                                - rules
                              type: object
                            local:
                              description: Apply rate limits internally in the Envoy proxy.
                              properties:
                                maxWildcardDimensions:
                                  description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                  nullable: true
                                  type: integer
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  nullable: true
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  nullable: true
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  nullable: true
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      tokenBucket:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          fillInterval:
                                            description: The fill interval that tokens are added to the bucket.
                                            type: string
                                          maxTokens:
                                            description: The maximum tokens that the bucket can hold.
                                            nullable: true
                                            type: integer
                                          tokensPerFill:
                                            description: The number of tokens added to the bucket during each fill interval.
                                            nullable: true
                                            type: integer
                                        required:
                                          - maxTokens
                                          - fillInterval
                                        type: object
                                    required:
                                      - dimensions
                                      - tokenBucket
                                    type: object
                                  type: array
                              required:
                                - rules
                              type: object
                            settings:
                              properties:
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      limit:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          requestsPerUnit:
                                            description: Specifies the value of the rate limit.
                                            type: integer
                                          unit:
                                            description: Specifies the unit of time for rate limit.
                                            enum:
                                              - UNKNOWN
                                              - SECOND
                                              - MINUTE
                                              - HOUR
                                              - DAY
                                            type: string
                                        required:
                                          - requestsPerUnit
                                          - unit
                                        type: object
                                    required:
                                      - dimensions
                                      - limit
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the rate limit server RPC.
                                  type: string
                              required:
                                - rules
                              type: object
                          type: object
                        reachability:
                          description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                          properties:
                            hosts:
                              description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                              items:
                                type: string
                              type: array
                            mode:
                              description: A short cut for specifying the set of services accessed by the workload.
                              enum:
                                - UNSET
                                - NAMESPACE
                                - GROUP
                                - WORKSPACE
                                - CLUSTER
                                - CUSTOM
                              type: string
                          type: object
                        resilience:
                          description: Resilience settings such as timeouts, retries, etc., affecting outbound traffic from proxy workloads.
                          properties:
                            circuitBreakerSensitivity:
                              description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.circuitBreakerSensitivity`.
                              enum:
                                - UNSET
                                - LOW
                                - MEDIUM
                                - HIGH
                              type: string
                            httpRequestTimeout:
                              description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.requestTimeout`.
                              type: string
                            httpRetries:
                              description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.retries`.
                              properties:
                                attempts:
                                  description: Number of retries for a given request.
                                  format: int32
                                  type: integer
                                perTryTimeout:
                                  description: Timeout per retry attempt for a given request.
                                  type: string
                                retryBackOff:
                                  description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                  properties:
                                    baseInterval:
                                      description: The base interval between retry attempts.
                                      type: string
                                    maxInterval:
                                      description: The maximum interval between retry attempts.
                                      type: string
                                  required:
                                    - baseInterval
                                  type: object
                                retryOn:
                                  description: Specifies the conditions under which retry takes place.
                                  type: string
                              required:
                                - attempts
                              type: object
                            keepAlive:
                              description: Keep Alive Settings.
                              properties:
                                tcp:
                                  description: TCP Keep Alive settings associated with the upstream and downstream TCP connections.
                                  properties:
                                    downstream:
                                      description: TCP Keep Alive Settings associated with the downstream (client) connection.
                                      properties:
                                        idleTime:
                                          description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                          nullable: true
                                          type: integer
                                        interval:
                                          description: The number of seconds between keep-alive probes.
                                          nullable: true
                                          type: integer
                                        probes:
                                          description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                          nullable: true
                                          type: integer
                                      type: object
                                    upstream:
                                      description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.tcp.keepAlive`.
                                      properties:
                                        idleTime:
                                          description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                          nullable: true
                                          type: integer
                                        interval:
                                          description: The number of seconds between keep-alive probes.
                                          nullable: true
                                          type: integer
                                        probes:
                                          description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                          nullable: true
                                          type: integer
                                      type: object
                                  type: object
                              type: object
                          type: object
                        upstreamTrafficSettings:
                          description: List of hosts and the associated traffic settings to be used by the clients that are downstreams to the defined upstream hosts.
                          items:
                            properties:
                              hosts:
                                description: List of hosts for which the settings will be created.
                                items:
                                  type: string
                                type: array
                              settings:
                                description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                properties:
                                  authentication:
                                    description: Configuration for connection authentication parameters.
                                    properties:
                                      trafficMode:
                                        description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                        enum:
                                          - UNSET
                                          - OPTIONAL
                                          - REQUIRED
                                        type: string
                                    type: object
                                  loadBalancer:
                                    description: Load balancing settings for the clients.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - simple
                                            - required:
                                                - consistentHash
                                      - required:
                                          - simple
                                      - required:
                                          - consistentHash
                                    properties:
                                      consistentHash:
                                        allOf:
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - httpHeaderName
                                                    - required:
                                                        - httpCookie
                                                    - required:
                                                        - useSourceIp
                                                    - required:
                                                        - httpQueryParameterName
                                              - required:
                                                  - httpHeaderName
                                              - required:
                                                  - httpCookie
                                              - required:
                                                  - useSourceIp
                                              - required:
                                                  - httpQueryParameterName
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - ringHash
                                                    - required:
                                                        - maglev
                                              - required:
                                                  - ringHash
                                              - required:
                                                  - maglev
                                        description: Use consistent hash load balancing which can provide soft session affinity.
                                        properties:
                                          httpCookie:
                                            description: Hash based on HTTP cookie.
                                            properties:
                                              name:
                                                description: Name of the cookie.
                                                type: string
                                              path:
                                                description: Path to set for the cookie.
                                                type: string
                                              ttl:
                                                description: Lifetime of the cookie.
                                                type: string
                                            required:
                                              - name
                                              - ttl
                                            type: object
                                          httpHeaderName:
                                            description: Hash based on a specific HTTP header.
                                            type: string
                                          httpQueryParameterName:
                                            description: Hash based on a specific HTTP query parameter.
                                            type: string
                                          maglev:
                                            description: The Maglev load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              tableSize:
                                                description: The table size for Maglev hashing.
                                                type: integer
                                            required:
                                              - tableSize
                                            type: object
                                          ringHash:
                                            description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              minimumRingSize:
                                                description: The minimum number of virtual nodes to use for the hash ring.
                                                type: integer
                                            type: object
                                          useSourceIp:
                                            description: Hash based on the source IP address.
                                            type: boolean
                                        type: object
                                      simple:
                                        description: Use standard load balancing algorithms that require no tuning.
                                        enum:
                                          - UNSPECIFIED
                                          - RANDOM
                                          - PASSTHROUGH
                                          - ROUND_ROBIN
                                          - LEAST_REQUEST
                                        type: string
                                    type: object
                                  resilience:
                                    description: Resilience settings for the clients.
                                    properties:
                                      circuitBreakerSensitivity:
                                        description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                        enum:
                                          - UNSET
                                          - LOW
                                          - MEDIUM
                                          - HIGH
                                          - CUSTOM
                                        type: string
                                      connectionPool:
                                        description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                        properties:
                                          http:
                                            properties:
                                              maxRequests:
                                                description: Maximum number of active requests to the service.
                                                type: integer
                                              maxRequestsPerConnection:
                                                description: Maximum number of requests per connection to the service.
                                                type: integer
                                              requestTimeout:
                                                description: Timeout for HTTP requests.
                                                type: string
                                              retries:
                                                description: Retry policy for HTTP requests.
                                                properties:
                                                  attempts:
                                                    description: Number of retries for a given request.
                                                    format: int32
                                                    type: integer
                                                  perTryTimeout:
                                                    description: Timeout per retry attempt for a given request.
                                                    type: string
                                                  retryBackOff:
                                                    description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                    properties:
                                                      baseInterval:
                                                        description: The base interval between retry attempts.
                                                        type: string
                                                      maxInterval:
                                                        description: The maximum interval between retry attempts.
                                                        type: string
                                                    required:
                                                      - baseInterval
                                                    type: object
                                                  retryOn:
                                                    description: Specifies the conditions under which retry takes place.
                                                    type: string
                                                required:
                                                  - attempts
                                                type: object
                                            type: object
                                          tcp:
                                            properties:
                                              connectTimeout:
                                                description: TCP connection timeout.
                                                type: string
                                              keepAlive:
                                                description: Keep Alive Settings.
                                                properties:
                                                  idleTime:
                                                    description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                    nullable: true
                                                    type: integer
                                                  interval:
                                                    description: The number of seconds between keep-alive probes.
                                                    nullable: true
                                                    type: integer
                                                  probes:
                                                    description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                    nullable: true
                                                    type: integer
                                                type: object
                                              maxConnections:
                                                description: Maximum number of HTTP1 /TCP connections to the service.
                                                type: integer
                                            type: object
                                        type: object
                                      outlierDetection:
                                        description: Outlier detection settings for the upstream host when custom mode is used.
                                        properties:
                                          baseEjectionTime:
                                            description: The base time that a host is ejected for.
                                            type: string
                                          consecutive5xx:
                                            description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveGatewayFailure:
                                            description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveLocalOriginFailure:
                                            nullable: true
                                            type: integer
                                          enforcingConsecutive5xx:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveGatewayFailure:
                                            description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveLocalOriginFailure:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                            nullable: true
                                            type: integer
                                          interval:
                                            description: The time interval between ejection analysis sweeps.
                                            type: string
                                          maxEjectionPercent:
                                            description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                            nullable: true
                                            type: integer
                                          maxEjectionTime:
                                            description: The maximum time that a host is ejected for.
                                            type: string
                                          splitExternalLocalOriginErrors:
                                            description: Determines whether to distinguish local origin failures from external errors.
                                            type: boolean
                                        type: object
                                    type: object
                                type: object
                            type: object
                          type: array
                      type: object
                    unsetFields:
                      description: Unset fields specify fields that must not have any value.
                      items:
                        type: string
                      type: array
                    wafSettings:
                      description: WAF settings is used to set firewall rules.
                      properties:
                        rules:
                          description: Rules to be leveraged by WAF.
                          items:
                            type: string
                          type: array
                      required:
                        - rules
                      type: object
                    wasmExtensions:
                      description: Wasm Extensions specifies all the WasmExtensions assigned to this profile with the specific configuration for each extension.
                      items:
                        properties:
                          config:
                            description: Configuration parameters sent to the WASM plugin execution.
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          fqn:
                            description: Fqn of the extension to be executed.
                            type: string
                          match:
                            description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                            items:
                              properties:
                                mode:
                                  description: Criteria for selecting traffic by their direction.
                                  enum:
                                    - UNDEFINED
                                    - CLIENT
                                    - SERVER
                                    - CLIENT_AND_SERVER
                                  type: string
                                ports:
                                  description: Criteria for selecting traffic by their destination port.
                                  items:
                                    properties:
                                      number:
                                        type: integer
                                    required:
                                      - number
                                    type: object
                                  type: array
                              type: object
                            type: array
                        required:
                          - fqn
                        type: object
                      type: array
                  type: object
                deletionProtectionEnabled:
                  description: When set, prevents the resource from being deleted.
                  type: boolean
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                mandates:
                  description: Mandates section of the profile is meant for configurations which can't be relaxed.
                  properties:
                    authenticationSettings:
                      description: Authentication settings is used to set workload-to-workload traffic and end-user/origin authentication configuration.
                      properties:
                        http:
                          description: HTTP request authentication is used to configure authentication of origin/end-user credentials like JSON Web Token (JWT).
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - jwt
                                  - required:
                                      - rules
                            - required:
                                - jwt
                            - required:
                                - rules
                          properties:
                            jwt:
                              description: Authenticate an HTTP request from a JWT Token attached to it.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                - required:
                                    - jwksUri
                                - required:
                                    - jwks
                              properties:
                                audiences:
                                  description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                  items:
                                    type: string
                                  type: array
                                fromCookies:
                                  description: List of cookie names from which JWT is expected.
                                  items:
                                    type: string
                                  type: array
                                fromHeaders:
                                  description: This field specifies the locations to extract JWT token.
                                  items:
                                    properties:
                                      name:
                                        description: The HTTP header name.
                                        type: string
                                      prefix:
                                        description: The prefix that should be stripped before decoding the token.
                                        type: string
                                    required:
                                      - name
                                    type: object
                                  type: array
                                issuer:
                                  description: Identifies the issuer that issued the JWT.
                                  type: string
                                jwks:
                                  description: JSON Web Key Set of public keys to validate signature of the JWT.
                                  type: string
                                jwksUri:
                                  description: URL of the provider's public key set to validate signature of the JWT.
                                  type: string
                                outputClaimToHeaders:
                                  description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                  items:
                                    properties:
                                      claim:
                                        description: The name of the claim to be copied from.
                                        type: string
                                      header:
                                        description: The name of the header to be created.
                                        type: string
                                    required:
                                      - header
                                      - claim
                                    type: object
                                  type: array
                                outputPayloadToHeader:
                                  description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                  type: string
                              required:
                                - issuer
                              type: object
                            oidc:
                              properties:
                                authScopes:
                                  description: Optional list of OAuth scopes to be claimed in the authorization request.
                                  items:
                                    type: string
                                  type: array
                                authType:
                                  description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                  enum:
                                    - DEFAULT_AUTH_TYPE
                                    - URL_ENCODED_BODY
                                    - BASIC_AUTH
                                  type: string
                                clientId:
                                  description: The client_id to be used in the authorize calls.
                                  type: string
                                clientTokenSecret:
                                  description: The name of the Kubernetes secret containing the client secret.
                                  type: string
                                grantType:
                                  enum:
                                    - DEFAULT_GRANT_TYPE
                                    - AUTHORIZATION_CODE
                                  type: string
                                provider:
                                  description: The OIDC Provider configuration.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    authorizationEndpoint:
                                      description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                      type: string
                                    issuer:
                                      description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                      type: string
                                    jwks:
                                      description: JSON string with the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    jwksUri:
                                      description: URI for the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    tls:
                                      description: The TLS settings used by the clients to connect with the OIDC provider.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    tokenEndpoint:
                                      description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                redirectPathMatcher:
                                  description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                  type: string
                                redirectUri:
                                  description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                  type: string
                                signoutPath:
                                  description: The path to sign a user out, clearing their credential cookies.
                                  type: string
                                useRefreshToken:
                                  description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                  nullable: true
                                  type: boolean
                              required:
                                - clientId
                                - clientTokenSecret
                                - redirectUri
                                - provider
                              type: object
                            requireJwt:
                              description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                              nullable: true
                              type: boolean
                            rules:
                              description: List of rules how to authenticate an HTTP request.
                              properties:
                                jwt:
                                  description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                  items:
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - jwksUri
                                            - required:
                                                - jwks
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                    properties:
                                      audiences:
                                        description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                        items:
                                          type: string
                                        type: array
                                      fromCookies:
                                        description: List of cookie names from which JWT is expected.
                                        items:
                                          type: string
                                        type: array
                                      fromHeaders:
                                        description: This field specifies the locations to extract JWT token.
                                        items:
                                          properties:
                                            name:
                                              description: The HTTP header name.
                                              type: string
                                            prefix:
                                              description: The prefix that should be stripped before decoding the token.
                                              type: string
                                          required:
                                            - name
                                          type: object
                                        type: array
                                      issuer:
                                        description: Identifies the issuer that issued the JWT.
                                        type: string
                                      jwks:
                                        description: JSON Web Key Set of public keys to validate signature of the JWT.
                                        type: string
                                      jwksUri:
                                        description: URL of the provider's public key set to validate signature of the JWT.
                                        type: string
                                      outputClaimToHeaders:
                                        description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                        items:
                                          properties:
                                            claim:
                                              description: The name of the claim to be copied from.
                                              type: string
                                            header:
                                              description: The name of the header to be created.
                                              type: string
                                          required:
                                            - header
                                            - claim
                                          type: object
                                        type: array
                                      outputPayloadToHeader:
                                        description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                        type: string
                                    required:
                                      - issuer
                                    type: object
                                  type: array
                              type: object
                          type: object
                        trafficMode:
                          enum:
                            - UNSET
                            - OPTIONAL
                            - REQUIRED
                          type: string
                      type: object
                    traffic:
                      description: Traffic settings for proxy workloads.
                      properties:
                        inbound:
                          description: Configures inbound traffic.
                          properties:
                            failoverSettings:
                              description: Failover settings apply to all clients accessing the hostname defined in this section.
                              properties:
                                automaticLoadBalancing:
                                  properties:
                                    enabled:
                                      description: Whether to enable automatic load balancing.
                                      nullable: true
                                      type: boolean
                                  type: object
                                failoverPriority:
                                  description: FailoverPriority specifies the failover priority for traffic.
                                  items:
                                    type: string
                                  type: array
                                regionalFailover:
                                  description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                                  items:
                                    properties:
                                      from:
                                        description: Originating region.
                                        type: string
                                      to:
                                        description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                        type: string
                                    type: object
                                  type: array
                                topologyChoice:
                                  description: TopologyChoice specifies the topology preference for traffic priority.
                                  enum:
                                    - NONE
                                    - CLUSTER
                                    - LOCALITY
                                  type: string
                              type: object
                            rateLimiting:
                              description: Configuration for rate limiting requests.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - settings
                                      - required:
                                          - externalService
                                      - required:
                                          - local
                                - required:
                                    - settings
                                - required:
                                    - externalService
                                - required:
                                    - local
                              properties:
                                externalService:
                                  description: Configure ratelimiting using an external ratelimit server.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - failClosed
                                    - required:
                                        - failClosed
                                  properties:
                                    domain:
                                      description: The rate limit domain to use when calling the rate limit service.
                                      type: string
                                    failClosed:
                                      description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                      type: boolean
                                    rateLimitServerUri:
                                      description: The URI at which the external rate limit server can be reached.
                                      type: string
                                    rules:
                                      description: A set of rate limit rules.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions that are to be applied for this rate limit configuration.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - sourceCluster
                                                      - required:
                                                          - destinationCluster
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - requestHeaders
                                                      - required:
                                                          - headerValueMatch
                                                - required:
                                                    - sourceCluster
                                                - required:
                                                    - destinationCluster
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - requestHeaders
                                                - required:
                                                    - headerValueMatch
                                              properties:
                                                destinationCluster:
                                                  description: Rate limit on destination envoy cluster.
                                                  type: object
                                                headerValueMatch:
                                                  description: Rate limit on the existence of certain request headers.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - dontMatch
                                                    - required:
                                                        - dontMatch
                                                  properties:
                                                    descriptorValue:
                                                      description: The value to use in the descriptor entry.
                                                      type: string
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      type: boolean
                                                    headers:
                                                      additionalProperties:
                                                        oneOf:
                                                          - not:
                                                              anyOf:
                                                                - required:
                                                                    - exact
                                                                - required:
                                                                    - prefix
                                                                - required:
                                                                    - regex
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                        properties:
                                                          exact:
                                                            description: Exact string match.
                                                            type: string
                                                          prefix:
                                                            description: Prefix-based match.
                                                            type: string
                                                          regex:
                                                            description: ECMAscript style regex-based match.
                                                            type: string
                                                        type: object
                                                      description: Specifies a set of headers that the rate limit action should match on.
                                                      type: object
                                                  required:
                                                    - headers
                                                    - descriptorValue
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on remote address of client.
                                                  type: object
                                                requestHeaders:
                                                  description: Rate limit on the value of certain request headers.
                                                  properties:
                                                    descriptorKey:
                                                      description: The key to use in the descriptor entry.
                                                      type: string
                                                    headerName:
                                                      description: The header name to be queried from the request headers.
                                                      type: string
                                                  required:
                                                    - headerName
                                                    - descriptorKey
                                                  type: object
                                                sourceCluster:
                                                  description: Rate limit on source envoy cluster.
                                                  type: object
                                              type: object
                                            type: array
                                        required:
                                          - dimensions
                                        type: object
                                      type: array
                                    timeout:
                                      description: The timeout in seconds for the external rate limit server RPC.
                                      type: string
                                    tls:
                                      description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - clientCertificate
                                                - required:
                                                    - clientCertificate
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - privateKey
                                                - required:
                                                    - privateKey
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - caCertificates
                                                - required:
                                                    - caCertificates
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                  required:
                                    - domain
                                    - rateLimitServerUri
                                    - rules
                                  type: object
                                local:
                                  description: Apply rate limits internally in the Envoy proxy.
                                  properties:
                                    maxWildcardDimensions:
                                      description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                      nullable: true
                                      type: integer
                                    rules:
                                      description: A list of rules for ratelimiting.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions to define each ratelimit rule.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - header
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                              properties:
                                                header:
                                                  description: Rate limit on certain HTTP headers.
                                                  properties:
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      nullable: true
                                                      type: boolean
                                                    name:
                                                      description: Name of the header to match on.
                                                      nullable: true
                                                      type: string
                                                    value:
                                                      description: Value of the header to match on if matching on a specific value.
                                                      oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - exact
                                                              - required:
                                                                  - prefix
                                                              - required:
                                                                  - regex
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                      properties:
                                                        exact:
                                                          description: Exact string match.
                                                          type: string
                                                        prefix:
                                                          description: Prefix-based match.
                                                          type: string
                                                        regex:
                                                          description: ECMAscript style regex-based match.
                                                          type: string
                                                      type: object
                                                  required:
                                                    - name
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on the remote address of client.
                                                  properties:
                                                    value:
                                                      description: Ratelimit on a specific remote address.
                                                      nullable: true
                                                      type: string
                                                  required:
                                                    - value
                                                  type: object
                                              type: object
                                            type: array
                                          tokenBucket:
                                            description: The ratelimit value that will be configured for the above rules.
                                            properties:
                                              fillInterval:
                                                description: The fill interval that tokens are added to the bucket.
                                                type: string
                                              maxTokens:
                                                description: The maximum tokens that the bucket can hold.
                                                nullable: true
                                                type: integer
                                              tokensPerFill:
                                                description: The number of tokens added to the bucket during each fill interval.
                                                nullable: true
                                                type: integer
                                            required:
                                              - maxTokens
                                              - fillInterval
                                            type: object
                                        required:
                                          - dimensions
                                          - tokenBucket
                                        type: object
                                      type: array
                                  required:
                                    - rules
                                  type: object
                                settings:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - failClosed
                                    - required:
                                        - failClosed
                                  properties:
                                    failClosed:
                                      description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                      type: boolean
                                    rules:
                                      description: A list of rules for ratelimiting.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions to define each ratelimit rule.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - header
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                              properties:
                                                header:
                                                  description: Rate limit on certain HTTP headers.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - dontMatch
                                                    - required:
                                                        - dontMatch
                                                  properties:
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      type: boolean
                                                    name:
                                                      description: Name of the header to match on.
                                                      type: string
                                                    value:
                                                      description: Value of the header to match on if matching on a specific value.
                                                      oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - exact
                                                              - required:
                                                                  - prefix
                                                              - required:
                                                                  - regex
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                      properties:
                                                        exact:
                                                          description: Exact string match.
                                                          type: string
                                                        prefix:
                                                          description: Prefix-based match.
                                                          type: string
                                                        regex:
                                                          description: ECMAscript style regex-based match.
                                                          type: string
                                                      type: object
                                                  required:
                                                    - name
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on the remote address of client.
                                                  properties:
                                                    value:
                                                      description: Ratelimit on a specific remote address.
                                                      type: string
                                                  required:
                                                    - value
                                                  type: object
                                              type: object
                                            type: array
                                          limit:
                                            description: The ratelimit value that will be configured for the above rules.
                                            oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - requestsPerUnit
                                              - required:
                                                  - requestsPerUnit
                                            properties:
                                              requestsPerUnit:
                                                description: Specifies the value of the rate limit.
                                                type: integer
                                              unit:
                                                description: Specifies the unit of time for rate limit.
                                                enum:
                                                  - UNKNOWN
                                                  - SECOND
                                                  - MINUTE
                                                  - HOUR
                                                  - DAY
                                                type: string
                                            required:
                                              - requestsPerUnit
                                              - unit
                                            type: object
                                        required:
                                          - dimensions
                                          - limit
                                        type: object
                                      type: array
                                    timeout:
                                      description: The timeout in seconds for the rate limit server RPC.
                                      type: string
                                  required:
                                    - rules
                                  type: object
                              type: object
                            resilience:
                              description: Resiliency configuration for inbound connections.
                              properties:
                                connectionPool:
                                  description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                  properties:
                                    tcp:
                                      properties:
                                        keepAlive:
                                          description: Keep Alive Settings.
                                          properties:
                                            idleTime:
                                              description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                              nullable: true
                                              type: integer
                                            interval:
                                              description: The number of seconds between keep-alive probes.
                                              nullable: true
                                              type: integer
                                            probes:
                                              description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                              nullable: true
                                              type: integer
                                          type: object
                                      type: object
                                  type: object
                                meshTimeout:
                                  description: Configures the max connection and stream durations for HTTP and TCP connections.
                                  properties:
                                    maxConnectionDuration:
                                      description: This specifies the duration of time after which a downstream and upstream connection will be drained and/or closed, starting from when it was first established.
                                      type: string
                                    maxDownstreamConnectionDuration:
                                      description: The maximum duration of a TCP connection.
                                      type: string
                                    maxStreamDuration:
                                      description: The max stream duration is the maximum time that a stream’s lifetime will span.
                                      type: string
                                    proxyType:
                                      description: Specifies the type of proxy to which to apply the mesh timeout settings.
                                      enum:
                                        - ANY
                                        - SIDECAR
                                        - GATEWAY
                                      type: string
                                  type: object
                              type: object
                          type: object
                        outbound:
                          description: Configures outbound traffic.
                          properties:
                            egress:
                              description: Specifies the details of the egress proxy to which traffic to services that are not part to the mesh should be forwarded to from the proxy workloads.
                              properties:
                                host:
                                  description: Specifies the egress gateway hostname.
                                  type: string
                              required:
                                - host
                              type: object
                            reachability:
                              description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                              properties:
                                hosts:
                                  description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                                  items:
                                    type: string
                                  type: array
                                mode:
                                  description: A short cut for specifying the set of services accessed by the workload.
                                  enum:
                                    - UNSET
                                    - NAMESPACE
                                    - GROUP
                                    - WORKSPACE
                                    - CLUSTER
                                    - CUSTOM
                                  type: string
                              type: object
                            upstreamTrafficSettings:
                              description: List of hosts and the associated traffic settings to be used by the clients sending traffic to them.
                              items:
                                properties:
                                  hosts:
                                    description: List of hosts for which the settings will be created.
                                    items:
                                      type: string
                                    type: array
                                  settings:
                                    description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                    properties:
                                      authentication:
                                        description: Configuration for connection authentication parameters.
                                        properties:
                                          trafficMode:
                                            description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                            enum:
                                              - UNSET
                                              - OPTIONAL
                                              - REQUIRED
                                            type: string
                                        type: object
                                      loadBalancer:
                                        description: Load balancing settings for the clients.
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - simple
                                                - required:
                                                    - consistentHash
                                          - required:
                                              - simple
                                          - required:
                                              - consistentHash
                                        properties:
                                          consistentHash:
                                            allOf:
                                              - oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - httpHeaderName
                                                        - required:
                                                            - httpCookie
                                                        - required:
                                                            - useSourceIp
                                                        - required:
                                                            - httpQueryParameterName
                                                  - required:
                                                      - httpHeaderName
                                                  - required:
                                                      - httpCookie
                                                  - required:
                                                      - useSourceIp
                                                  - required:
                                                      - httpQueryParameterName
                                              - oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - ringHash
                                                        - required:
                                                            - maglev
                                                  - required:
                                                      - ringHash
                                                  - required:
                                                      - maglev
                                            description: Use consistent hash load balancing which can provide soft session affinity.
                                            properties:
                                              httpCookie:
                                                description: Hash based on HTTP cookie.
                                                properties:
                                                  name:
                                                    description: Name of the cookie.
                                                    type: string
                                                  path:
                                                    description: Path to set for the cookie.
                                                    type: string
                                                  ttl:
                                                    description: Lifetime of the cookie.
                                                    type: string
                                                required:
                                                  - name
                                                  - ttl
                                                type: object
                                              httpHeaderName:
                                                description: Hash based on a specific HTTP header.
                                                type: string
                                              httpQueryParameterName:
                                                description: Hash based on a specific HTTP query parameter.
                                                type: string
                                              maglev:
                                                description: The Maglev load balancer implements consistent hashing to backend hosts.
                                                properties:
                                                  tableSize:
                                                    description: The table size for Maglev hashing.
                                                    type: integer
                                                required:
                                                  - tableSize
                                                type: object
                                              ringHash:
                                                description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                                properties:
                                                  minimumRingSize:
                                                    description: The minimum number of virtual nodes to use for the hash ring.
                                                    type: integer
                                                type: object
                                              useSourceIp:
                                                description: Hash based on the source IP address.
                                                type: boolean
                                            type: object
                                          simple:
                                            description: Use standard load balancing algorithms that require no tuning.
                                            enum:
                                              - UNSPECIFIED
                                              - RANDOM
                                              - PASSTHROUGH
                                              - ROUND_ROBIN
                                              - LEAST_REQUEST
                                            type: string
                                        type: object
                                      resilience:
                                        description: Resilience settings for the clients.
                                        properties:
                                          circuitBreakerSensitivity:
                                            description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                            enum:
                                              - UNSET
                                              - LOW
                                              - MEDIUM
                                              - HIGH
                                              - CUSTOM
                                            type: string
                                          connectionPool:
                                            description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                            properties:
                                              http:
                                                allOf:
                                                  - oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - maxRequests
                                                      - required:
                                                          - maxRequests
                                                  - oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - maxRequestsPerConnection
                                                      - required:
                                                          - maxRequestsPerConnection
                                                properties:
                                                  maxRequests:
                                                    description: Maximum number of active requests to the service.
                                                    type: integer
                                                  maxRequestsPerConnection:
                                                    description: Maximum number of requests per connection to the service.
                                                    type: integer
                                                  requestTimeout:
                                                    description: Timeout for HTTP requests.
                                                    type: string
                                                  retries:
                                                    description: Retry policy for HTTP requests.
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - attempts
                                                      - required:
                                                          - attempts
                                                    properties:
                                                      attempts:
                                                        description: Number of retries for a given request.
                                                        format: int32
                                                        type: integer
                                                      perTryTimeout:
                                                        description: Timeout per retry attempt for a given request.
                                                        type: string
                                                      retryBackOff:
                                                        description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                        properties:
                                                          baseInterval:
                                                            description: The base interval between retry attempts.
                                                            type: string
                                                          maxInterval:
                                                            description: The maximum interval between retry attempts.
                                                            type: string
                                                        required:
                                                          - baseInterval
                                                        type: object
                                                      retryOn:
                                                        description: Specifies the conditions under which retry takes place.
                                                        type: string
                                                    required:
                                                      - attempts
                                                    type: object
                                                type: object
                                              tcp:
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - maxConnections
                                                  - required:
                                                      - maxConnections
                                                properties:
                                                  connectTimeout:
                                                    description: TCP connection timeout.
                                                    type: string
                                                  keepAlive:
                                                    description: Keep Alive Settings.
                                                    properties:
                                                      idleTime:
                                                        description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                        nullable: true
                                                        type: integer
                                                      interval:
                                                        description: The number of seconds between keep-alive probes.
                                                        nullable: true
                                                        type: integer
                                                      probes:
                                                        description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                        nullable: true
                                                        type: integer
                                                    type: object
                                                  maxConnections:
                                                    description: Maximum number of HTTP1 /TCP connections to the service.
                                                    type: integer
                                                type: object
                                            type: object
                                          outlierDetection:
                                            description: Outlier detection settings for the upstream host when custom mode is used.
                                            oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - splitExternalLocalOriginErrors
                                              - required:
                                                  - splitExternalLocalOriginErrors
                                            properties:
                                              baseEjectionTime:
                                                description: The base time that a host is ejected for.
                                                type: string
                                              consecutive5xx:
                                                description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                                nullable: true
                                                type: integer
                                              consecutiveGatewayFailure:
                                                description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                                nullable: true
                                                type: integer
                                              consecutiveLocalOriginFailure:
                                                nullable: true
                                                type: integer
                                              enforcingConsecutive5xx:
                                                description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                                nullable: true
                                                type: integer
                                              enforcingConsecutiveGatewayFailure:
                                                description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                                nullable: true
                                                type: integer
                                              enforcingConsecutiveLocalOriginFailure:
                                                description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                                nullable: true
                                                type: integer
                                              interval:
                                                description: The time interval between ejection analysis sweeps.
                                                type: string
                                              maxEjectionPercent:
                                                description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                                nullable: true
                                                type: integer
                                              maxEjectionTime:
                                                description: The maximum time that a host is ejected for.
                                                type: string
                                              splitExternalLocalOriginErrors:
                                                description: Determines whether to distinguish local origin failures from external errors.
                                                type: boolean
                                            type: object
                                        type: object
                                    type: object
                                type: object
                              type: array
                          type: object
                      type: object
                    trafficSettings:
                      properties:
                        configGenerationMetadata:
                          description: Metadata values that will be add into the Istio generated configurations.
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                              type: object
                          type: object
                        description:
                          description: A description of the resource.
                          type: string
                        displayName:
                          description: User friendly name for the resource.
                          type: string
                        egress:
                          description: Specifies the details of the egress proxy to which unknown traffic should be forwarded to from the proxy workload.
                          properties:
                            host:
                              description: Specifies the egress gateway hostname.
                              type: string
                            port:
                              description: Deprecated.
                              format: int32
                              type: integer
                          required:
                            - host
                          type: object
                        etag:
                          description: The etag for the resource.
                          type: string
                        fqn:
                          description: Fully-qualified name of the resource.
                          type: string
                        inbound:
                          description: Configures inbound traffic.
                          properties:
                            failoverSettings:
                              description: Failover settings apply to all clients accessing the hostname defined in this section.
                              properties:
                                automaticLoadBalancing:
                                  properties:
                                    enabled:
                                      description: Whether to enable automatic load balancing.
                                      nullable: true
                                      type: boolean
                                  type: object
                                failoverPriority:
                                  description: FailoverPriority specifies the failover priority for traffic.
                                  items:
                                    type: string
                                  type: array
                                regionalFailover:
                                  description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                                  items:
                                    properties:
                                      from:
                                        description: Originating region.
                                        type: string
                                      to:
                                        description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                        type: string
                                    type: object
                                  type: array
                                topologyChoice:
                                  description: TopologyChoice specifies the topology preference for traffic priority.
                                  enum:
                                    - NONE
                                    - CLUSTER
                                    - LOCALITY
                                  type: string
                              type: object
                            rateLimiting:
                              description: Configuration for rate limiting requests.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - settings
                                      - required:
                                          - externalService
                                      - required:
                                          - local
                                - required:
                                    - settings
                                - required:
                                    - externalService
                                - required:
                                    - local
                              properties:
                                externalService:
                                  description: Configure ratelimiting using an external ratelimit server.
                                  properties:
                                    domain:
                                      description: The rate limit domain to use when calling the rate limit service.
                                      type: string
                                    failClosed:
                                      description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                      type: boolean
                                    rateLimitServerUri:
                                      description: The URI at which the external rate limit server can be reached.
                                      type: string
                                    rules:
                                      description: A set of rate limit rules.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions that are to be applied for this rate limit configuration.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - sourceCluster
                                                      - required:
                                                          - destinationCluster
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - requestHeaders
                                                      - required:
                                                          - headerValueMatch
                                                - required:
                                                    - sourceCluster
                                                - required:
                                                    - destinationCluster
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - requestHeaders
                                                - required:
                                                    - headerValueMatch
                                              properties:
                                                destinationCluster:
                                                  description: Rate limit on destination envoy cluster.
                                                  type: object
                                                headerValueMatch:
                                                  description: Rate limit on the existence of certain request headers.
                                                  properties:
                                                    descriptorValue:
                                                      description: The value to use in the descriptor entry.
                                                      type: string
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      type: boolean
                                                    headers:
                                                      additionalProperties:
                                                        oneOf:
                                                          - not:
                                                              anyOf:
                                                                - required:
                                                                    - exact
                                                                - required:
                                                                    - prefix
                                                                - required:
                                                                    - regex
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                        properties:
                                                          exact:
                                                            description: Exact string match.
                                                            type: string
                                                          prefix:
                                                            description: Prefix-based match.
                                                            type: string
                                                          regex:
                                                            description: ECMAscript style regex-based match.
                                                            type: string
                                                        type: object
                                                      description: Specifies a set of headers that the rate limit action should match on.
                                                      type: object
                                                  required:
                                                    - headers
                                                    - descriptorValue
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on remote address of client.
                                                  type: object
                                                requestHeaders:
                                                  description: Rate limit on the value of certain request headers.
                                                  properties:
                                                    descriptorKey:
                                                      description: The key to use in the descriptor entry.
                                                      type: string
                                                    headerName:
                                                      description: The header name to be queried from the request headers.
                                                      type: string
                                                  required:
                                                    - headerName
                                                    - descriptorKey
                                                  type: object
                                                sourceCluster:
                                                  description: Rate limit on source envoy cluster.
                                                  type: object
                                              type: object
                                            type: array
                                        required:
                                          - dimensions
                                        type: object
                                      type: array
                                    timeout:
                                      description: The timeout in seconds for the external rate limit server RPC.
                                      type: string
                                    tls:
                                      description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                  required:
                                    - domain
                                    - rateLimitServerUri
                                    - rules
                                  type: object
                                local:
                                  description: Apply rate limits internally in the Envoy proxy.
                                  properties:
                                    maxWildcardDimensions:
                                      description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                      nullable: true
                                      type: integer
                                    rules:
                                      description: A list of rules for ratelimiting.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions to define each ratelimit rule.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - header
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                              properties:
                                                header:
                                                  description: Rate limit on certain HTTP headers.
                                                  properties:
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      nullable: true
                                                      type: boolean
                                                    name:
                                                      description: Name of the header to match on.
                                                      nullable: true
                                                      type: string
                                                    value:
                                                      description: Value of the header to match on if matching on a specific value.
                                                      oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - exact
                                                              - required:
                                                                  - prefix
                                                              - required:
                                                                  - regex
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                      properties:
                                                        exact:
                                                          description: Exact string match.
                                                          type: string
                                                        prefix:
                                                          description: Prefix-based match.
                                                          type: string
                                                        regex:
                                                          description: ECMAscript style regex-based match.
                                                          type: string
                                                      type: object
                                                  required:
                                                    - name
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on the remote address of client.
                                                  properties:
                                                    value:
                                                      description: Ratelimit on a specific remote address.
                                                      nullable: true
                                                      type: string
                                                  required:
                                                    - value
                                                  type: object
                                              type: object
                                            type: array
                                          tokenBucket:
                                            description: The ratelimit value that will be configured for the above rules.
                                            properties:
                                              fillInterval:
                                                description: The fill interval that tokens are added to the bucket.
                                                type: string
                                              maxTokens:
                                                description: The maximum tokens that the bucket can hold.
                                                nullable: true
                                                type: integer
                                              tokensPerFill:
                                                description: The number of tokens added to the bucket during each fill interval.
                                                nullable: true
                                                type: integer
                                            required:
                                              - maxTokens
                                              - fillInterval
                                            type: object
                                        required:
                                          - dimensions
                                          - tokenBucket
                                        type: object
                                      type: array
                                  required:
                                    - rules
                                  type: object
                                settings:
                                  properties:
                                    failClosed:
                                      description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                      type: boolean
                                    rules:
                                      description: A list of rules for ratelimiting.
                                      items:
                                        properties:
                                          dimensions:
                                            description: A list of dimensions to define each ratelimit rule.
                                            items:
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - remoteAddress
                                                      - required:
                                                          - header
                                                - required:
                                                    - remoteAddress
                                                - required:
                                                    - header
                                              properties:
                                                header:
                                                  description: Rate limit on certain HTTP headers.
                                                  properties:
                                                    dontMatch:
                                                      description: If set to true, the condition will be met when the header value does not match.
                                                      type: boolean
                                                    name:
                                                      description: Name of the header to match on.
                                                      type: string
                                                    value:
                                                      description: Value of the header to match on if matching on a specific value.
                                                      oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - exact
                                                              - required:
                                                                  - prefix
                                                              - required:
                                                                  - regex
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                      properties:
                                                        exact:
                                                          description: Exact string match.
                                                          type: string
                                                        prefix:
                                                          description: Prefix-based match.
                                                          type: string
                                                        regex:
                                                          description: ECMAscript style regex-based match.
                                                          type: string
                                                      type: object
                                                  required:
                                                    - name
                                                  type: object
                                                remoteAddress:
                                                  description: Rate limit on the remote address of client.
                                                  properties:
                                                    value:
                                                      description: Ratelimit on a specific remote address.
                                                      type: string
                                                  required:
                                                    - value
                                                  type: object
                                              type: object
                                            type: array
                                          limit:
                                            description: The ratelimit value that will be configured for the above rules.
                                            properties:
                                              requestsPerUnit:
                                                description: Specifies the value of the rate limit.
                                                type: integer
                                              unit:
                                                description: Specifies the unit of time for rate limit.
                                                enum:
                                                  - UNKNOWN
                                                  - SECOND
                                                  - MINUTE
                                                  - HOUR
                                                  - DAY
                                                type: string
                                            required:
                                              - requestsPerUnit
                                              - unit
                                            type: object
                                        required:
                                          - dimensions
                                          - limit
                                        type: object
                                      type: array
                                    timeout:
                                      description: The timeout in seconds for the rate limit server RPC.
                                      type: string
                                  required:
                                    - rules
                                  type: object
                              type: object
                            resilience:
                              description: Resiliency configuration for inbound connections.
                              properties:
                                connectionPool:
                                  description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                  properties:
                                    tcp:
                                      properties:
                                        keepAlive:
                                          description: Keep Alive Settings.
                                          properties:
                                            idleTime:
                                              description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                              nullable: true
                                              type: integer
                                            interval:
                                              description: The number of seconds between keep-alive probes.
                                              nullable: true
                                              type: integer
                                            probes:
                                              description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                              nullable: true
                                              type: integer
                                          type: object
                                      type: object
                                  type: object
                                meshTimeout:
                                  description: Configures the max connection and stream durations for HTTP and TCP connections.
                                  properties:
                                    maxConnectionDuration:
                                      description: This specifies the duration of time after which a downstream and upstream connection will be drained and/or closed, starting from when it was first established.
                                      type: string
                                    maxDownstreamConnectionDuration:
                                      description: The maximum duration of a TCP connection.
                                      type: string
                                    maxStreamDuration:
                                      description: The max stream duration is the maximum time that a stream’s lifetime will span.
                                      type: string
                                    proxyType:
                                      description: Specifies the type of proxy to which to apply the mesh timeout settings.
                                      enum:
                                        - ANY
                                        - SIDECAR
                                        - GATEWAY
                                      type: string
                                  type: object
                              type: object
                          type: object
                        outbound:
                          description: Configures outbound traffic.
                          properties:
                            egress:
                              description: Specifies the details of the egress proxy to which traffic to services that are not part to the mesh should be forwarded to from the proxy workloads.
                              properties:
                                host:
                                  description: Specifies the egress gateway hostname.
                                  type: string
                              required:
                                - host
                              type: object
                            reachability:
                              description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                              properties:
                                hosts:
                                  description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                                  items:
                                    type: string
                                  type: array
                                mode:
                                  description: A short cut for specifying the set of services accessed by the workload.
                                  enum:
                                    - UNSET
                                    - NAMESPACE
                                    - GROUP
                                    - WORKSPACE
                                    - CLUSTER
                                    - CUSTOM
                                  type: string
                              type: object
                            upstreamTrafficSettings:
                              description: List of hosts and the associated traffic settings to be used by the clients sending traffic to them.
                              items:
                                properties:
                                  hosts:
                                    description: List of hosts for which the settings will be created.
                                    items:
                                      type: string
                                    type: array
                                  settings:
                                    description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                    properties:
                                      authentication:
                                        description: Configuration for connection authentication parameters.
                                        properties:
                                          trafficMode:
                                            description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                            enum:
                                              - UNSET
                                              - OPTIONAL
                                              - REQUIRED
                                            type: string
                                        type: object
                                      loadBalancer:
                                        description: Load balancing settings for the clients.
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - simple
                                                - required:
                                                    - consistentHash
                                          - required:
                                              - simple
                                          - required:
                                              - consistentHash
                                        properties:
                                          consistentHash:
                                            allOf:
                                              - oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - httpHeaderName
                                                        - required:
                                                            - httpCookie
                                                        - required:
                                                            - useSourceIp
                                                        - required:
                                                            - httpQueryParameterName
                                                  - required:
                                                      - httpHeaderName
                                                  - required:
                                                      - httpCookie
                                                  - required:
                                                      - useSourceIp
                                                  - required:
                                                      - httpQueryParameterName
                                              - oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - ringHash
                                                        - required:
                                                            - maglev
                                                  - required:
                                                      - ringHash
                                                  - required:
                                                      - maglev
                                            description: Use consistent hash load balancing which can provide soft session affinity.
                                            properties:
                                              httpCookie:
                                                description: Hash based on HTTP cookie.
                                                properties:
                                                  name:
                                                    description: Name of the cookie.
                                                    type: string
                                                  path:
                                                    description: Path to set for the cookie.
                                                    type: string
                                                  ttl:
                                                    description: Lifetime of the cookie.
                                                    type: string
                                                required:
                                                  - name
                                                  - ttl
                                                type: object
                                              httpHeaderName:
                                                description: Hash based on a specific HTTP header.
                                                type: string
                                              httpQueryParameterName:
                                                description: Hash based on a specific HTTP query parameter.
                                                type: string
                                              maglev:
                                                description: The Maglev load balancer implements consistent hashing to backend hosts.
                                                properties:
                                                  tableSize:
                                                    description: The table size for Maglev hashing.
                                                    type: integer
                                                required:
                                                  - tableSize
                                                type: object
                                              ringHash:
                                                description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                                properties:
                                                  minimumRingSize:
                                                    description: The minimum number of virtual nodes to use for the hash ring.
                                                    type: integer
                                                type: object
                                              useSourceIp:
                                                description: Hash based on the source IP address.
                                                type: boolean
                                            type: object
                                          simple:
                                            description: Use standard load balancing algorithms that require no tuning.
                                            enum:
                                              - UNSPECIFIED
                                              - RANDOM
                                              - PASSTHROUGH
                                              - ROUND_ROBIN
                                              - LEAST_REQUEST
                                            type: string
                                        type: object
                                      resilience:
                                        description: Resilience settings for the clients.
                                        properties:
                                          circuitBreakerSensitivity:
                                            description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                            enum:
                                              - UNSET
                                              - LOW
                                              - MEDIUM
                                              - HIGH
                                              - CUSTOM
                                            type: string
                                          connectionPool:
                                            description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                            properties:
                                              http:
                                                properties:
                                                  maxRequests:
                                                    description: Maximum number of active requests to the service.
                                                    type: integer
                                                  maxRequestsPerConnection:
                                                    description: Maximum number of requests per connection to the service.
                                                    type: integer
                                                  requestTimeout:
                                                    description: Timeout for HTTP requests.
                                                    type: string
                                                  retries:
                                                    description: Retry policy for HTTP requests.
                                                    properties:
                                                      attempts:
                                                        description: Number of retries for a given request.
                                                        format: int32
                                                        type: integer
                                                      perTryTimeout:
                                                        description: Timeout per retry attempt for a given request.
                                                        type: string
                                                      retryBackOff:
                                                        description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                        properties:
                                                          baseInterval:
                                                            description: The base interval between retry attempts.
                                                            type: string
                                                          maxInterval:
                                                            description: The maximum interval between retry attempts.
                                                            type: string
                                                        required:
                                                          - baseInterval
                                                        type: object
                                                      retryOn:
                                                        description: Specifies the conditions under which retry takes place.
                                                        type: string
                                                    required:
                                                      - attempts
                                                    type: object
                                                type: object
                                              tcp:
                                                properties:
                                                  connectTimeout:
                                                    description: TCP connection timeout.
                                                    type: string
                                                  keepAlive:
                                                    description: Keep Alive Settings.
                                                    properties:
                                                      idleTime:
                                                        description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                        nullable: true
                                                        type: integer
                                                      interval:
                                                        description: The number of seconds between keep-alive probes.
                                                        nullable: true
                                                        type: integer
                                                      probes:
                                                        description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                        nullable: true
                                                        type: integer
                                                    type: object
                                                  maxConnections:
                                                    description: Maximum number of HTTP1 /TCP connections to the service.
                                                    type: integer
                                                type: object
                                            type: object
                                          outlierDetection:
                                            description: Outlier detection settings for the upstream host when custom mode is used.
                                            properties:
                                              baseEjectionTime:
                                                description: The base time that a host is ejected for.
                                                type: string
                                              consecutive5xx:
                                                description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                                nullable: true
                                                type: integer
                                              consecutiveGatewayFailure:
                                                description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                                nullable: true
                                                type: integer
                                              consecutiveLocalOriginFailure:
                                                nullable: true
                                                type: integer
                                              enforcingConsecutive5xx:
                                                description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                                nullable: true
                                                type: integer
                                              enforcingConsecutiveGatewayFailure:
                                                description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                                nullable: true
                                                type: integer
                                              enforcingConsecutiveLocalOriginFailure:
                                                description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                                nullable: true
                                                type: integer
                                              interval:
                                                description: The time interval between ejection analysis sweeps.
                                                type: string
                                              maxEjectionPercent:
                                                description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                                nullable: true
                                                type: integer
                                              maxEjectionTime:
                                                description: The maximum time that a host is ejected for.
                                                type: string
                                              splitExternalLocalOriginErrors:
                                                description: Determines whether to distinguish local origin failures from external errors.
                                                type: boolean
                                            type: object
                                        type: object
                                    type: object
                                type: object
                              type: array
                          type: object
                        rateLimiting:
                          description: Configuration for rate limiting requests.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - settings
                                  - required:
                                      - externalService
                                  - required:
                                      - local
                            - required:
                                - settings
                            - required:
                                - externalService
                            - required:
                                - local
                          properties:
                            externalService:
                              description: Configure ratelimiting using an external ratelimit server.
                              properties:
                                domain:
                                  description: The rate limit domain to use when calling the rate limit service.
                                  type: string
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rateLimitServerUri:
                                  description: The URI at which the external rate limit server can be reached.
                                  type: string
                                rules:
                                  description: A set of rate limit rules.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions that are to be applied for this rate limit configuration.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - sourceCluster
                                                  - required:
                                                      - destinationCluster
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - requestHeaders
                                                  - required:
                                                      - headerValueMatch
                                            - required:
                                                - sourceCluster
                                            - required:
                                                - destinationCluster
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - requestHeaders
                                            - required:
                                                - headerValueMatch
                                          properties:
                                            destinationCluster:
                                              description: Rate limit on destination envoy cluster.
                                              type: object
                                            headerValueMatch:
                                              description: Rate limit on the existence of certain request headers.
                                              properties:
                                                descriptorValue:
                                                  description: The value to use in the descriptor entry.
                                                  type: string
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                headers:
                                                  additionalProperties:
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - exact
                                                            - required:
                                                                - prefix
                                                            - required:
                                                                - regex
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                    properties:
                                                      exact:
                                                        description: Exact string match.
                                                        type: string
                                                      prefix:
                                                        description: Prefix-based match.
                                                        type: string
                                                      regex:
                                                        description: ECMAscript style regex-based match.
                                                        type: string
                                                    type: object
                                                  description: Specifies a set of headers that the rate limit action should match on.
                                                  type: object
                                              required:
                                                - headers
                                                - descriptorValue
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on remote address of client.
                                              type: object
                                            requestHeaders:
                                              description: Rate limit on the value of certain request headers.
                                              properties:
                                                descriptorKey:
                                                  description: The key to use in the descriptor entry.
                                                  type: string
                                                headerName:
                                                  description: The header name to be queried from the request headers.
                                                  type: string
                                              required:
                                                - headerName
                                                - descriptorKey
                                              type: object
                                            sourceCluster:
                                              description: Rate limit on source envoy cluster.
                                              type: object
                                          type: object
                                        type: array
                                    required:
                                      - dimensions
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the external rate limit server RPC.
                                  type: string
                                tls:
                                  description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                              required:
                                - domain
                                - rateLimitServerUri
                                - rules
                              type: object
                            local:
                              description: Apply rate limits internally in the Envoy proxy.
                              properties:
                                maxWildcardDimensions:
                                  description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                  nullable: true
                                  type: integer
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  nullable: true
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  nullable: true
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  nullable: true
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      tokenBucket:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          fillInterval:
                                            description: The fill interval that tokens are added to the bucket.
                                            type: string
                                          maxTokens:
                                            description: The maximum tokens that the bucket can hold.
                                            nullable: true
                                            type: integer
                                          tokensPerFill:
                                            description: The number of tokens added to the bucket during each fill interval.
                                            nullable: true
                                            type: integer
                                        required:
                                          - maxTokens
                                          - fillInterval
                                        type: object
                                    required:
                                      - dimensions
                                      - tokenBucket
                                    type: object
                                  type: array
                              required:
                                - rules
                              type: object
                            settings:
                              properties:
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      limit:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          requestsPerUnit:
                                            description: Specifies the value of the rate limit.
                                            type: integer
                                          unit:
                                            description: Specifies the unit of time for rate limit.
                                            enum:
                                              - UNKNOWN
                                              - SECOND
                                              - MINUTE
                                              - HOUR
                                              - DAY
                                            type: string
                                        required:
                                          - requestsPerUnit
                                          - unit
                                        type: object
                                    required:
                                      - dimensions
                                      - limit
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the rate limit server RPC.
                                  type: string
                              required:
                                - rules
                              type: object
                          type: object
                        reachability:
                          description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                          properties:
                            hosts:
                              description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                              items:
                                type: string
                              type: array
                            mode:
                              description: A short cut for specifying the set of services accessed by the workload.
                              enum:
                                - UNSET
                                - NAMESPACE
                                - GROUP
                                - WORKSPACE
                                - CLUSTER
                                - CUSTOM
                              type: string
                          type: object
                        resilience:
                          description: Resilience settings such as timeouts, retries, etc., affecting outbound traffic from proxy workloads.
                          properties:
                            circuitBreakerSensitivity:
                              description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.circuitBreakerSensitivity`.
                              enum:
                                - UNSET
                                - LOW
                                - MEDIUM
                                - HIGH
                              type: string
                            httpRequestTimeout:
                              description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.requestTimeout`.
                              type: string
                            httpRetries:
                              description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.retries`.
                              properties:
                                attempts:
                                  description: Number of retries for a given request.
                                  format: int32
                                  type: integer
                                perTryTimeout:
                                  description: Timeout per retry attempt for a given request.
                                  type: string
                                retryBackOff:
                                  description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                  properties:
                                    baseInterval:
                                      description: The base interval between retry attempts.
                                      type: string
                                    maxInterval:
                                      description: The maximum interval between retry attempts.
                                      type: string
                                  required:
                                    - baseInterval
                                  type: object
                                retryOn:
                                  description: Specifies the conditions under which retry takes place.
                                  type: string
                              required:
                                - attempts
                              type: object
                            keepAlive:
                              description: Keep Alive Settings.
                              properties:
                                tcp:
                                  description: TCP Keep Alive settings associated with the upstream and downstream TCP connections.
                                  properties:
                                    downstream:
                                      description: TCP Keep Alive Settings associated with the downstream (client) connection.
                                      properties:
                                        idleTime:
                                          description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                          nullable: true
                                          type: integer
                                        interval:
                                          description: The number of seconds between keep-alive probes.
                                          nullable: true
                                          type: integer
                                        probes:
                                          description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                          nullable: true
                                          type: integer
                                      type: object
                                    upstream:
                                      description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.tcp.keepAlive`.
                                      properties:
                                        idleTime:
                                          description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                          nullable: true
                                          type: integer
                                        interval:
                                          description: The number of seconds between keep-alive probes.
                                          nullable: true
                                          type: integer
                                        probes:
                                          description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                          nullable: true
                                          type: integer
                                      type: object
                                  type: object
                              type: object
                          type: object
                        upstreamTrafficSettings:
                          description: List of hosts and the associated traffic settings to be used by the clients that are downstreams to the defined upstream hosts.
                          items:
                            properties:
                              hosts:
                                description: List of hosts for which the settings will be created.
                                items:
                                  type: string
                                type: array
                              settings:
                                description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                properties:
                                  authentication:
                                    description: Configuration for connection authentication parameters.
                                    properties:
                                      trafficMode:
                                        description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                        enum:
                                          - UNSET
                                          - OPTIONAL
                                          - REQUIRED
                                        type: string
                                    type: object
                                  loadBalancer:
                                    description: Load balancing settings for the clients.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - simple
                                            - required:
                                                - consistentHash
                                      - required:
                                          - simple
                                      - required:
                                          - consistentHash
                                    properties:
                                      consistentHash:
                                        allOf:
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - httpHeaderName
                                                    - required:
                                                        - httpCookie
                                                    - required:
                                                        - useSourceIp
                                                    - required:
                                                        - httpQueryParameterName
                                              - required:
                                                  - httpHeaderName
                                              - required:
                                                  - httpCookie
                                              - required:
                                                  - useSourceIp
                                              - required:
                                                  - httpQueryParameterName
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - ringHash
                                                    - required:
                                                        - maglev
                                              - required:
                                                  - ringHash
                                              - required:
                                                  - maglev
                                        description: Use consistent hash load balancing which can provide soft session affinity.
                                        properties:
                                          httpCookie:
                                            description: Hash based on HTTP cookie.
                                            properties:
                                              name:
                                                description: Name of the cookie.
                                                type: string
                                              path:
                                                description: Path to set for the cookie.
                                                type: string
                                              ttl:
                                                description: Lifetime of the cookie.
                                                type: string
                                            required:
                                              - name
                                              - ttl
                                            type: object
                                          httpHeaderName:
                                            description: Hash based on a specific HTTP header.
                                            type: string
                                          httpQueryParameterName:
                                            description: Hash based on a specific HTTP query parameter.
                                            type: string
                                          maglev:
                                            description: The Maglev load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              tableSize:
                                                description: The table size for Maglev hashing.
                                                type: integer
                                            required:
                                              - tableSize
                                            type: object
                                          ringHash:
                                            description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              minimumRingSize:
                                                description: The minimum number of virtual nodes to use for the hash ring.
                                                type: integer
                                            type: object
                                          useSourceIp:
                                            description: Hash based on the source IP address.
                                            type: boolean
                                        type: object
                                      simple:
                                        description: Use standard load balancing algorithms that require no tuning.
                                        enum:
                                          - UNSPECIFIED
                                          - RANDOM
                                          - PASSTHROUGH
                                          - ROUND_ROBIN
                                          - LEAST_REQUEST
                                        type: string
                                    type: object
                                  resilience:
                                    description: Resilience settings for the clients.
                                    properties:
                                      circuitBreakerSensitivity:
                                        description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                        enum:
                                          - UNSET
                                          - LOW
                                          - MEDIUM
                                          - HIGH
                                          - CUSTOM
                                        type: string
                                      connectionPool:
                                        description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                        properties:
                                          http:
                                            properties:
                                              maxRequests:
                                                description: Maximum number of active requests to the service.
                                                type: integer
                                              maxRequestsPerConnection:
                                                description: Maximum number of requests per connection to the service.
                                                type: integer
                                              requestTimeout:
                                                description: Timeout for HTTP requests.
                                                type: string
                                              retries:
                                                description: Retry policy for HTTP requests.
                                                properties:
                                                  attempts:
                                                    description: Number of retries for a given request.
                                                    format: int32
                                                    type: integer
                                                  perTryTimeout:
                                                    description: Timeout per retry attempt for a given request.
                                                    type: string
                                                  retryBackOff:
                                                    description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                    properties:
                                                      baseInterval:
                                                        description: The base interval between retry attempts.
                                                        type: string
                                                      maxInterval:
                                                        description: The maximum interval between retry attempts.
                                                        type: string
                                                    required:
                                                      - baseInterval
                                                    type: object
                                                  retryOn:
                                                    description: Specifies the conditions under which retry takes place.
                                                    type: string
                                                required:
                                                  - attempts
                                                type: object
                                            type: object
                                          tcp:
                                            properties:
                                              connectTimeout:
                                                description: TCP connection timeout.
                                                type: string
                                              keepAlive:
                                                description: Keep Alive Settings.
                                                properties:
                                                  idleTime:
                                                    description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                    nullable: true
                                                    type: integer
                                                  interval:
                                                    description: The number of seconds between keep-alive probes.
                                                    nullable: true
                                                    type: integer
                                                  probes:
                                                    description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                    nullable: true
                                                    type: integer
                                                type: object
                                              maxConnections:
                                                description: Maximum number of HTTP1 /TCP connections to the service.
                                                type: integer
                                            type: object
                                        type: object
                                      outlierDetection:
                                        description: Outlier detection settings for the upstream host when custom mode is used.
                                        properties:
                                          baseEjectionTime:
                                            description: The base time that a host is ejected for.
                                            type: string
                                          consecutive5xx:
                                            description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveGatewayFailure:
                                            description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveLocalOriginFailure:
                                            nullable: true
                                            type: integer
                                          enforcingConsecutive5xx:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveGatewayFailure:
                                            description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveLocalOriginFailure:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                            nullable: true
                                            type: integer
                                          interval:
                                            description: The time interval between ejection analysis sweeps.
                                            type: string
                                          maxEjectionPercent:
                                            description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                            nullable: true
                                            type: integer
                                          maxEjectionTime:
                                            description: The maximum time that a host is ejected for.
                                            type: string
                                          splitExternalLocalOriginErrors:
                                            description: Determines whether to distinguish local origin failures from external errors.
                                            type: boolean
                                        type: object
                                    type: object
                                type: object
                            type: object
                          type: array
                      type: object
                    unsetFields:
                      description: Unset fields specify fields that must not have any value.
                      items:
                        type: string
                      type: array
                    wafSettings:
                      description: WAF settings is used to set firewall rules.
                      properties:
                        rules:
                          description: Rules to be leveraged by WAF.
                          items:
                            type: string
                          type: array
                      required:
                        - rules
                      type: object
                    wasmExtensions:
                      description: Wasm Extensions specifies all the WasmExtensions assigned to this profile with the specific configuration for each extension.
                      items:
                        properties:
                          config:
                            description: Configuration parameters sent to the WASM plugin execution.
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          fqn:
                            description: Fqn of the extension to be executed.
                            type: string
                          match:
                            description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                            items:
                              properties:
                                mode:
                                  description: Criteria for selecting traffic by their direction.
                                  enum:
                                    - UNDEFINED
                                    - CLIENT
                                    - SERVER
                                    - CLIENT_AND_SERVER
                                  type: string
                                ports:
                                  description: Criteria for selecting traffic by their destination port.
                                  items:
                                    properties:
                                      number:
                                        type: integer
                                    required:
                                      - number
                                    type: object
                                  type: array
                              type: object
                            type: array
                        required:
                          - fqn
                        type: object
                      type: array
                  type: object
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: accessbindingss.rbac.tsb.tetrate.io
spec:
  group: rbac.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - rbac-tsb-tetrate-io
    kind: AccessBindings
    listKind: AccessBindingsList
    plural: accessbindingss
    shortNames:
      - tab
    singular: accessbindings
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/fqn']
          name: FQN
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: '`AccessBindings` is an assignment of roles to a set of users or teams to access resources.'
              properties:
                allow:
                  description: The list of allowed bindings configures the different access profiles that are allowed on the target resource.
                  items:
                    properties:
                      role:
                        description: The role that defines the permissions that will be granted to the target resource.
                        type: string
                      subjects:
                        description: The set of subjects that will be allowed to access the target resource with the permissions defined by the role.
                        items:
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - user
                                  - required:
                                      - team
                                  - required:
                                      - serviceAccount
                            - required:
                                - user
                            - required:
                                - team
                            - required:
                                - serviceAccount
                          properties:
                            serviceAccount:
                              description: A service account in TSB.
                              type: string
                            team:
                              description: A team in TSB, created through LDAP sync or API.
                              type: string
                            user:
                              description: A user in TSB, created through LDAP sync or API.
                              type: string
                          type: object
                        type: array
                    required:
                      - role
                    type: object
                  type: array
                description:
                  description: A description of the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: roles.rbac.tsb.tetrate.io
spec:
  group: rbac.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - rbac-tsb-tetrate-io
    kind: Role
    listKind: RoleList
    plural: roles
    shortNames:
      - tr
    singular: role
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: '`Role` is a named collection of permissions that can be assigned to any user or team in the system.'
              properties:
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                rules:
                  description: A set of rules that define the permissions associated with each API group.
                  items:
                    properties:
                      permissions:
                        description: The set of actions allowed for these APIs.
                        items:
                          enum:
                            - INVALID
                            - READ
                            - WRITE
                            - CREATE
                            - DELETE
                            - SET_POLICY
                          type: string
                        type: array
                      types:
                        description: The set of API groups and the api Kinds within the group on which this rule is applicable.
                        items:
                          properties:
                            apiGroup:
                              description: A specific API group such as traffic.tsb.tetrate.io/v2.
                              type: string
                            kinds:
                              description: Specific kinds of APIs under the API group.
                              items:
                                type: string
                              type: array
                            scopedAt:
                              description: The list of parent types where the defined kinds will be scoped under.
                              items:
                                properties:
                                  apiGroup:
                                    description: A specific API group such as traffic.tsb.tetrate.io/v2.
                                    type: string
                                  kind:
                                    description: Specific kind of API under the API group.
                                    type: string
                                required:
                                  - apiGroup
                                  - kind
                                type: object
                              type: array
                          required:
                            - apiGroup
                          type: object
                        type: array
                    required:
                      - permissions
                    type: object
                  type: array
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: groups.security.tsb.tetrate.io
spec:
  group: security.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - security-tsb-tetrate-io
    kind: Group
    listKind: GroupList
    plural: groups
    shortNames:
      - tsg
    singular: group
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.configMode
          name: Mode
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - jsonPath: .spec.deletionProtectionEnabled
          name: Deletion Protection
          type: boolean
        - jsonPath: .spec.namespaceSelector.names
          name: Namespace Selector
          priority: 1
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: Security Groups allow grouping the proxy workloads in a set of namespaces owned by its parent workspace.
              properties:
                configGenerationMetadata:
                  description: Default metadata values that will be propagated to the children Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                configMode:
                  description: The Configuration types that will be added to this group.
                  enum:
                    - BRIDGED
                    - DIRECT
                  type: string
                deletionProtectionEnabled:
                  description: When set, prevents the resource from being deleted.
                  type: boolean
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                namespaceSelector:
                  description: Set of namespaces owned exclusively by this group.
                  properties:
                    names:
                      description: 'Under the tenant/workspace/group: - `*/ns1` implies `ns1` namespace in any cluster.'
                      items:
                        type: string
                      type: array
                  required:
                    - names
                  type: object
                profiles:
                  description: List of profiles attached to the security group to be used to propagate default and mandatory configurations down to the children.
                  items:
                    type: string
                  type: array
                securityDomain:
                  description: Security domains can be used to group different resources under the same security domain.
                  type: string
              required:
                - namespaceSelector
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: securitysettings.security.tsb.tetrate.io
spec:
  group: security.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - security-tsb-tetrate-io
    kind: SecuritySetting
    listKind: SecuritySettingList
    plural: securitysettings
    shortNames:
      - tss
    singular: securitysetting
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/securityGroup']
          name: Security-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: '`SecuritySetting` allows configuring security related properties such as TLS authentication and access control for traffic arriving at a proxy workload in a security group.'
              properties:
                authentication:
                  description: 'DEPRECATED: Specifies whether the proxy workloads should accept only mutual TLS authenticated traffic or allow legacy plaintext traffic as well.'
                  enum:
                    - UNSET
                    - OPTIONAL
                    - REQUIRED
                  type: string
                authenticationSettings:
                  description: Authentication settings is used to set workload-to-workload traffic and end-user/origin authentication configuration.
                  properties:
                    http:
                      description: HTTP request authentication is used to configure authentication of origin/end-user credentials like JSON Web Token (JWT).
                      oneOf:
                        - not:
                            anyOf:
                              - required:
                                  - jwt
                              - required:
                                  - rules
                        - required:
                            - jwt
                        - required:
                            - rules
                      properties:
                        jwt:
                          description: Authenticate an HTTP request from a JWT Token attached to it.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - jwksUri
                                  - required:
                                      - jwks
                            - required:
                                - jwksUri
                            - required:
                                - jwks
                          properties:
                            audiences:
                              description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                              items:
                                type: string
                              type: array
                            fromCookies:
                              description: List of cookie names from which JWT is expected.
                              items:
                                type: string
                              type: array
                            fromHeaders:
                              description: This field specifies the locations to extract JWT token.
                              items:
                                properties:
                                  name:
                                    description: The HTTP header name.
                                    type: string
                                  prefix:
                                    description: The prefix that should be stripped before decoding the token.
                                    type: string
                                required:
                                  - name
                                type: object
                              type: array
                            issuer:
                              description: Identifies the issuer that issued the JWT.
                              type: string
                            jwks:
                              description: JSON Web Key Set of public keys to validate signature of the JWT.
                              type: string
                            jwksUri:
                              description: URL of the provider's public key set to validate signature of the JWT.
                              type: string
                            outputClaimToHeaders:
                              description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                              items:
                                properties:
                                  claim:
                                    description: The name of the claim to be copied from.
                                    type: string
                                  header:
                                    description: The name of the header to be created.
                                    type: string
                                required:
                                  - header
                                  - claim
                                type: object
                              type: array
                            outputPayloadToHeader:
                              description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                              type: string
                          required:
                            - issuer
                          type: object
                        oidc:
                          properties:
                            authScopes:
                              description: Optional list of OAuth scopes to be claimed in the authorization request.
                              items:
                                type: string
                              type: array
                            authType:
                              description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                              enum:
                                - DEFAULT_AUTH_TYPE
                                - URL_ENCODED_BODY
                                - BASIC_AUTH
                              type: string
                            clientId:
                              description: The client_id to be used in the authorize calls.
                              type: string
                            clientTokenSecret:
                              description: The name of the Kubernetes secret containing the client secret.
                              type: string
                            grantType:
                              enum:
                                - DEFAULT_GRANT_TYPE
                                - AUTHORIZATION_CODE
                              type: string
                            provider:
                              description: The OIDC Provider configuration.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                - required:
                                    - jwksUri
                                - required:
                                    - jwks
                              properties:
                                authorizationEndpoint:
                                  description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                  type: string
                                issuer:
                                  description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                  type: string
                                jwks:
                                  description: JSON string with the OIDC provider's JSON Web Key Sets.
                                  type: string
                                jwksUri:
                                  description: URI for the OIDC provider's JSON Web Key Sets.
                                  type: string
                                tls:
                                  description: The TLS settings used by the clients to connect with the OIDC provider.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                tokenEndpoint:
                                  description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                  type: string
                              required:
                                - issuer
                              type: object
                            redirectPathMatcher:
                              description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                              type: string
                            redirectUri:
                              description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                              type: string
                            signoutPath:
                              description: The path to sign a user out, clearing their credential cookies.
                              type: string
                            useRefreshToken:
                              description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                              nullable: true
                              type: boolean
                          required:
                            - clientId
                            - clientTokenSecret
                            - redirectUri
                            - provider
                          type: object
                        requireJwt:
                          description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                          nullable: true
                          type: boolean
                        rules:
                          description: List of rules how to authenticate an HTTP request.
                          properties:
                            jwt:
                              description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                              items:
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - jwksUri
                                        - required:
                                            - jwks
                                  - required:
                                      - jwksUri
                                  - required:
                                      - jwks
                                properties:
                                  audiences:
                                    description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                    items:
                                      type: string
                                    type: array
                                  fromCookies:
                                    description: List of cookie names from which JWT is expected.
                                    items:
                                      type: string
                                    type: array
                                  fromHeaders:
                                    description: This field specifies the locations to extract JWT token.
                                    items:
                                      properties:
                                        name:
                                          description: The HTTP header name.
                                          type: string
                                        prefix:
                                          description: The prefix that should be stripped before decoding the token.
                                          type: string
                                      required:
                                        - name
                                      type: object
                                    type: array
                                  issuer:
                                    description: Identifies the issuer that issued the JWT.
                                    type: string
                                  jwks:
                                    description: JSON Web Key Set of public keys to validate signature of the JWT.
                                    type: string
                                  jwksUri:
                                    description: URL of the provider's public key set to validate signature of the JWT.
                                    type: string
                                  outputClaimToHeaders:
                                    description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                    items:
                                      properties:
                                        claim:
                                          description: The name of the claim to be copied from.
                                          type: string
                                        header:
                                          description: The name of the header to be created.
                                          type: string
                                      required:
                                        - header
                                        - claim
                                      type: object
                                    type: array
                                  outputPayloadToHeader:
                                    description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                    type: string
                                required:
                                  - issuer
                                type: object
                              type: array
                          type: object
                      type: object
                    trafficMode:
                      enum:
                        - UNSET
                        - OPTIONAL
                        - REQUIRED
                      type: string
                  type: object
                authorization:
                  description: The set of service accounts in one or more namespaces allowed or denied to access a workload (and hence its sidecar) in the mesh.
                  properties:
                    http:
                      description: This is for configuring HTTP request authorization.
                      oneOf:
                        - not:
                            anyOf:
                              - required:
                                  - external
                              - required:
                                  - local
                        - required:
                            - external
                        - required:
                            - local
                      properties:
                        external:
                          properties:
                            allowedUpstreamHeaders:
                              description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                              items:
                                type: string
                              type: array
                            includeRequestHeaders:
                              items:
                                type: string
                              type: array
                            pathPrefix:
                              description: Sets a prefix to the value of authorization request header Path.
                              type: string
                            timeout:
                              description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                              type: string
                            tls:
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                - required:
                                    - files
                                - required:
                                    - secretName
                              properties:
                                files:
                                  description: TLS key source from files.
                                  properties:
                                    caCertificates:
                                      description: File containing CA certificates to verify the certificates presented by the server.
                                      type: string
                                    clientCertificate:
                                      description: Certificate file to authenticate the client.
                                      type: string
                                    privateKey:
                                      description: Private key file associated with the client certificate.
                                      type: string
                                  type: object
                                mode:
                                  enum:
                                    - DISABLED
                                    - SIMPLE
                                    - MUTUAL
                                  type: string
                                secretName:
                                  description: TLS key source from a Kubernetes Secret.
                                  type: string
                                subjectAltNames:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            uri:
                              type: string
                          type: object
                        local:
                          properties:
                            rules:
                              items:
                                properties:
                                  from:
                                    description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                    items:
                                      properties:
                                        jwt:
                                          description: JWT configuration to identity the subject.
                                          properties:
                                            iss:
                                              type: string
                                            other:
                                              additionalProperties:
                                                type: string
                                              description: A set of arbitrary claims that are required to qualify the subject.
                                              type: object
                                            sub:
                                              type: string
                                          type: object
                                      type: object
                                    type: array
                                  name:
                                    description: A friendly name to identify the binding.
                                    type: string
                                  to:
                                    description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                    items:
                                      properties:
                                        methods:
                                          description: The HTTP methods that are allowed by this rule.
                                          items:
                                            type: string
                                          type: array
                                        paths:
                                          description: The request path where the request is made against.
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    type: array
                                required:
                                  - name
                                type: object
                              type: array
                          type: object
                      type: object
                    identityMatch:
                      description: identity_match specifies the strategy for client identity verification to be employed during the evaluation of authorization (authz) rules within the service.
                      enum:
                        - UNKNOWN
                        - PEER_CERTIFICATE
                        - PERMISSIVE
                        - SOURCE_IDENTITY
                      type: string
                    mode:
                      description: A short cut for specifying the set of allowed callers.
                      enum:
                        - UNSET
                        - NAMESPACE
                        - GROUP
                        - WORKSPACE
                        - CLUSTER
                        - DISABLED
                        - CUSTOM
                        - RULES
                      type: string
                    rules:
                      description: When the mode is `RULES`, you can allow or deny workload-to-workload communication by specifying in the `rules` field which target workloads are allowed or denied to communicate with other target workloads.
                      properties:
                        allow:
                          description: Allow specifies a list of rules.
                          items:
                            properties:
                              from:
                                description: From specifies the source of a request.
                                properties:
                                  fqn:
                                    description: The target resource identified by FQN which will be the source of a request.
                                    type: string
                                type: object
                              to:
                                description: To specifies the destination of a request.
                                properties:
                                  fqn:
                                    description: The target resource identified by FQN which will be the destination of a request.
                                    type: string
                                type: object
                            required:
                              - from
                              - to
                            type: object
                          type: array
                        deny:
                          description: Deny specifies a list of rules.
                          items:
                            properties:
                              from:
                                description: From specifies the source of a request.
                                properties:
                                  fqn:
                                    description: The target resource identified by FQN which will be the source of a request.
                                    type: string
                                type: object
                              to:
                                description: To specifies the destination of a request.
                                properties:
                                  fqn:
                                    description: The target resource identified by FQN which will be the destination of a request.
                                    type: string
                                type: object
                            required:
                              - from
                              - to
                            type: object
                          type: array
                        denyAll:
                          description: Deny all specifies whether all requests should be rejected.
                          type: boolean
                      type: object
                    serviceAccounts:
                      description: When the mode is `CUSTOM`, `serviceAccounts` specify the allowed set of service accounts (and the workloads using them).
                      items:
                        type: string
                      type: array
                  type: object
                configGenerationMetadata:
                  description: Metadata values that will be add into the Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                extension:
                  description: Extensions specifies all the WasmExtensions assigned to this SecuritySettings with the specific configuration for each extension.
                  items:
                    properties:
                      config:
                        description: Configuration parameters sent to the WASM plugin execution.
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      fqn:
                        description: Fqn of the extension to be executed.
                        type: string
                      match:
                        description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                        items:
                          properties:
                            mode:
                              description: Criteria for selecting traffic by their direction.
                              enum:
                                - UNDEFINED
                                - CLIENT
                                - SERVER
                                - CLIENT_AND_SERVER
                              type: string
                            ports:
                              description: Criteria for selecting traffic by their destination port.
                              items:
                                properties:
                                  number:
                                    type: integer
                                required:
                                  - number
                                type: object
                              type: array
                          type: object
                        type: array
                    required:
                      - fqn
                    type: object
                  type: array
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                propagationStrategy:
                  description: Propagation strategy specifies how a security setting is propagated along the configuration hierarchy.
                  enum:
                    - REPLACE
                    - STRICTER
                  type: string
                waf:
                  description: 'NOTICE: this feature is in alpha stage and under active development.'
                  properties:
                    rules:
                      description: Rules to be leveraged by WAF.
                      items:
                        type: string
                      type: array
                  required:
                    - rules
                  type: object
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: servicesecuritysettings.security.tsb.tetrate.io
spec:
  group: security.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - security-tsb-tetrate-io
    kind: ServiceSecuritySetting
    listKind: ServiceSecuritySettingList
    plural: servicesecuritysettings
    shortNames:
      - tsss
    singular: servicesecuritysetting
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/securityGroup']
          name: Security-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: '`ServiceSecuritySetting` allows configuring security related properties such as TLS authentication and access control for traffic arriving at a particular service in a security group.'
              properties:
                configGenerationMetadata:
                  description: Metadata values that will be add into the Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                service:
                  description: The service on which the configuration is being applied.
                  type: string
                settings:
                  description: Security settings to apply to this service.
                  properties:
                    authentication:
                      description: 'DEPRECATED: Specifies whether the proxy workloads should accept only mutual TLS authenticated traffic or allow legacy plaintext traffic as well.'
                      enum:
                        - UNSET
                        - OPTIONAL
                        - REQUIRED
                      type: string
                    authenticationSettings:
                      description: Authentication settings is used to set workload-to-workload traffic and end-user/origin authentication configuration.
                      properties:
                        http:
                          description: HTTP request authentication is used to configure authentication of origin/end-user credentials like JSON Web Token (JWT).
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - jwt
                                  - required:
                                      - rules
                            - required:
                                - jwt
                            - required:
                                - rules
                          properties:
                            jwt:
                              description: Authenticate an HTTP request from a JWT Token attached to it.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                - required:
                                    - jwksUri
                                - required:
                                    - jwks
                              properties:
                                audiences:
                                  description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                  items:
                                    type: string
                                  type: array
                                fromCookies:
                                  description: List of cookie names from which JWT is expected.
                                  items:
                                    type: string
                                  type: array
                                fromHeaders:
                                  description: This field specifies the locations to extract JWT token.
                                  items:
                                    properties:
                                      name:
                                        description: The HTTP header name.
                                        type: string
                                      prefix:
                                        description: The prefix that should be stripped before decoding the token.
                                        type: string
                                    required:
                                      - name
                                    type: object
                                  type: array
                                issuer:
                                  description: Identifies the issuer that issued the JWT.
                                  type: string
                                jwks:
                                  description: JSON Web Key Set of public keys to validate signature of the JWT.
                                  type: string
                                jwksUri:
                                  description: URL of the provider's public key set to validate signature of the JWT.
                                  type: string
                                outputClaimToHeaders:
                                  description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                  items:
                                    properties:
                                      claim:
                                        description: The name of the claim to be copied from.
                                        type: string
                                      header:
                                        description: The name of the header to be created.
                                        type: string
                                    required:
                                      - header
                                      - claim
                                    type: object
                                  type: array
                                outputPayloadToHeader:
                                  description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                  type: string
                              required:
                                - issuer
                              type: object
                            oidc:
                              properties:
                                authScopes:
                                  description: Optional list of OAuth scopes to be claimed in the authorization request.
                                  items:
                                    type: string
                                  type: array
                                authType:
                                  description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                  enum:
                                    - DEFAULT_AUTH_TYPE
                                    - URL_ENCODED_BODY
                                    - BASIC_AUTH
                                  type: string
                                clientId:
                                  description: The client_id to be used in the authorize calls.
                                  type: string
                                clientTokenSecret:
                                  description: The name of the Kubernetes secret containing the client secret.
                                  type: string
                                grantType:
                                  enum:
                                    - DEFAULT_GRANT_TYPE
                                    - AUTHORIZATION_CODE
                                  type: string
                                provider:
                                  description: The OIDC Provider configuration.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    authorizationEndpoint:
                                      description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                      type: string
                                    issuer:
                                      description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                      type: string
                                    jwks:
                                      description: JSON string with the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    jwksUri:
                                      description: URI for the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    tls:
                                      description: The TLS settings used by the clients to connect with the OIDC provider.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    tokenEndpoint:
                                      description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                redirectPathMatcher:
                                  description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                  type: string
                                redirectUri:
                                  description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                  type: string
                                signoutPath:
                                  description: The path to sign a user out, clearing their credential cookies.
                                  type: string
                                useRefreshToken:
                                  description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                  nullable: true
                                  type: boolean
                              required:
                                - clientId
                                - clientTokenSecret
                                - redirectUri
                                - provider
                              type: object
                            requireJwt:
                              description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                              nullable: true
                              type: boolean
                            rules:
                              description: List of rules how to authenticate an HTTP request.
                              properties:
                                jwt:
                                  description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                  items:
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - jwksUri
                                            - required:
                                                - jwks
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                    properties:
                                      audiences:
                                        description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                        items:
                                          type: string
                                        type: array
                                      fromCookies:
                                        description: List of cookie names from which JWT is expected.
                                        items:
                                          type: string
                                        type: array
                                      fromHeaders:
                                        description: This field specifies the locations to extract JWT token.
                                        items:
                                          properties:
                                            name:
                                              description: The HTTP header name.
                                              type: string
                                            prefix:
                                              description: The prefix that should be stripped before decoding the token.
                                              type: string
                                          required:
                                            - name
                                          type: object
                                        type: array
                                      issuer:
                                        description: Identifies the issuer that issued the JWT.
                                        type: string
                                      jwks:
                                        description: JSON Web Key Set of public keys to validate signature of the JWT.
                                        type: string
                                      jwksUri:
                                        description: URL of the provider's public key set to validate signature of the JWT.
                                        type: string
                                      outputClaimToHeaders:
                                        description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                        items:
                                          properties:
                                            claim:
                                              description: The name of the claim to be copied from.
                                              type: string
                                            header:
                                              description: The name of the header to be created.
                                              type: string
                                          required:
                                            - header
                                            - claim
                                          type: object
                                        type: array
                                      outputPayloadToHeader:
                                        description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                        type: string
                                    required:
                                      - issuer
                                    type: object
                                  type: array
                              type: object
                          type: object
                        trafficMode:
                          enum:
                            - UNSET
                            - OPTIONAL
                            - REQUIRED
                          type: string
                      type: object
                    authorization:
                      description: The set of service accounts in one or more namespaces allowed or denied to access a workload (and hence its sidecar) in the mesh.
                      properties:
                        http:
                          description: This is for configuring HTTP request authorization.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - external
                                  - required:
                                      - local
                            - required:
                                - external
                            - required:
                                - local
                          properties:
                            external:
                              properties:
                                allowedUpstreamHeaders:
                                  description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                  items:
                                    type: string
                                  type: array
                                includeRequestHeaders:
                                  items:
                                    type: string
                                  type: array
                                pathPrefix:
                                  description: Sets a prefix to the value of authorization request header Path.
                                  type: string
                                timeout:
                                  description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                  type: string
                                tls:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                uri:
                                  type: string
                              type: object
                            local:
                              properties:
                                rules:
                                  items:
                                    properties:
                                      from:
                                        description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                        items:
                                          properties:
                                            jwt:
                                              description: JWT configuration to identity the subject.
                                              properties:
                                                iss:
                                                  type: string
                                                other:
                                                  additionalProperties:
                                                    type: string
                                                  description: A set of arbitrary claims that are required to qualify the subject.
                                                  type: object
                                                sub:
                                                  type: string
                                              type: object
                                          type: object
                                        type: array
                                      name:
                                        description: A friendly name to identify the binding.
                                        type: string
                                      to:
                                        description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                        items:
                                          properties:
                                            methods:
                                              description: The HTTP methods that are allowed by this rule.
                                              items:
                                                type: string
                                              type: array
                                            paths:
                                              description: The request path where the request is made against.
                                              items:
                                                type: string
                                              type: array
                                          type: object
                                        type: array
                                    required:
                                      - name
                                    type: object
                                  type: array
                              type: object
                          type: object
                        identityMatch:
                          description: identity_match specifies the strategy for client identity verification to be employed during the evaluation of authorization (authz) rules within the service.
                          enum:
                            - UNKNOWN
                            - PEER_CERTIFICATE
                            - PERMISSIVE
                            - SOURCE_IDENTITY
                          type: string
                        mode:
                          description: A short cut for specifying the set of allowed callers.
                          enum:
                            - UNSET
                            - NAMESPACE
                            - GROUP
                            - WORKSPACE
                            - CLUSTER
                            - DISABLED
                            - CUSTOM
                            - RULES
                          type: string
                        rules:
                          description: When the mode is `RULES`, you can allow or deny workload-to-workload communication by specifying in the `rules` field which target workloads are allowed or denied to communicate with other target workloads.
                          properties:
                            allow:
                              description: Allow specifies a list of rules.
                              items:
                                properties:
                                  from:
                                    description: From specifies the source of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the source of a request.
                                        type: string
                                    type: object
                                  to:
                                    description: To specifies the destination of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the destination of a request.
                                        type: string
                                    type: object
                                required:
                                  - from
                                  - to
                                type: object
                              type: array
                            deny:
                              description: Deny specifies a list of rules.
                              items:
                                properties:
                                  from:
                                    description: From specifies the source of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the source of a request.
                                        type: string
                                    type: object
                                  to:
                                    description: To specifies the destination of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the destination of a request.
                                        type: string
                                    type: object
                                required:
                                  - from
                                  - to
                                type: object
                              type: array
                            denyAll:
                              description: Deny all specifies whether all requests should be rejected.
                              type: boolean
                          type: object
                        serviceAccounts:
                          description: When the mode is `CUSTOM`, `serviceAccounts` specify the allowed set of service accounts (and the workloads using them).
                          items:
                            type: string
                          type: array
                      type: object
                    configGenerationMetadata:
                      description: Metadata values that will be add into the Istio generated configurations.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                          type: object
                      type: object
                    description:
                      description: A description of the resource.
                      type: string
                    displayName:
                      description: User friendly name for the resource.
                      type: string
                    etag:
                      description: The etag for the resource.
                      type: string
                    extension:
                      description: Extensions specifies all the WasmExtensions assigned to this SecuritySettings with the specific configuration for each extension.
                      items:
                        properties:
                          config:
                            description: Configuration parameters sent to the WASM plugin execution.
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          fqn:
                            description: Fqn of the extension to be executed.
                            type: string
                          match:
                            description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                            items:
                              properties:
                                mode:
                                  description: Criteria for selecting traffic by their direction.
                                  enum:
                                    - UNDEFINED
                                    - CLIENT
                                    - SERVER
                                    - CLIENT_AND_SERVER
                                  type: string
                                ports:
                                  description: Criteria for selecting traffic by their destination port.
                                  items:
                                    properties:
                                      number:
                                        type: integer
                                    required:
                                      - number
                                    type: object
                                  type: array
                              type: object
                            type: array
                        required:
                          - fqn
                        type: object
                      type: array
                    fqn:
                      description: Fully-qualified name of the resource.
                      type: string
                    propagationStrategy:
                      description: Propagation strategy specifies how a security setting is propagated along the configuration hierarchy.
                      enum:
                        - REPLACE
                        - STRICTER
                      type: string
                    waf:
                      description: 'NOTICE: this feature is in alpha stage and under active development.'
                      properties:
                        rules:
                          description: Rules to be leveraged by WAF.
                          items:
                            type: string
                          type: array
                      required:
                        - rules
                      type: object
                  type: object
                subsets:
                  description: Subset specific settings that will replace the service wide settings for the specified service subsets.
                  items:
                    properties:
                      name:
                        description: Name used to refer to the subset.
                        type: string
                      settings:
                        description: Security settings to apply to this service subset.
                        properties:
                          authentication:
                            description: 'DEPRECATED: Specifies whether the proxy workloads should accept only mutual TLS authenticated traffic or allow legacy plaintext traffic as well.'
                            enum:
                              - UNSET
                              - OPTIONAL
                              - REQUIRED
                            type: string
                          authenticationSettings:
                            description: Authentication settings is used to set workload-to-workload traffic and end-user/origin authentication configuration.
                            properties:
                              http:
                                description: HTTP request authentication is used to configure authentication of origin/end-user credentials like JSON Web Token (JWT).
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - jwt
                                        - required:
                                            - rules
                                  - required:
                                      - jwt
                                  - required:
                                      - rules
                                properties:
                                  jwt:
                                    description: Authenticate an HTTP request from a JWT Token attached to it.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - jwksUri
                                            - required:
                                                - jwks
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                    properties:
                                      audiences:
                                        description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                        items:
                                          type: string
                                        type: array
                                      fromCookies:
                                        description: List of cookie names from which JWT is expected.
                                        items:
                                          type: string
                                        type: array
                                      fromHeaders:
                                        description: This field specifies the locations to extract JWT token.
                                        items:
                                          properties:
                                            name:
                                              description: The HTTP header name.
                                              type: string
                                            prefix:
                                              description: The prefix that should be stripped before decoding the token.
                                              type: string
                                          required:
                                            - name
                                          type: object
                                        type: array
                                      issuer:
                                        description: Identifies the issuer that issued the JWT.
                                        type: string
                                      jwks:
                                        description: JSON Web Key Set of public keys to validate signature of the JWT.
                                        type: string
                                      jwksUri:
                                        description: URL of the provider's public key set to validate signature of the JWT.
                                        type: string
                                      outputClaimToHeaders:
                                        description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                        items:
                                          properties:
                                            claim:
                                              description: The name of the claim to be copied from.
                                              type: string
                                            header:
                                              description: The name of the header to be created.
                                              type: string
                                          required:
                                            - header
                                            - claim
                                          type: object
                                        type: array
                                      outputPayloadToHeader:
                                        description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                        type: string
                                    required:
                                      - issuer
                                    type: object
                                  oidc:
                                    properties:
                                      authScopes:
                                        description: Optional list of OAuth scopes to be claimed in the authorization request.
                                        items:
                                          type: string
                                        type: array
                                      authType:
                                        description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                        enum:
                                          - DEFAULT_AUTH_TYPE
                                          - URL_ENCODED_BODY
                                          - BASIC_AUTH
                                        type: string
                                      clientId:
                                        description: The client_id to be used in the authorize calls.
                                        type: string
                                      clientTokenSecret:
                                        description: The name of the Kubernetes secret containing the client secret.
                                        type: string
                                      grantType:
                                        enum:
                                          - DEFAULT_GRANT_TYPE
                                          - AUTHORIZATION_CODE
                                        type: string
                                      provider:
                                        description: The OIDC Provider configuration.
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - jwksUri
                                                - required:
                                                    - jwks
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                        properties:
                                          authorizationEndpoint:
                                            description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                            type: string
                                          issuer:
                                            description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                            type: string
                                          jwks:
                                            description: JSON string with the OIDC provider's JSON Web Key Sets.
                                            type: string
                                          jwksUri:
                                            description: URI for the OIDC provider's JSON Web Key Sets.
                                            type: string
                                          tls:
                                            description: The TLS settings used by the clients to connect with the OIDC provider.
                                            oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - files
                                                    - required:
                                                        - secretName
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                            properties:
                                              files:
                                                description: TLS key source from files.
                                                properties:
                                                  caCertificates:
                                                    description: File containing CA certificates to verify the certificates presented by the server.
                                                    type: string
                                                  clientCertificate:
                                                    description: Certificate file to authenticate the client.
                                                    type: string
                                                  privateKey:
                                                    description: Private key file associated with the client certificate.
                                                    type: string
                                                type: object
                                              mode:
                                                enum:
                                                  - DISABLED
                                                  - SIMPLE
                                                  - MUTUAL
                                                type: string
                                              secretName:
                                                description: TLS key source from a Kubernetes Secret.
                                                type: string
                                              subjectAltNames:
                                                items:
                                                  type: string
                                                type: array
                                            type: object
                                          tokenEndpoint:
                                            description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                            type: string
                                        required:
                                          - issuer
                                        type: object
                                      redirectPathMatcher:
                                        description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                        type: string
                                      redirectUri:
                                        description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                        type: string
                                      signoutPath:
                                        description: The path to sign a user out, clearing their credential cookies.
                                        type: string
                                      useRefreshToken:
                                        description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                        nullable: true
                                        type: boolean
                                    required:
                                      - clientId
                                      - clientTokenSecret
                                      - redirectUri
                                      - provider
                                    type: object
                                  requireJwt:
                                    description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                                    nullable: true
                                    type: boolean
                                  rules:
                                    description: List of rules how to authenticate an HTTP request.
                                    properties:
                                      jwt:
                                        description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - jwksUri
                                                  - required:
                                                      - jwks
                                            - required:
                                                - jwksUri
                                            - required:
                                                - jwks
                                          properties:
                                            audiences:
                                              description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                              items:
                                                type: string
                                              type: array
                                            fromCookies:
                                              description: List of cookie names from which JWT is expected.
                                              items:
                                                type: string
                                              type: array
                                            fromHeaders:
                                              description: This field specifies the locations to extract JWT token.
                                              items:
                                                properties:
                                                  name:
                                                    description: The HTTP header name.
                                                    type: string
                                                  prefix:
                                                    description: The prefix that should be stripped before decoding the token.
                                                    type: string
                                                required:
                                                  - name
                                                type: object
                                              type: array
                                            issuer:
                                              description: Identifies the issuer that issued the JWT.
                                              type: string
                                            jwks:
                                              description: JSON Web Key Set of public keys to validate signature of the JWT.
                                              type: string
                                            jwksUri:
                                              description: URL of the provider's public key set to validate signature of the JWT.
                                              type: string
                                            outputClaimToHeaders:
                                              description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                              items:
                                                properties:
                                                  claim:
                                                    description: The name of the claim to be copied from.
                                                    type: string
                                                  header:
                                                    description: The name of the header to be created.
                                                    type: string
                                                required:
                                                  - header
                                                  - claim
                                                type: object
                                              type: array
                                            outputPayloadToHeader:
                                              description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                              type: string
                                          required:
                                            - issuer
                                          type: object
                                        type: array
                                    type: object
                                type: object
                              trafficMode:
                                enum:
                                  - UNSET
                                  - OPTIONAL
                                  - REQUIRED
                                type: string
                            type: object
                          authorization:
                            description: The set of service accounts in one or more namespaces allowed or denied to access a workload (and hence its sidecar) in the mesh.
                            properties:
                              http:
                                description: This is for configuring HTTP request authorization.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - external
                                        - required:
                                            - local
                                  - required:
                                      - external
                                  - required:
                                      - local
                                properties:
                                  external:
                                    properties:
                                      allowedUpstreamHeaders:
                                        description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                        items:
                                          type: string
                                        type: array
                                      includeRequestHeaders:
                                        items:
                                          type: string
                                        type: array
                                      pathPrefix:
                                        description: Sets a prefix to the value of authorization request header Path.
                                        type: string
                                      timeout:
                                        description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                        type: string
                                      tls:
                                        oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - files
                                                - required:
                                                    - secretName
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                        properties:
                                          files:
                                            description: TLS key source from files.
                                            properties:
                                              caCertificates:
                                                description: File containing CA certificates to verify the certificates presented by the server.
                                                type: string
                                              clientCertificate:
                                                description: Certificate file to authenticate the client.
                                                type: string
                                              privateKey:
                                                description: Private key file associated with the client certificate.
                                                type: string
                                            type: object
                                          mode:
                                            enum:
                                              - DISABLED
                                              - SIMPLE
                                              - MUTUAL
                                            type: string
                                          secretName:
                                            description: TLS key source from a Kubernetes Secret.
                                            type: string
                                          subjectAltNames:
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      uri:
                                        type: string
                                    type: object
                                  local:
                                    properties:
                                      rules:
                                        items:
                                          properties:
                                            from:
                                              description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                              items:
                                                properties:
                                                  jwt:
                                                    description: JWT configuration to identity the subject.
                                                    properties:
                                                      iss:
                                                        type: string
                                                      other:
                                                        additionalProperties:
                                                          type: string
                                                        description: A set of arbitrary claims that are required to qualify the subject.
                                                        type: object
                                                      sub:
                                                        type: string
                                                    type: object
                                                type: object
                                              type: array
                                            name:
                                              description: A friendly name to identify the binding.
                                              type: string
                                            to:
                                              description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                              items:
                                                properties:
                                                  methods:
                                                    description: The HTTP methods that are allowed by this rule.
                                                    items:
                                                      type: string
                                                    type: array
                                                  paths:
                                                    description: The request path where the request is made against.
                                                    items:
                                                      type: string
                                                    type: array
                                                type: object
                                              type: array
                                          required:
                                            - name
                                          type: object
                                        type: array
                                    type: object
                                type: object
                              identityMatch:
                                description: identity_match specifies the strategy for client identity verification to be employed during the evaluation of authorization (authz) rules within the service.
                                enum:
                                  - UNKNOWN
                                  - PEER_CERTIFICATE
                                  - PERMISSIVE
                                  - SOURCE_IDENTITY
                                type: string
                              mode:
                                description: A short cut for specifying the set of allowed callers.
                                enum:
                                  - UNSET
                                  - NAMESPACE
                                  - GROUP
                                  - WORKSPACE
                                  - CLUSTER
                                  - DISABLED
                                  - CUSTOM
                                  - RULES
                                type: string
                              rules:
                                description: When the mode is `RULES`, you can allow or deny workload-to-workload communication by specifying in the `rules` field which target workloads are allowed or denied to communicate with other target workloads.
                                properties:
                                  allow:
                                    description: Allow specifies a list of rules.
                                    items:
                                      properties:
                                        from:
                                          description: From specifies the source of a request.
                                          properties:
                                            fqn:
                                              description: The target resource identified by FQN which will be the source of a request.
                                              type: string
                                          type: object
                                        to:
                                          description: To specifies the destination of a request.
                                          properties:
                                            fqn:
                                              description: The target resource identified by FQN which will be the destination of a request.
                                              type: string
                                          type: object
                                      required:
                                        - from
                                        - to
                                      type: object
                                    type: array
                                  deny:
                                    description: Deny specifies a list of rules.
                                    items:
                                      properties:
                                        from:
                                          description: From specifies the source of a request.
                                          properties:
                                            fqn:
                                              description: The target resource identified by FQN which will be the source of a request.
                                              type: string
                                          type: object
                                        to:
                                          description: To specifies the destination of a request.
                                          properties:
                                            fqn:
                                              description: The target resource identified by FQN which will be the destination of a request.
                                              type: string
                                          type: object
                                      required:
                                        - from
                                        - to
                                      type: object
                                    type: array
                                  denyAll:
                                    description: Deny all specifies whether all requests should be rejected.
                                    type: boolean
                                type: object
                              serviceAccounts:
                                description: When the mode is `CUSTOM`, `serviceAccounts` specify the allowed set of service accounts (and the workloads using them).
                                items:
                                  type: string
                                type: array
                            type: object
                          configGenerationMetadata:
                            description: Metadata values that will be add into the Istio generated configurations.
                            properties:
                              annotations:
                                additionalProperties:
                                  type: string
                                description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                                type: object
                              labels:
                                additionalProperties:
                                  type: string
                                description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                                type: object
                            type: object
                          description:
                            description: A description of the resource.
                            type: string
                          displayName:
                            description: User friendly name for the resource.
                            type: string
                          etag:
                            description: The etag for the resource.
                            type: string
                          extension:
                            description: Extensions specifies all the WasmExtensions assigned to this SecuritySettings with the specific configuration for each extension.
                            items:
                              properties:
                                config:
                                  description: Configuration parameters sent to the WASM plugin execution.
                                  type: object
                                  x-kubernetes-preserve-unknown-fields: true
                                fqn:
                                  description: Fqn of the extension to be executed.
                                  type: string
                                match:
                                  description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                                  items:
                                    properties:
                                      mode:
                                        description: Criteria for selecting traffic by their direction.
                                        enum:
                                          - UNDEFINED
                                          - CLIENT
                                          - SERVER
                                          - CLIENT_AND_SERVER
                                        type: string
                                      ports:
                                        description: Criteria for selecting traffic by their destination port.
                                        items:
                                          properties:
                                            number:
                                              type: integer
                                          required:
                                            - number
                                          type: object
                                        type: array
                                    type: object
                                  type: array
                              required:
                                - fqn
                              type: object
                            type: array
                          fqn:
                            description: Fully-qualified name of the resource.
                            type: string
                          propagationStrategy:
                            description: Propagation strategy specifies how a security setting is propagated along the configuration hierarchy.
                            enum:
                              - REPLACE
                              - STRICTER
                            type: string
                          waf:
                            description: 'NOTICE: this feature is in alpha stage and under active development.'
                            properties:
                              rules:
                                description: Rules to be leveraged by WAF.
                                items:
                                  type: string
                                type: array
                            required:
                              - rules
                            type: object
                        type: object
                    required:
                      - name
                      - settings
                    type: object
                  type: array
              required:
                - service
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: segmentationmemberships.segmentation.tsb.tetrate.io
spec:
  group: segmentation.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - segmentation-tsb-tetrate-io
    kind: SegmentationMembership
    listKind: SegmentationMembershipList
    plural: segmentationmemberships
    shortNames:
      - tsm
    singular: segmentationmembership
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.policy
          name: Policy
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: :::warning Alpha early access The segmentation feature is in an early access alpha state.
              properties:
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                policy:
                  description: The segmentation policy to which the membership belongs.
                  type: string
                zones:
                  description: List of zone memberships that define the resources that belong to particular zones in the segmentation policy.
                  items:
                    properties:
                      fqnSelector:
                        description: The list of fully-qualified names (FQNs) of the resources that belong to the zone.
                        items:
                          type: string
                        type: array
                      name:
                        description: The name of the zone in the defined segmentation policy.
                        type: string
                      nsSelector:
                        description: The list of cluster/namespace selectors that belong to the zone.
                        items:
                          type: string
                        type: array
                    required:
                      - name
                    type: object
                  type: array
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: segmentationpolicys.segmentation.tsb.tetrate.io
spec:
  group: segmentation.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - segmentation-tsb-tetrate-io
    kind: SegmentationPolicy
    listKind: SegmentationPolicyList
    plural: segmentationpolicys
    shortNames:
      - tsp
    singular: segmentationpolicy
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.intraZonalTraffic
          name: Intra Zonal Traffic
          type: string
        - jsonPath: .spec.zones
          name: Zones
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: :::warning Alpha early access The segmentation feature is in an early access alpha state.
              properties:
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                intraZonalTraffic:
                  description: When set to `true`, traffic within the same zone is allowed by default, without having to create explicit policy rules for that purpose.
                  type: boolean
                zones:
                  items:
                    type: string
                  type: array
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: segmentationruless.segmentation.tsb.tetrate.io
spec:
  group: segmentation.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - segmentation-tsb-tetrate-io
    kind: SegmentationRules
    listKind: SegmentationRulesList
    plural: segmentationruless
    shortNames:
      - tsrs
    singular: segmentationrules
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: :::warning Alpha early access The segmentation feature is in an early access alpha state.
              properties:
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                rules:
                  description: List of rules that define the allowed communication paths between resources.
                  items:
                    properties:
                      from:
                        description: The source of the communication path.
                        items:
                          type: string
                        type: array
                      to:
                        description: The destination of the communication path.
                        items:
                          type: string
                        type: array
                    required:
                      - from
                      - to
                    type: object
                  type: array
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: groups.traffic.tsb.tetrate.io
spec:
  group: traffic.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - traffic-tsb-tetrate-io
    kind: Group
    listKind: GroupList
    plural: groups
    shortNames:
      - ttg
    singular: group
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.configMode
          name: Mode
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - jsonPath: .spec.deletionProtectionEnabled
          name: Deletion Protection
          type: boolean
        - jsonPath: .spec.namespaceSelector.names
          name: Namespace Selector
          priority: 1
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: A traffic group manages the routing properties of proxy workloads in a group of namespaces owned by the parent workspace.
              properties:
                configGenerationMetadata:
                  description: Default metadata values that will be propagated to the children Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                configMode:
                  description: The Configuration types that will be added to this group.
                  enum:
                    - BRIDGED
                    - DIRECT
                  type: string
                deletionProtectionEnabled:
                  description: When set, prevents the resource from being deleted.
                  type: boolean
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                namespaceSelector:
                  description: Set of namespaces owned exclusively by this group.
                  properties:
                    names:
                      description: 'Under the tenant/workspace/group: - `*/ns1` implies `ns1` namespace in any cluster.'
                      items:
                        type: string
                      type: array
                  required:
                    - names
                  type: object
                profiles:
                  description: List of profiles attached to the traffic group to be used to propagate default and mandatory configurations down to the children.
                  items:
                    type: string
                  type: array
              required:
                - namespaceSelector
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: serviceroutes.traffic.tsb.tetrate.io
spec:
  group: traffic.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - traffic-tsb-tetrate-io
    kind: ServiceRoute
    listKind: ServiceRouteList
    plural: serviceroutes
    shortNames:
      - tsr
    singular: serviceroute
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.service
          name: Service
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/trafficGroup']
          name: Traffic-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: A service route controls routing configurations for traffic to a service in a traffic group.
              properties:
                argoRollout:
                  description: ArgoRollout configures this ServiceRoute to be controlled by Argo Rollouts.
                  properties:
                    destinationRuleName:
                      description: The name of the DestinationRule that the ServiceRoute will create that should be configured in the Argo Rollout custom resource.
                      type: string
                    virtualServiceName:
                      description: The name of the VirtualService that the ServiceRoute will create that should be configured in the Argo Rollout custom resource.
                      type: string
                  type: object
                configGenerationMetadata:
                  description: Metadata values that will be add into the Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                httpRoutes:
                  description: HTTPRoutes are used when HTTP traffic needs to be matched on uri, headers and port and destination routes need to be set using subset-weight combinations specified within the route.
                  items:
                    properties:
                      destination:
                        description: Destination host:port and subset where HTTP traffic should be directed.
                        items:
                          properties:
                            destinationHost:
                              description: Service host where traffic should be routed to.
                              type: string
                            port:
                              type: integer
                            subset:
                              type: string
                            weight:
                              type: integer
                          required:
                            - port
                          type: object
                        type: array
                      fault:
                        description: Fault injection policy to apply on HTTP traffic at the client side.
                        properties:
                          abort:
                            description: Abort HTTP request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - httpStatus
                                    - required:
                                        - grpcStatus
                              - required:
                                  - httpStatus
                              - required:
                                  - grpcStatus
                            properties:
                              grpcStatus:
                                description: GRPC status code to use to abort the request.
                                type: string
                              httpStatus:
                                description: HTTP status code to use to abort the HTTP request.
                                format: int32
                                type: integer
                              percentage:
                                description: Percentage of requests to be aborted with the error code provided.
                                format: double
                                type: number
                            type: object
                          delay:
                            description: Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - fixedDelay
                              - required:
                                  - fixedDelay
                            properties:
                              fixedDelay:
                                description: Add a fixed delay before forwarding the request.
                                type: string
                              percentage:
                                description: Percentage of requests on which the delay will be injected.
                                format: double
                                type: number
                            type: object
                        type: object
                      flagger:
                        description: FlaggerDestination will route traffic based on a Flagger Canary resource.
                        properties:
                          canary:
                            description: Name of the Canary resource that will manage the deployment.
                            type: string
                          namespace:
                            description: Namespace of the Canary resource that will manage the deployment.
                            type: string
                        required:
                          - canary
                          - namespace
                        type: object
                      match:
                        items:
                          properties:
                            headers:
                              additionalProperties:
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - exact
                                        - required:
                                            - prefix
                                        - required:
                                            - regex
                                  - required:
                                      - exact
                                  - required:
                                      - prefix
                                  - required:
                                      - regex
                                properties:
                                  exact:
                                    description: Exact string match.
                                    type: string
                                  prefix:
                                    description: Prefix-based match.
                                    type: string
                                  regex:
                                    description: ECMAscript style regex-based match.
                                    type: string
                                type: object
                              type: object
                            name:
                              type: string
                            port:
                              type: integer
                            uri:
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - exact
                                      - required:
                                          - prefix
                                      - required:
                                          - regex
                                - required:
                                    - exact
                                - required:
                                    - prefix
                                - required:
                                    - regex
                              properties:
                                exact:
                                  description: Exact string match.
                                  type: string
                                prefix:
                                  description: Prefix-based match.
                                  type: string
                                regex:
                                  description: ECMAscript style regex-based match.
                                  type: string
                              type: object
                          required:
                            - name
                          type: object
                        type: array
                      mirrors:
                        description: Mirror HTTP traffic to multiple destinations in addition to forwarding the requests to the intended destination.
                        items:
                          properties:
                            host:
                              description: The host where traffic should be routed to.
                              type: string
                            percentage:
                              description: Percentage of the traffic to be mirrored.
                              format: double
                              type: number
                            port:
                              type: integer
                            subset:
                              type: string
                          required:
                            - port
                          type: object
                        type: array
                      name:
                        description: Name of the route.
                        type: string
                    required:
                      - name
                    type: object
                  type: array
                portLevelSettings:
                  description: In order to support multi-protocol routing, a list of all port/protocol combinations is needed.
                  items:
                    properties:
                      port:
                        type: integer
                      stickySession:
                        description: Since we are supporting multiple types of protocols, so we expect to have separate sticky sessions for each route (i.e.
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - header
                                - required:
                                    - cookie
                                - required:
                                    - useSourceIp
                          - required:
                              - header
                          - required:
                              - cookie
                          - required:
                              - useSourceIp
                        properties:
                          cookie:
                            description: Hash based on HTTP cookie.
                            properties:
                              name:
                                description: Name of the cookie.
                                type: string
                              path:
                                description: Path to set for the cookie.
                                type: string
                              ttl:
                                description: Lifetime of the cookie.
                                type: string
                            required:
                              - name
                              - path
                              - ttl
                            type: object
                          header:
                            description: Hash based on a specific HTTP header.
                            type: string
                          useSourceIp:
                            description: Hash based on the source IP address.
                            type: boolean
                        type: object
                      trafficType:
                        enum:
                          - HTTP
                          - TCP
                          - TLS_PASSTHROUGH
                        type: string
                    required:
                      - port
                      - trafficType
                    type: object
                  type: array
                service:
                  description: The service on which the configuration is being applied.
                  type: string
                stickySession:
                  oneOf:
                    - not:
                        anyOf:
                          - required:
                              - header
                          - required:
                              - cookie
                          - required:
                              - useSourceIp
                    - required:
                        - header
                    - required:
                        - cookie
                    - required:
                        - useSourceIp
                  properties:
                    cookie:
                      description: Hash based on HTTP cookie.
                      properties:
                        name:
                          description: Name of the cookie.
                          type: string
                        path:
                          description: Path to set for the cookie.
                          type: string
                        ttl:
                          description: Lifetime of the cookie.
                          type: string
                      required:
                        - name
                        - path
                        - ttl
                      type: object
                    header:
                      description: Hash based on a specific HTTP header.
                      type: string
                    useSourceIp:
                      description: Hash based on the source IP address.
                      type: boolean
                  type: object
                subsets:
                  description: The set of versions of a service and the percentage of traffic to send to each version.
                  items:
                    properties:
                      labels:
                        additionalProperties:
                          type: string
                        description: Labels apply a filter over the endpoints of a service in the service registry.
                        type: object
                      name:
                        description: Name used to refer to the subset.
                        type: string
                      portLevelSettings:
                        description: Port/Protocol/StickySession combination for which routes need to be generated specifically for a subset.
                        items:
                          properties:
                            port:
                              type: integer
                            stickySession:
                              description: Since we are supporting multiple types of protocols, so we expect to have separate sticky sessions for each route (i.e.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - header
                                      - required:
                                          - cookie
                                      - required:
                                          - useSourceIp
                                - required:
                                    - header
                                - required:
                                    - cookie
                                - required:
                                    - useSourceIp
                              properties:
                                cookie:
                                  description: Hash based on HTTP cookie.
                                  properties:
                                    name:
                                      description: Name of the cookie.
                                      type: string
                                    path:
                                      description: Path to set for the cookie.
                                      type: string
                                    ttl:
                                      description: Lifetime of the cookie.
                                      type: string
                                  required:
                                    - name
                                    - path
                                    - ttl
                                  type: object
                                header:
                                  description: Hash based on a specific HTTP header.
                                  type: string
                                useSourceIp:
                                  description: Hash based on the source IP address.
                                  type: boolean
                              type: object
                            trafficType:
                              enum:
                                - HTTP
                                - TCP
                                - TLS_PASSTHROUGH
                              type: string
                          required:
                            - port
                            - trafficType
                          type: object
                        type: array
                      weight:
                        description: Percentage of traffic to be sent to this subset.
                        type: integer
                    required:
                      - name
                    type: object
                  type: array
                tcpRoutes:
                  description: TCPRoutes match TCP traffic based on port number.
                  items:
                    properties:
                      destination:
                        items:
                          properties:
                            destinationHost:
                              description: Service host where traffic should be routed to.
                              type: string
                            port:
                              type: integer
                            subset:
                              type: string
                            weight:
                              type: integer
                          required:
                            - port
                          type: object
                        type: array
                      match:
                        items:
                          properties:
                            name:
                              type: string
                            port:
                              type: integer
                          required:
                            - name
                            - port
                          type: object
                        type: array
                      name:
                        type: string
                    required:
                      - name
                    type: object
                  type: array
              required:
                - service
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: servicetrafficsettings.traffic.tsb.tetrate.io
spec:
  group: traffic.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - traffic-tsb-tetrate-io
    kind: ServiceTrafficSetting
    listKind: ServiceTrafficSettingList
    plural: servicetrafficsettings
    shortNames:
      - tsts
    singular: servicetrafficsetting
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.service
          name: Service
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/trafficGroup']
          name: Traffic-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: A service traffic setting applies configuration to a service in a traffic group.
              properties:
                configGenerationMetadata:
                  description: Metadata values that will be add into the mesh-generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                service:
                  description: The service on which the configuration is being applied.
                  type: string
                settings:
                  description: Traffic settings to apply to this service.
                  properties:
                    configGenerationMetadata:
                      description: Metadata values that will be add into the Istio generated configurations.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                          type: object
                      type: object
                    description:
                      description: A description of the resource.
                      type: string
                    displayName:
                      description: User friendly name for the resource.
                      type: string
                    egress:
                      description: Specifies the details of the egress proxy to which unknown traffic should be forwarded to from the proxy workload.
                      properties:
                        host:
                          description: Specifies the egress gateway hostname.
                          type: string
                        port:
                          description: Deprecated.
                          format: int32
                          type: integer
                      required:
                        - host
                      type: object
                    etag:
                      description: The etag for the resource.
                      type: string
                    fqn:
                      description: Fully-qualified name of the resource.
                      type: string
                    inbound:
                      description: Configures inbound traffic.
                      properties:
                        failoverSettings:
                          description: Failover settings apply to all clients accessing the hostname defined in this section.
                          properties:
                            automaticLoadBalancing:
                              properties:
                                enabled:
                                  description: Whether to enable automatic load balancing.
                                  nullable: true
                                  type: boolean
                              type: object
                            failoverPriority:
                              description: FailoverPriority specifies the failover priority for traffic.
                              items:
                                type: string
                              type: array
                            regionalFailover:
                              description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                              items:
                                properties:
                                  from:
                                    description: Originating region.
                                    type: string
                                  to:
                                    description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                    type: string
                                type: object
                              type: array
                            topologyChoice:
                              description: TopologyChoice specifies the topology preference for traffic priority.
                              enum:
                                - NONE
                                - CLUSTER
                                - LOCALITY
                              type: string
                          type: object
                        rateLimiting:
                          description: Configuration for rate limiting requests.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - settings
                                  - required:
                                      - externalService
                                  - required:
                                      - local
                            - required:
                                - settings
                            - required:
                                - externalService
                            - required:
                                - local
                          properties:
                            externalService:
                              description: Configure ratelimiting using an external ratelimit server.
                              properties:
                                domain:
                                  description: The rate limit domain to use when calling the rate limit service.
                                  type: string
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rateLimitServerUri:
                                  description: The URI at which the external rate limit server can be reached.
                                  type: string
                                rules:
                                  description: A set of rate limit rules.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions that are to be applied for this rate limit configuration.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - sourceCluster
                                                  - required:
                                                      - destinationCluster
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - requestHeaders
                                                  - required:
                                                      - headerValueMatch
                                            - required:
                                                - sourceCluster
                                            - required:
                                                - destinationCluster
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - requestHeaders
                                            - required:
                                                - headerValueMatch
                                          properties:
                                            destinationCluster:
                                              description: Rate limit on destination envoy cluster.
                                              type: object
                                            headerValueMatch:
                                              description: Rate limit on the existence of certain request headers.
                                              properties:
                                                descriptorValue:
                                                  description: The value to use in the descriptor entry.
                                                  type: string
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                headers:
                                                  additionalProperties:
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - exact
                                                            - required:
                                                                - prefix
                                                            - required:
                                                                - regex
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                    properties:
                                                      exact:
                                                        description: Exact string match.
                                                        type: string
                                                      prefix:
                                                        description: Prefix-based match.
                                                        type: string
                                                      regex:
                                                        description: ECMAscript style regex-based match.
                                                        type: string
                                                    type: object
                                                  description: Specifies a set of headers that the rate limit action should match on.
                                                  type: object
                                              required:
                                                - headers
                                                - descriptorValue
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on remote address of client.
                                              type: object
                                            requestHeaders:
                                              description: Rate limit on the value of certain request headers.
                                              properties:
                                                descriptorKey:
                                                  description: The key to use in the descriptor entry.
                                                  type: string
                                                headerName:
                                                  description: The header name to be queried from the request headers.
                                                  type: string
                                              required:
                                                - headerName
                                                - descriptorKey
                                              type: object
                                            sourceCluster:
                                              description: Rate limit on source envoy cluster.
                                              type: object
                                          type: object
                                        type: array
                                    required:
                                      - dimensions
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the external rate limit server RPC.
                                  type: string
                                tls:
                                  description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                              required:
                                - domain
                                - rateLimitServerUri
                                - rules
                              type: object
                            local:
                              description: Apply rate limits internally in the Envoy proxy.
                              properties:
                                maxWildcardDimensions:
                                  description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                  nullable: true
                                  type: integer
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  nullable: true
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  nullable: true
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  nullable: true
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      tokenBucket:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          fillInterval:
                                            description: The fill interval that tokens are added to the bucket.
                                            type: string
                                          maxTokens:
                                            description: The maximum tokens that the bucket can hold.
                                            nullable: true
                                            type: integer
                                          tokensPerFill:
                                            description: The number of tokens added to the bucket during each fill interval.
                                            nullable: true
                                            type: integer
                                        required:
                                          - maxTokens
                                          - fillInterval
                                        type: object
                                    required:
                                      - dimensions
                                      - tokenBucket
                                    type: object
                                  type: array
                              required:
                                - rules
                              type: object
                            settings:
                              properties:
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      limit:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          requestsPerUnit:
                                            description: Specifies the value of the rate limit.
                                            type: integer
                                          unit:
                                            description: Specifies the unit of time for rate limit.
                                            enum:
                                              - UNKNOWN
                                              - SECOND
                                              - MINUTE
                                              - HOUR
                                              - DAY
                                            type: string
                                        required:
                                          - requestsPerUnit
                                          - unit
                                        type: object
                                    required:
                                      - dimensions
                                      - limit
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the rate limit server RPC.
                                  type: string
                              required:
                                - rules
                              type: object
                          type: object
                        resilience:
                          description: Resiliency configuration for inbound connections.
                          properties:
                            connectionPool:
                              description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                              properties:
                                tcp:
                                  properties:
                                    keepAlive:
                                      description: Keep Alive Settings.
                                      properties:
                                        idleTime:
                                          description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                          nullable: true
                                          type: integer
                                        interval:
                                          description: The number of seconds between keep-alive probes.
                                          nullable: true
                                          type: integer
                                        probes:
                                          description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                          nullable: true
                                          type: integer
                                      type: object
                                  type: object
                              type: object
                            meshTimeout:
                              description: Configures the max connection and stream durations for HTTP and TCP connections.
                              properties:
                                maxConnectionDuration:
                                  description: This specifies the duration of time after which a downstream and upstream connection will be drained and/or closed, starting from when it was first established.
                                  type: string
                                maxDownstreamConnectionDuration:
                                  description: The maximum duration of a TCP connection.
                                  type: string
                                maxStreamDuration:
                                  description: The max stream duration is the maximum time that a stream’s lifetime will span.
                                  type: string
                                proxyType:
                                  description: Specifies the type of proxy to which to apply the mesh timeout settings.
                                  enum:
                                    - ANY
                                    - SIDECAR
                                    - GATEWAY
                                  type: string
                              type: object
                          type: object
                      type: object
                    outbound:
                      description: Configures outbound traffic.
                      properties:
                        egress:
                          description: Specifies the details of the egress proxy to which traffic to services that are not part to the mesh should be forwarded to from the proxy workloads.
                          properties:
                            host:
                              description: Specifies the egress gateway hostname.
                              type: string
                          required:
                            - host
                          type: object
                        reachability:
                          description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                          properties:
                            hosts:
                              description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                              items:
                                type: string
                              type: array
                            mode:
                              description: A short cut for specifying the set of services accessed by the workload.
                              enum:
                                - UNSET
                                - NAMESPACE
                                - GROUP
                                - WORKSPACE
                                - CLUSTER
                                - CUSTOM
                              type: string
                          type: object
                        upstreamTrafficSettings:
                          description: List of hosts and the associated traffic settings to be used by the clients sending traffic to them.
                          items:
                            properties:
                              hosts:
                                description: List of hosts for which the settings will be created.
                                items:
                                  type: string
                                type: array
                              settings:
                                description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                properties:
                                  authentication:
                                    description: Configuration for connection authentication parameters.
                                    properties:
                                      trafficMode:
                                        description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                        enum:
                                          - UNSET
                                          - OPTIONAL
                                          - REQUIRED
                                        type: string
                                    type: object
                                  loadBalancer:
                                    description: Load balancing settings for the clients.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - simple
                                            - required:
                                                - consistentHash
                                      - required:
                                          - simple
                                      - required:
                                          - consistentHash
                                    properties:
                                      consistentHash:
                                        allOf:
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - httpHeaderName
                                                    - required:
                                                        - httpCookie
                                                    - required:
                                                        - useSourceIp
                                                    - required:
                                                        - httpQueryParameterName
                                              - required:
                                                  - httpHeaderName
                                              - required:
                                                  - httpCookie
                                              - required:
                                                  - useSourceIp
                                              - required:
                                                  - httpQueryParameterName
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - ringHash
                                                    - required:
                                                        - maglev
                                              - required:
                                                  - ringHash
                                              - required:
                                                  - maglev
                                        description: Use consistent hash load balancing which can provide soft session affinity.
                                        properties:
                                          httpCookie:
                                            description: Hash based on HTTP cookie.
                                            properties:
                                              name:
                                                description: Name of the cookie.
                                                type: string
                                              path:
                                                description: Path to set for the cookie.
                                                type: string
                                              ttl:
                                                description: Lifetime of the cookie.
                                                type: string
                                            required:
                                              - name
                                              - ttl
                                            type: object
                                          httpHeaderName:
                                            description: Hash based on a specific HTTP header.
                                            type: string
                                          httpQueryParameterName:
                                            description: Hash based on a specific HTTP query parameter.
                                            type: string
                                          maglev:
                                            description: The Maglev load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              tableSize:
                                                description: The table size for Maglev hashing.
                                                type: integer
                                            required:
                                              - tableSize
                                            type: object
                                          ringHash:
                                            description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              minimumRingSize:
                                                description: The minimum number of virtual nodes to use for the hash ring.
                                                type: integer
                                            type: object
                                          useSourceIp:
                                            description: Hash based on the source IP address.
                                            type: boolean
                                        type: object
                                      simple:
                                        description: Use standard load balancing algorithms that require no tuning.
                                        enum:
                                          - UNSPECIFIED
                                          - RANDOM
                                          - PASSTHROUGH
                                          - ROUND_ROBIN
                                          - LEAST_REQUEST
                                        type: string
                                    type: object
                                  resilience:
                                    description: Resilience settings for the clients.
                                    properties:
                                      circuitBreakerSensitivity:
                                        description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                        enum:
                                          - UNSET
                                          - LOW
                                          - MEDIUM
                                          - HIGH
                                          - CUSTOM
                                        type: string
                                      connectionPool:
                                        description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                        properties:
                                          http:
                                            properties:
                                              maxRequests:
                                                description: Maximum number of active requests to the service.
                                                type: integer
                                              maxRequestsPerConnection:
                                                description: Maximum number of requests per connection to the service.
                                                type: integer
                                              requestTimeout:
                                                description: Timeout for HTTP requests.
                                                type: string
                                              retries:
                                                description: Retry policy for HTTP requests.
                                                properties:
                                                  attempts:
                                                    description: Number of retries for a given request.
                                                    format: int32
                                                    type: integer
                                                  perTryTimeout:
                                                    description: Timeout per retry attempt for a given request.
                                                    type: string
                                                  retryBackOff:
                                                    description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                    properties:
                                                      baseInterval:
                                                        description: The base interval between retry attempts.
                                                        type: string
                                                      maxInterval:
                                                        description: The maximum interval between retry attempts.
                                                        type: string
                                                    required:
                                                      - baseInterval
                                                    type: object
                                                  retryOn:
                                                    description: Specifies the conditions under which retry takes place.
                                                    type: string
                                                required:
                                                  - attempts
                                                type: object
                                            type: object
                                          tcp:
                                            properties:
                                              connectTimeout:
                                                description: TCP connection timeout.
                                                type: string
                                              keepAlive:
                                                description: Keep Alive Settings.
                                                properties:
                                                  idleTime:
                                                    description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                    nullable: true
                                                    type: integer
                                                  interval:
                                                    description: The number of seconds between keep-alive probes.
                                                    nullable: true
                                                    type: integer
                                                  probes:
                                                    description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                    nullable: true
                                                    type: integer
                                                type: object
                                              maxConnections:
                                                description: Maximum number of HTTP1 /TCP connections to the service.
                                                type: integer
                                            type: object
                                        type: object
                                      outlierDetection:
                                        description: Outlier detection settings for the upstream host when custom mode is used.
                                        properties:
                                          baseEjectionTime:
                                            description: The base time that a host is ejected for.
                                            type: string
                                          consecutive5xx:
                                            description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveGatewayFailure:
                                            description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveLocalOriginFailure:
                                            nullable: true
                                            type: integer
                                          enforcingConsecutive5xx:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveGatewayFailure:
                                            description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveLocalOriginFailure:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                            nullable: true
                                            type: integer
                                          interval:
                                            description: The time interval between ejection analysis sweeps.
                                            type: string
                                          maxEjectionPercent:
                                            description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                            nullable: true
                                            type: integer
                                          maxEjectionTime:
                                            description: The maximum time that a host is ejected for.
                                            type: string
                                          splitExternalLocalOriginErrors:
                                            description: Determines whether to distinguish local origin failures from external errors.
                                            type: boolean
                                        type: object
                                    type: object
                                type: object
                            type: object
                          type: array
                      type: object
                    rateLimiting:
                      description: Configuration for rate limiting requests.
                      oneOf:
                        - not:
                            anyOf:
                              - required:
                                  - settings
                              - required:
                                  - externalService
                              - required:
                                  - local
                        - required:
                            - settings
                        - required:
                            - externalService
                        - required:
                            - local
                      properties:
                        externalService:
                          description: Configure ratelimiting using an external ratelimit server.
                          properties:
                            domain:
                              description: The rate limit domain to use when calling the rate limit service.
                              type: string
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rateLimitServerUri:
                              description: The URI at which the external rate limit server can be reached.
                              type: string
                            rules:
                              description: A set of rate limit rules.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions that are to be applied for this rate limit configuration.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - sourceCluster
                                              - required:
                                                  - destinationCluster
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - requestHeaders
                                              - required:
                                                  - headerValueMatch
                                        - required:
                                            - sourceCluster
                                        - required:
                                            - destinationCluster
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - requestHeaders
                                        - required:
                                            - headerValueMatch
                                      properties:
                                        destinationCluster:
                                          description: Rate limit on destination envoy cluster.
                                          type: object
                                        headerValueMatch:
                                          description: Rate limit on the existence of certain request headers.
                                          properties:
                                            descriptorValue:
                                              description: The value to use in the descriptor entry.
                                              type: string
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            headers:
                                              additionalProperties:
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                              description: Specifies a set of headers that the rate limit action should match on.
                                              type: object
                                          required:
                                            - headers
                                            - descriptorValue
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on remote address of client.
                                          type: object
                                        requestHeaders:
                                          description: Rate limit on the value of certain request headers.
                                          properties:
                                            descriptorKey:
                                              description: The key to use in the descriptor entry.
                                              type: string
                                            headerName:
                                              description: The header name to be queried from the request headers.
                                              type: string
                                          required:
                                            - headerName
                                            - descriptorKey
                                          type: object
                                        sourceCluster:
                                          description: Rate limit on source envoy cluster.
                                          type: object
                                      type: object
                                    type: array
                                required:
                                  - dimensions
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the external rate limit server RPC.
                              type: string
                            tls:
                              description: Configure TLS parameters to be used when connecting to the external rate limit server.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                - required:
                                    - files
                                - required:
                                    - secretName
                              properties:
                                files:
                                  description: TLS key source from files.
                                  properties:
                                    caCertificates:
                                      description: File containing CA certificates to verify the certificates presented by the server.
                                      type: string
                                    clientCertificate:
                                      description: Certificate file to authenticate the client.
                                      type: string
                                    privateKey:
                                      description: Private key file associated with the client certificate.
                                      type: string
                                  type: object
                                mode:
                                  enum:
                                    - DISABLED
                                    - SIMPLE
                                    - MUTUAL
                                  type: string
                                secretName:
                                  description: TLS key source from a Kubernetes Secret.
                                  type: string
                                subjectAltNames:
                                  items:
                                    type: string
                                  type: array
                              type: object
                          required:
                            - domain
                            - rateLimitServerUri
                            - rules
                          type: object
                        local:
                          description: Apply rate limits internally in the Envoy proxy.
                          properties:
                            maxWildcardDimensions:
                              description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                              nullable: true
                              type: integer
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              nullable: true
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              nullable: true
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              nullable: true
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  tokenBucket:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      fillInterval:
                                        description: The fill interval that tokens are added to the bucket.
                                        type: string
                                      maxTokens:
                                        description: The maximum tokens that the bucket can hold.
                                        nullable: true
                                        type: integer
                                      tokensPerFill:
                                        description: The number of tokens added to the bucket during each fill interval.
                                        nullable: true
                                        type: integer
                                    required:
                                      - maxTokens
                                      - fillInterval
                                    type: object
                                required:
                                  - dimensions
                                  - tokenBucket
                                type: object
                              type: array
                          required:
                            - rules
                          type: object
                        settings:
                          properties:
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  limit:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      requestsPerUnit:
                                        description: Specifies the value of the rate limit.
                                        type: integer
                                      unit:
                                        description: Specifies the unit of time for rate limit.
                                        enum:
                                          - UNKNOWN
                                          - SECOND
                                          - MINUTE
                                          - HOUR
                                          - DAY
                                        type: string
                                    required:
                                      - requestsPerUnit
                                      - unit
                                    type: object
                                required:
                                  - dimensions
                                  - limit
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the rate limit server RPC.
                              type: string
                          required:
                            - rules
                          type: object
                      type: object
                    reachability:
                      description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                      properties:
                        hosts:
                          description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                          items:
                            type: string
                          type: array
                        mode:
                          description: A short cut for specifying the set of services accessed by the workload.
                          enum:
                            - UNSET
                            - NAMESPACE
                            - GROUP
                            - WORKSPACE
                            - CLUSTER
                            - CUSTOM
                          type: string
                      type: object
                    resilience:
                      description: Resilience settings such as timeouts, retries, etc., affecting outbound traffic from proxy workloads.
                      properties:
                        circuitBreakerSensitivity:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.circuitBreakerSensitivity`.
                          enum:
                            - UNSET
                            - LOW
                            - MEDIUM
                            - HIGH
                          type: string
                        httpRequestTimeout:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.requestTimeout`.
                          type: string
                        httpRetries:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.retries`.
                          properties:
                            attempts:
                              description: Number of retries for a given request.
                              format: int32
                              type: integer
                            perTryTimeout:
                              description: Timeout per retry attempt for a given request.
                              type: string
                            retryBackOff:
                              description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                              properties:
                                baseInterval:
                                  description: The base interval between retry attempts.
                                  type: string
                                maxInterval:
                                  description: The maximum interval between retry attempts.
                                  type: string
                              required:
                                - baseInterval
                              type: object
                            retryOn:
                              description: Specifies the conditions under which retry takes place.
                              type: string
                          required:
                            - attempts
                          type: object
                        keepAlive:
                          description: Keep Alive Settings.
                          properties:
                            tcp:
                              description: TCP Keep Alive settings associated with the upstream and downstream TCP connections.
                              properties:
                                downstream:
                                  description: TCP Keep Alive Settings associated with the downstream (client) connection.
                                  properties:
                                    idleTime:
                                      description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                      nullable: true
                                      type: integer
                                    interval:
                                      description: The number of seconds between keep-alive probes.
                                      nullable: true
                                      type: integer
                                    probes:
                                      description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                      nullable: true
                                      type: integer
                                  type: object
                                upstream:
                                  description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.tcp.keepAlive`.
                                  properties:
                                    idleTime:
                                      description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                      nullable: true
                                      type: integer
                                    interval:
                                      description: The number of seconds between keep-alive probes.
                                      nullable: true
                                      type: integer
                                    probes:
                                      description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                      nullable: true
                                      type: integer
                                  type: object
                              type: object
                          type: object
                      type: object
                    upstreamTrafficSettings:
                      description: List of hosts and the associated traffic settings to be used by the clients that are downstreams to the defined upstream hosts.
                      items:
                        properties:
                          hosts:
                            description: List of hosts for which the settings will be created.
                            items:
                              type: string
                            type: array
                          settings:
                            description: A single setting to be applied to all the clients connecting to the upstream hosts.
                            properties:
                              authentication:
                                description: Configuration for connection authentication parameters.
                                properties:
                                  trafficMode:
                                    description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                    enum:
                                      - UNSET
                                      - OPTIONAL
                                      - REQUIRED
                                    type: string
                                type: object
                              loadBalancer:
                                description: Load balancing settings for the clients.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - simple
                                        - required:
                                            - consistentHash
                                  - required:
                                      - simple
                                  - required:
                                      - consistentHash
                                properties:
                                  consistentHash:
                                    allOf:
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - httpHeaderName
                                                - required:
                                                    - httpCookie
                                                - required:
                                                    - useSourceIp
                                                - required:
                                                    - httpQueryParameterName
                                          - required:
                                              - httpHeaderName
                                          - required:
                                              - httpCookie
                                          - required:
                                              - useSourceIp
                                          - required:
                                              - httpQueryParameterName
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - ringHash
                                                - required:
                                                    - maglev
                                          - required:
                                              - ringHash
                                          - required:
                                              - maglev
                                    description: Use consistent hash load balancing which can provide soft session affinity.
                                    properties:
                                      httpCookie:
                                        description: Hash based on HTTP cookie.
                                        properties:
                                          name:
                                            description: Name of the cookie.
                                            type: string
                                          path:
                                            description: Path to set for the cookie.
                                            type: string
                                          ttl:
                                            description: Lifetime of the cookie.
                                            type: string
                                        required:
                                          - name
                                          - ttl
                                        type: object
                                      httpHeaderName:
                                        description: Hash based on a specific HTTP header.
                                        type: string
                                      httpQueryParameterName:
                                        description: Hash based on a specific HTTP query parameter.
                                        type: string
                                      maglev:
                                        description: The Maglev load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          tableSize:
                                            description: The table size for Maglev hashing.
                                            type: integer
                                        required:
                                          - tableSize
                                        type: object
                                      ringHash:
                                        description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          minimumRingSize:
                                            description: The minimum number of virtual nodes to use for the hash ring.
                                            type: integer
                                        type: object
                                      useSourceIp:
                                        description: Hash based on the source IP address.
                                        type: boolean
                                    type: object
                                  simple:
                                    description: Use standard load balancing algorithms that require no tuning.
                                    enum:
                                      - UNSPECIFIED
                                      - RANDOM
                                      - PASSTHROUGH
                                      - ROUND_ROBIN
                                      - LEAST_REQUEST
                                    type: string
                                type: object
                              resilience:
                                description: Resilience settings for the clients.
                                properties:
                                  circuitBreakerSensitivity:
                                    description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                    enum:
                                      - UNSET
                                      - LOW
                                      - MEDIUM
                                      - HIGH
                                      - CUSTOM
                                    type: string
                                  connectionPool:
                                    description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                    properties:
                                      http:
                                        properties:
                                          maxRequests:
                                            description: Maximum number of active requests to the service.
                                            type: integer
                                          maxRequestsPerConnection:
                                            description: Maximum number of requests per connection to the service.
                                            type: integer
                                          requestTimeout:
                                            description: Timeout for HTTP requests.
                                            type: string
                                          retries:
                                            description: Retry policy for HTTP requests.
                                            properties:
                                              attempts:
                                                description: Number of retries for a given request.
                                                format: int32
                                                type: integer
                                              perTryTimeout:
                                                description: Timeout per retry attempt for a given request.
                                                type: string
                                              retryBackOff:
                                                description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                properties:
                                                  baseInterval:
                                                    description: The base interval between retry attempts.
                                                    type: string
                                                  maxInterval:
                                                    description: The maximum interval between retry attempts.
                                                    type: string
                                                required:
                                                  - baseInterval
                                                type: object
                                              retryOn:
                                                description: Specifies the conditions under which retry takes place.
                                                type: string
                                            required:
                                              - attempts
                                            type: object
                                        type: object
                                      tcp:
                                        properties:
                                          connectTimeout:
                                            description: TCP connection timeout.
                                            type: string
                                          keepAlive:
                                            description: Keep Alive Settings.
                                            properties:
                                              idleTime:
                                                description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                nullable: true
                                                type: integer
                                              interval:
                                                description: The number of seconds between keep-alive probes.
                                                nullable: true
                                                type: integer
                                              probes:
                                                description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                nullable: true
                                                type: integer
                                            type: object
                                          maxConnections:
                                            description: Maximum number of HTTP1 /TCP connections to the service.
                                            type: integer
                                        type: object
                                    type: object
                                  outlierDetection:
                                    description: Outlier detection settings for the upstream host when custom mode is used.
                                    properties:
                                      baseEjectionTime:
                                        description: The base time that a host is ejected for.
                                        type: string
                                      consecutive5xx:
                                        description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveGatewayFailure:
                                        description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveLocalOriginFailure:
                                        nullable: true
                                        type: integer
                                      enforcingConsecutive5xx:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveGatewayFailure:
                                        description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveLocalOriginFailure:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                        nullable: true
                                        type: integer
                                      interval:
                                        description: The time interval between ejection analysis sweeps.
                                        type: string
                                      maxEjectionPercent:
                                        description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                        nullable: true
                                        type: integer
                                      maxEjectionTime:
                                        description: The maximum time that a host is ejected for.
                                        type: string
                                      splitExternalLocalOriginErrors:
                                        description: Determines whether to distinguish local origin failures from external errors.
                                        type: boolean
                                    type: object
                                type: object
                            type: object
                        type: object
                      type: array
                  type: object
              required:
                - service
                - settings
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: trafficsettings.traffic.tsb.tetrate.io
spec:
  group: traffic.tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - traffic-tsb-tetrate-io
    kind: TrafficSetting
    listKind: TrafficSettingList
    plural: trafficsettings
    shortNames:
      - ttrs
    singular: trafficsetting
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/trafficGroup']
          name: Traffic-Group
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: A traffic setting applies configuration to a set of proxy workloads in a traffic group or a workspace.
              properties:
                configGenerationMetadata:
                  description: Metadata values that will be add into the Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                egress:
                  description: Specifies the details of the egress proxy to which unknown traffic should be forwarded to from the proxy workload.
                  properties:
                    host:
                      description: Specifies the egress gateway hostname.
                      type: string
                    port:
                      description: Deprecated.
                      format: int32
                      type: integer
                  required:
                    - host
                  type: object
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                inbound:
                  description: Configures inbound traffic.
                  properties:
                    failoverSettings:
                      description: Failover settings apply to all clients accessing the hostname defined in this section.
                      properties:
                        automaticLoadBalancing:
                          properties:
                            enabled:
                              description: Whether to enable automatic load balancing.
                              nullable: true
                              type: boolean
                          type: object
                        failoverPriority:
                          description: FailoverPriority specifies the failover priority for traffic.
                          items:
                            type: string
                          type: array
                        regionalFailover:
                          description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                          items:
                            properties:
                              from:
                                description: Originating region.
                                type: string
                              to:
                                description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                type: string
                            type: object
                          type: array
                        topologyChoice:
                          description: TopologyChoice specifies the topology preference for traffic priority.
                          enum:
                            - NONE
                            - CLUSTER
                            - LOCALITY
                          type: string
                      type: object
                    rateLimiting:
                      description: Configuration for rate limiting requests.
                      oneOf:
                        - not:
                            anyOf:
                              - required:
                                  - settings
                              - required:
                                  - externalService
                              - required:
                                  - local
                        - required:
                            - settings
                        - required:
                            - externalService
                        - required:
                            - local
                      properties:
                        externalService:
                          description: Configure ratelimiting using an external ratelimit server.
                          properties:
                            domain:
                              description: The rate limit domain to use when calling the rate limit service.
                              type: string
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rateLimitServerUri:
                              description: The URI at which the external rate limit server can be reached.
                              type: string
                            rules:
                              description: A set of rate limit rules.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions that are to be applied for this rate limit configuration.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - sourceCluster
                                              - required:
                                                  - destinationCluster
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - requestHeaders
                                              - required:
                                                  - headerValueMatch
                                        - required:
                                            - sourceCluster
                                        - required:
                                            - destinationCluster
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - requestHeaders
                                        - required:
                                            - headerValueMatch
                                      properties:
                                        destinationCluster:
                                          description: Rate limit on destination envoy cluster.
                                          type: object
                                        headerValueMatch:
                                          description: Rate limit on the existence of certain request headers.
                                          properties:
                                            descriptorValue:
                                              description: The value to use in the descriptor entry.
                                              type: string
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            headers:
                                              additionalProperties:
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                              description: Specifies a set of headers that the rate limit action should match on.
                                              type: object
                                          required:
                                            - headers
                                            - descriptorValue
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on remote address of client.
                                          type: object
                                        requestHeaders:
                                          description: Rate limit on the value of certain request headers.
                                          properties:
                                            descriptorKey:
                                              description: The key to use in the descriptor entry.
                                              type: string
                                            headerName:
                                              description: The header name to be queried from the request headers.
                                              type: string
                                          required:
                                            - headerName
                                            - descriptorKey
                                          type: object
                                        sourceCluster:
                                          description: Rate limit on source envoy cluster.
                                          type: object
                                      type: object
                                    type: array
                                required:
                                  - dimensions
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the external rate limit server RPC.
                              type: string
                            tls:
                              description: Configure TLS parameters to be used when connecting to the external rate limit server.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                - required:
                                    - files
                                - required:
                                    - secretName
                              properties:
                                files:
                                  description: TLS key source from files.
                                  properties:
                                    caCertificates:
                                      description: File containing CA certificates to verify the certificates presented by the server.
                                      type: string
                                    clientCertificate:
                                      description: Certificate file to authenticate the client.
                                      type: string
                                    privateKey:
                                      description: Private key file associated with the client certificate.
                                      type: string
                                  type: object
                                mode:
                                  enum:
                                    - DISABLED
                                    - SIMPLE
                                    - MUTUAL
                                  type: string
                                secretName:
                                  description: TLS key source from a Kubernetes Secret.
                                  type: string
                                subjectAltNames:
                                  items:
                                    type: string
                                  type: array
                              type: object
                          required:
                            - domain
                            - rateLimitServerUri
                            - rules
                          type: object
                        local:
                          description: Apply rate limits internally in the Envoy proxy.
                          properties:
                            maxWildcardDimensions:
                              description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                              nullable: true
                              type: integer
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              nullable: true
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              nullable: true
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              nullable: true
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  tokenBucket:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      fillInterval:
                                        description: The fill interval that tokens are added to the bucket.
                                        type: string
                                      maxTokens:
                                        description: The maximum tokens that the bucket can hold.
                                        nullable: true
                                        type: integer
                                      tokensPerFill:
                                        description: The number of tokens added to the bucket during each fill interval.
                                        nullable: true
                                        type: integer
                                    required:
                                      - maxTokens
                                      - fillInterval
                                    type: object
                                required:
                                  - dimensions
                                  - tokenBucket
                                type: object
                              type: array
                          required:
                            - rules
                          type: object
                        settings:
                          properties:
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  limit:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      requestsPerUnit:
                                        description: Specifies the value of the rate limit.
                                        type: integer
                                      unit:
                                        description: Specifies the unit of time for rate limit.
                                        enum:
                                          - UNKNOWN
                                          - SECOND
                                          - MINUTE
                                          - HOUR
                                          - DAY
                                        type: string
                                    required:
                                      - requestsPerUnit
                                      - unit
                                    type: object
                                required:
                                  - dimensions
                                  - limit
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the rate limit server RPC.
                              type: string
                          required:
                            - rules
                          type: object
                      type: object
                    resilience:
                      description: Resiliency configuration for inbound connections.
                      properties:
                        connectionPool:
                          description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                          properties:
                            tcp:
                              properties:
                                keepAlive:
                                  description: Keep Alive Settings.
                                  properties:
                                    idleTime:
                                      description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                      nullable: true
                                      type: integer
                                    interval:
                                      description: The number of seconds between keep-alive probes.
                                      nullable: true
                                      type: integer
                                    probes:
                                      description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                      nullable: true
                                      type: integer
                                  type: object
                              type: object
                          type: object
                        meshTimeout:
                          description: Configures the max connection and stream durations for HTTP and TCP connections.
                          properties:
                            maxConnectionDuration:
                              description: This specifies the duration of time after which a downstream and upstream connection will be drained and/or closed, starting from when it was first established.
                              type: string
                            maxDownstreamConnectionDuration:
                              description: The maximum duration of a TCP connection.
                              type: string
                            maxStreamDuration:
                              description: The max stream duration is the maximum time that a stream’s lifetime will span.
                              type: string
                            proxyType:
                              description: Specifies the type of proxy to which to apply the mesh timeout settings.
                              enum:
                                - ANY
                                - SIDECAR
                                - GATEWAY
                              type: string
                          type: object
                      type: object
                  type: object
                outbound:
                  description: Configures outbound traffic.
                  properties:
                    egress:
                      description: Specifies the details of the egress proxy to which traffic to services that are not part to the mesh should be forwarded to from the proxy workloads.
                      properties:
                        host:
                          description: Specifies the egress gateway hostname.
                          type: string
                      required:
                        - host
                      type: object
                    reachability:
                      description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                      properties:
                        hosts:
                          description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                          items:
                            type: string
                          type: array
                        mode:
                          description: A short cut for specifying the set of services accessed by the workload.
                          enum:
                            - UNSET
                            - NAMESPACE
                            - GROUP
                            - WORKSPACE
                            - CLUSTER
                            - CUSTOM
                          type: string
                      type: object
                    upstreamTrafficSettings:
                      description: List of hosts and the associated traffic settings to be used by the clients sending traffic to them.
                      items:
                        properties:
                          hosts:
                            description: List of hosts for which the settings will be created.
                            items:
                              type: string
                            type: array
                          settings:
                            description: A single setting to be applied to all the clients connecting to the upstream hosts.
                            properties:
                              authentication:
                                description: Configuration for connection authentication parameters.
                                properties:
                                  trafficMode:
                                    description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                    enum:
                                      - UNSET
                                      - OPTIONAL
                                      - REQUIRED
                                    type: string
                                type: object
                              loadBalancer:
                                description: Load balancing settings for the clients.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - simple
                                        - required:
                                            - consistentHash
                                  - required:
                                      - simple
                                  - required:
                                      - consistentHash
                                properties:
                                  consistentHash:
                                    allOf:
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - httpHeaderName
                                                - required:
                                                    - httpCookie
                                                - required:
                                                    - useSourceIp
                                                - required:
                                                    - httpQueryParameterName
                                          - required:
                                              - httpHeaderName
                                          - required:
                                              - httpCookie
                                          - required:
                                              - useSourceIp
                                          - required:
                                              - httpQueryParameterName
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - ringHash
                                                - required:
                                                    - maglev
                                          - required:
                                              - ringHash
                                          - required:
                                              - maglev
                                    description: Use consistent hash load balancing which can provide soft session affinity.
                                    properties:
                                      httpCookie:
                                        description: Hash based on HTTP cookie.
                                        properties:
                                          name:
                                            description: Name of the cookie.
                                            type: string
                                          path:
                                            description: Path to set for the cookie.
                                            type: string
                                          ttl:
                                            description: Lifetime of the cookie.
                                            type: string
                                        required:
                                          - name
                                          - ttl
                                        type: object
                                      httpHeaderName:
                                        description: Hash based on a specific HTTP header.
                                        type: string
                                      httpQueryParameterName:
                                        description: Hash based on a specific HTTP query parameter.
                                        type: string
                                      maglev:
                                        description: The Maglev load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          tableSize:
                                            description: The table size for Maglev hashing.
                                            type: integer
                                        required:
                                          - tableSize
                                        type: object
                                      ringHash:
                                        description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          minimumRingSize:
                                            description: The minimum number of virtual nodes to use for the hash ring.
                                            type: integer
                                        type: object
                                      useSourceIp:
                                        description: Hash based on the source IP address.
                                        type: boolean
                                    type: object
                                  simple:
                                    description: Use standard load balancing algorithms that require no tuning.
                                    enum:
                                      - UNSPECIFIED
                                      - RANDOM
                                      - PASSTHROUGH
                                      - ROUND_ROBIN
                                      - LEAST_REQUEST
                                    type: string
                                type: object
                              resilience:
                                description: Resilience settings for the clients.
                                properties:
                                  circuitBreakerSensitivity:
                                    description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                    enum:
                                      - UNSET
                                      - LOW
                                      - MEDIUM
                                      - HIGH
                                      - CUSTOM
                                    type: string
                                  connectionPool:
                                    description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                    properties:
                                      http:
                                        properties:
                                          maxRequests:
                                            description: Maximum number of active requests to the service.
                                            type: integer
                                          maxRequestsPerConnection:
                                            description: Maximum number of requests per connection to the service.
                                            type: integer
                                          requestTimeout:
                                            description: Timeout for HTTP requests.
                                            type: string
                                          retries:
                                            description: Retry policy for HTTP requests.
                                            properties:
                                              attempts:
                                                description: Number of retries for a given request.
                                                format: int32
                                                type: integer
                                              perTryTimeout:
                                                description: Timeout per retry attempt for a given request.
                                                type: string
                                              retryBackOff:
                                                description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                properties:
                                                  baseInterval:
                                                    description: The base interval between retry attempts.
                                                    type: string
                                                  maxInterval:
                                                    description: The maximum interval between retry attempts.
                                                    type: string
                                                required:
                                                  - baseInterval
                                                type: object
                                              retryOn:
                                                description: Specifies the conditions under which retry takes place.
                                                type: string
                                            required:
                                              - attempts
                                            type: object
                                        type: object
                                      tcp:
                                        properties:
                                          connectTimeout:
                                            description: TCP connection timeout.
                                            type: string
                                          keepAlive:
                                            description: Keep Alive Settings.
                                            properties:
                                              idleTime:
                                                description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                nullable: true
                                                type: integer
                                              interval:
                                                description: The number of seconds between keep-alive probes.
                                                nullable: true
                                                type: integer
                                              probes:
                                                description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                nullable: true
                                                type: integer
                                            type: object
                                          maxConnections:
                                            description: Maximum number of HTTP1 /TCP connections to the service.
                                            type: integer
                                        type: object
                                    type: object
                                  outlierDetection:
                                    description: Outlier detection settings for the upstream host when custom mode is used.
                                    properties:
                                      baseEjectionTime:
                                        description: The base time that a host is ejected for.
                                        type: string
                                      consecutive5xx:
                                        description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveGatewayFailure:
                                        description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveLocalOriginFailure:
                                        nullable: true
                                        type: integer
                                      enforcingConsecutive5xx:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveGatewayFailure:
                                        description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveLocalOriginFailure:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                        nullable: true
                                        type: integer
                                      interval:
                                        description: The time interval between ejection analysis sweeps.
                                        type: string
                                      maxEjectionPercent:
                                        description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                        nullable: true
                                        type: integer
                                      maxEjectionTime:
                                        description: The maximum time that a host is ejected for.
                                        type: string
                                      splitExternalLocalOriginErrors:
                                        description: Determines whether to distinguish local origin failures from external errors.
                                        type: boolean
                                    type: object
                                type: object
                            type: object
                        type: object
                      type: array
                  type: object
                rateLimiting:
                  description: Configuration for rate limiting requests.
                  oneOf:
                    - not:
                        anyOf:
                          - required:
                              - settings
                          - required:
                              - externalService
                          - required:
                              - local
                    - required:
                        - settings
                    - required:
                        - externalService
                    - required:
                        - local
                  properties:
                    externalService:
                      description: Configure ratelimiting using an external ratelimit server.
                      properties:
                        domain:
                          description: The rate limit domain to use when calling the rate limit service.
                          type: string
                        failClosed:
                          description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                          type: boolean
                        rateLimitServerUri:
                          description: The URI at which the external rate limit server can be reached.
                          type: string
                        rules:
                          description: A set of rate limit rules.
                          items:
                            properties:
                              dimensions:
                                description: A list of dimensions that are to be applied for this rate limit configuration.
                                items:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - sourceCluster
                                          - required:
                                              - destinationCluster
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - requestHeaders
                                          - required:
                                              - headerValueMatch
                                    - required:
                                        - sourceCluster
                                    - required:
                                        - destinationCluster
                                    - required:
                                        - remoteAddress
                                    - required:
                                        - requestHeaders
                                    - required:
                                        - headerValueMatch
                                  properties:
                                    destinationCluster:
                                      description: Rate limit on destination envoy cluster.
                                      type: object
                                    headerValueMatch:
                                      description: Rate limit on the existence of certain request headers.
                                      properties:
                                        descriptorValue:
                                          description: The value to use in the descriptor entry.
                                          type: string
                                        dontMatch:
                                          description: If set to true, the condition will be met when the header value does not match.
                                          type: boolean
                                        headers:
                                          additionalProperties:
                                            oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                              - required:
                                                  - exact
                                              - required:
                                                  - prefix
                                              - required:
                                                  - regex
                                            properties:
                                              exact:
                                                description: Exact string match.
                                                type: string
                                              prefix:
                                                description: Prefix-based match.
                                                type: string
                                              regex:
                                                description: ECMAscript style regex-based match.
                                                type: string
                                            type: object
                                          description: Specifies a set of headers that the rate limit action should match on.
                                          type: object
                                      required:
                                        - headers
                                        - descriptorValue
                                      type: object
                                    remoteAddress:
                                      description: Rate limit on remote address of client.
                                      type: object
                                    requestHeaders:
                                      description: Rate limit on the value of certain request headers.
                                      properties:
                                        descriptorKey:
                                          description: The key to use in the descriptor entry.
                                          type: string
                                        headerName:
                                          description: The header name to be queried from the request headers.
                                          type: string
                                      required:
                                        - headerName
                                        - descriptorKey
                                      type: object
                                    sourceCluster:
                                      description: Rate limit on source envoy cluster.
                                      type: object
                                  type: object
                                type: array
                            required:
                              - dimensions
                            type: object
                          type: array
                        timeout:
                          description: The timeout in seconds for the external rate limit server RPC.
                          type: string
                        tls:
                          description: Configure TLS parameters to be used when connecting to the external rate limit server.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - files
                                  - required:
                                      - secretName
                            - required:
                                - files
                            - required:
                                - secretName
                          properties:
                            files:
                              description: TLS key source from files.
                              properties:
                                caCertificates:
                                  description: File containing CA certificates to verify the certificates presented by the server.
                                  type: string
                                clientCertificate:
                                  description: Certificate file to authenticate the client.
                                  type: string
                                privateKey:
                                  description: Private key file associated with the client certificate.
                                  type: string
                              type: object
                            mode:
                              enum:
                                - DISABLED
                                - SIMPLE
                                - MUTUAL
                              type: string
                            secretName:
                              description: TLS key source from a Kubernetes Secret.
                              type: string
                            subjectAltNames:
                              items:
                                type: string
                              type: array
                          type: object
                      required:
                        - domain
                        - rateLimitServerUri
                        - rules
                      type: object
                    local:
                      description: Apply rate limits internally in the Envoy proxy.
                      properties:
                        maxWildcardDimensions:
                          description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                          nullable: true
                          type: integer
                        rules:
                          description: A list of rules for ratelimiting.
                          items:
                            properties:
                              dimensions:
                                description: A list of dimensions to define each ratelimit rule.
                                items:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                    - required:
                                        - remoteAddress
                                    - required:
                                        - header
                                  properties:
                                    header:
                                      description: Rate limit on certain HTTP headers.
                                      properties:
                                        dontMatch:
                                          description: If set to true, the condition will be met when the header value does not match.
                                          nullable: true
                                          type: boolean
                                        name:
                                          description: Name of the header to match on.
                                          nullable: true
                                          type: string
                                        value:
                                          description: Value of the header to match on if matching on a specific value.
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                            - required:
                                                - exact
                                            - required:
                                                - prefix
                                            - required:
                                                - regex
                                          properties:
                                            exact:
                                              description: Exact string match.
                                              type: string
                                            prefix:
                                              description: Prefix-based match.
                                              type: string
                                            regex:
                                              description: ECMAscript style regex-based match.
                                              type: string
                                          type: object
                                      required:
                                        - name
                                      type: object
                                    remoteAddress:
                                      description: Rate limit on the remote address of client.
                                      properties:
                                        value:
                                          description: Ratelimit on a specific remote address.
                                          nullable: true
                                          type: string
                                      required:
                                        - value
                                      type: object
                                  type: object
                                type: array
                              tokenBucket:
                                description: The ratelimit value that will be configured for the above rules.
                                properties:
                                  fillInterval:
                                    description: The fill interval that tokens are added to the bucket.
                                    type: string
                                  maxTokens:
                                    description: The maximum tokens that the bucket can hold.
                                    nullable: true
                                    type: integer
                                  tokensPerFill:
                                    description: The number of tokens added to the bucket during each fill interval.
                                    nullable: true
                                    type: integer
                                required:
                                  - maxTokens
                                  - fillInterval
                                type: object
                            required:
                              - dimensions
                              - tokenBucket
                            type: object
                          type: array
                      required:
                        - rules
                      type: object
                    settings:
                      properties:
                        failClosed:
                          description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                          type: boolean
                        rules:
                          description: A list of rules for ratelimiting.
                          items:
                            properties:
                              dimensions:
                                description: A list of dimensions to define each ratelimit rule.
                                items:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - remoteAddress
                                          - required:
                                              - header
                                    - required:
                                        - remoteAddress
                                    - required:
                                        - header
                                  properties:
                                    header:
                                      description: Rate limit on certain HTTP headers.
                                      properties:
                                        dontMatch:
                                          description: If set to true, the condition will be met when the header value does not match.
                                          type: boolean
                                        name:
                                          description: Name of the header to match on.
                                          type: string
                                        value:
                                          description: Value of the header to match on if matching on a specific value.
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                            - required:
                                                - exact
                                            - required:
                                                - prefix
                                            - required:
                                                - regex
                                          properties:
                                            exact:
                                              description: Exact string match.
                                              type: string
                                            prefix:
                                              description: Prefix-based match.
                                              type: string
                                            regex:
                                              description: ECMAscript style regex-based match.
                                              type: string
                                          type: object
                                      required:
                                        - name
                                      type: object
                                    remoteAddress:
                                      description: Rate limit on the remote address of client.
                                      properties:
                                        value:
                                          description: Ratelimit on a specific remote address.
                                          type: string
                                      required:
                                        - value
                                      type: object
                                  type: object
                                type: array
                              limit:
                                description: The ratelimit value that will be configured for the above rules.
                                properties:
                                  requestsPerUnit:
                                    description: Specifies the value of the rate limit.
                                    type: integer
                                  unit:
                                    description: Specifies the unit of time for rate limit.
                                    enum:
                                      - UNKNOWN
                                      - SECOND
                                      - MINUTE
                                      - HOUR
                                      - DAY
                                    type: string
                                required:
                                  - requestsPerUnit
                                  - unit
                                type: object
                            required:
                              - dimensions
                              - limit
                            type: object
                          type: array
                        timeout:
                          description: The timeout in seconds for the rate limit server RPC.
                          type: string
                      required:
                        - rules
                      type: object
                  type: object
                reachability:
                  description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                  properties:
                    hosts:
                      description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                      items:
                        type: string
                      type: array
                    mode:
                      description: A short cut for specifying the set of services accessed by the workload.
                      enum:
                        - UNSET
                        - NAMESPACE
                        - GROUP
                        - WORKSPACE
                        - CLUSTER
                        - CUSTOM
                      type: string
                  type: object
                resilience:
                  description: Resilience settings such as timeouts, retries, etc., affecting outbound traffic from proxy workloads.
                  properties:
                    circuitBreakerSensitivity:
                      description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.circuitBreakerSensitivity`.
                      enum:
                        - UNSET
                        - LOW
                        - MEDIUM
                        - HIGH
                      type: string
                    httpRequestTimeout:
                      description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.requestTimeout`.
                      type: string
                    httpRetries:
                      description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.retries`.
                      properties:
                        attempts:
                          description: Number of retries for a given request.
                          format: int32
                          type: integer
                        perTryTimeout:
                          description: Timeout per retry attempt for a given request.
                          type: string
                        retryBackOff:
                          description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                          properties:
                            baseInterval:
                              description: The base interval between retry attempts.
                              type: string
                            maxInterval:
                              description: The maximum interval between retry attempts.
                              type: string
                          required:
                            - baseInterval
                          type: object
                        retryOn:
                          description: Specifies the conditions under which retry takes place.
                          type: string
                      required:
                        - attempts
                      type: object
                    keepAlive:
                      description: Keep Alive Settings.
                      properties:
                        tcp:
                          description: TCP Keep Alive settings associated with the upstream and downstream TCP connections.
                          properties:
                            downstream:
                              description: TCP Keep Alive Settings associated with the downstream (client) connection.
                              properties:
                                idleTime:
                                  description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                  nullable: true
                                  type: integer
                                interval:
                                  description: The number of seconds between keep-alive probes.
                                  nullable: true
                                  type: integer
                                probes:
                                  description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                  nullable: true
                                  type: integer
                              type: object
                            upstream:
                              description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.tcp.keepAlive`.
                              properties:
                                idleTime:
                                  description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                  nullable: true
                                  type: integer
                                interval:
                                  description: The number of seconds between keep-alive probes.
                                  nullable: true
                                  type: integer
                                probes:
                                  description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                  nullable: true
                                  type: integer
                              type: object
                          type: object
                      type: object
                  type: object
                upstreamTrafficSettings:
                  description: List of hosts and the associated traffic settings to be used by the clients that are downstreams to the defined upstream hosts.
                  items:
                    properties:
                      hosts:
                        description: List of hosts for which the settings will be created.
                        items:
                          type: string
                        type: array
                      settings:
                        description: A single setting to be applied to all the clients connecting to the upstream hosts.
                        properties:
                          authentication:
                            description: Configuration for connection authentication parameters.
                            properties:
                              trafficMode:
                                description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                enum:
                                  - UNSET
                                  - OPTIONAL
                                  - REQUIRED
                                type: string
                            type: object
                          loadBalancer:
                            description: Load balancing settings for the clients.
                            oneOf:
                              - not:
                                  anyOf:
                                    - required:
                                        - simple
                                    - required:
                                        - consistentHash
                              - required:
                                  - simple
                              - required:
                                  - consistentHash
                            properties:
                              consistentHash:
                                allOf:
                                  - oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - httpHeaderName
                                            - required:
                                                - httpCookie
                                            - required:
                                                - useSourceIp
                                            - required:
                                                - httpQueryParameterName
                                      - required:
                                          - httpHeaderName
                                      - required:
                                          - httpCookie
                                      - required:
                                          - useSourceIp
                                      - required:
                                          - httpQueryParameterName
                                  - oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - ringHash
                                            - required:
                                                - maglev
                                      - required:
                                          - ringHash
                                      - required:
                                          - maglev
                                description: Use consistent hash load balancing which can provide soft session affinity.
                                properties:
                                  httpCookie:
                                    description: Hash based on HTTP cookie.
                                    properties:
                                      name:
                                        description: Name of the cookie.
                                        type: string
                                      path:
                                        description: Path to set for the cookie.
                                        type: string
                                      ttl:
                                        description: Lifetime of the cookie.
                                        type: string
                                    required:
                                      - name
                                      - ttl
                                    type: object
                                  httpHeaderName:
                                    description: Hash based on a specific HTTP header.
                                    type: string
                                  httpQueryParameterName:
                                    description: Hash based on a specific HTTP query parameter.
                                    type: string
                                  maglev:
                                    description: The Maglev load balancer implements consistent hashing to backend hosts.
                                    properties:
                                      tableSize:
                                        description: The table size for Maglev hashing.
                                        type: integer
                                    required:
                                      - tableSize
                                    type: object
                                  ringHash:
                                    description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                    properties:
                                      minimumRingSize:
                                        description: The minimum number of virtual nodes to use for the hash ring.
                                        type: integer
                                    type: object
                                  useSourceIp:
                                    description: Hash based on the source IP address.
                                    type: boolean
                                type: object
                              simple:
                                description: Use standard load balancing algorithms that require no tuning.
                                enum:
                                  - UNSPECIFIED
                                  - RANDOM
                                  - PASSTHROUGH
                                  - ROUND_ROBIN
                                  - LEAST_REQUEST
                                type: string
                            type: object
                          resilience:
                            description: Resilience settings for the clients.
                            properties:
                              circuitBreakerSensitivity:
                                description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                enum:
                                  - UNSET
                                  - LOW
                                  - MEDIUM
                                  - HIGH
                                  - CUSTOM
                                type: string
                              connectionPool:
                                description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                properties:
                                  http:
                                    properties:
                                      maxRequests:
                                        description: Maximum number of active requests to the service.
                                        type: integer
                                      maxRequestsPerConnection:
                                        description: Maximum number of requests per connection to the service.
                                        type: integer
                                      requestTimeout:
                                        description: Timeout for HTTP requests.
                                        type: string
                                      retries:
                                        description: Retry policy for HTTP requests.
                                        properties:
                                          attempts:
                                            description: Number of retries for a given request.
                                            format: int32
                                            type: integer
                                          perTryTimeout:
                                            description: Timeout per retry attempt for a given request.
                                            type: string
                                          retryBackOff:
                                            description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                            properties:
                                              baseInterval:
                                                description: The base interval between retry attempts.
                                                type: string
                                              maxInterval:
                                                description: The maximum interval between retry attempts.
                                                type: string
                                            required:
                                              - baseInterval
                                            type: object
                                          retryOn:
                                            description: Specifies the conditions under which retry takes place.
                                            type: string
                                        required:
                                          - attempts
                                        type: object
                                    type: object
                                  tcp:
                                    properties:
                                      connectTimeout:
                                        description: TCP connection timeout.
                                        type: string
                                      keepAlive:
                                        description: Keep Alive Settings.
                                        properties:
                                          idleTime:
                                            description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                            nullable: true
                                            type: integer
                                          interval:
                                            description: The number of seconds between keep-alive probes.
                                            nullable: true
                                            type: integer
                                          probes:
                                            description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                            nullable: true
                                            type: integer
                                        type: object
                                      maxConnections:
                                        description: Maximum number of HTTP1 /TCP connections to the service.
                                        type: integer
                                    type: object
                                type: object
                              outlierDetection:
                                description: Outlier detection settings for the upstream host when custom mode is used.
                                properties:
                                  baseEjectionTime:
                                    description: The base time that a host is ejected for.
                                    type: string
                                  consecutive5xx:
                                    description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                    nullable: true
                                    type: integer
                                  consecutiveGatewayFailure:
                                    description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                    nullable: true
                                    type: integer
                                  consecutiveLocalOriginFailure:
                                    nullable: true
                                    type: integer
                                  enforcingConsecutive5xx:
                                    description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                    nullable: true
                                    type: integer
                                  enforcingConsecutiveGatewayFailure:
                                    description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                    nullable: true
                                    type: integer
                                  enforcingConsecutiveLocalOriginFailure:
                                    description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                    nullable: true
                                    type: integer
                                  interval:
                                    description: The time interval between ejection analysis sweeps.
                                    type: string
                                  maxEjectionPercent:
                                    description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                    nullable: true
                                    type: integer
                                  maxEjectionTime:
                                    description: The maximum time that a host is ejected for.
                                    type: string
                                  splitExternalLocalOriginErrors:
                                    description: Determines whether to distinguish local origin failures from external errors.
                                    type: boolean
                                type: object
                            type: object
                        type: object
                    type: object
                  type: array
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: apis.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
      - gateway-tsb-tetrate-io
    kind: API
    listKind: APIList
    plural: apis
    shortNames:
      - toapi
    singular: api
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: An API resource defines an OpenAPI specification that can be used by gateways to validate incoming requests.
              properties:
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                openapi:
                  description: The raw OpenAPI spec for this API.
                  type: string
              required:
                - openapi
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: clusteronboardingconfigs.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: ClusterOnboardingConfig
    listKind: ClusterOnboardingConfigList
    plural: clusteronboardingconfigs
    shortNames:
      - tcocs
    singular: clusteronboardingconfig
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations.tsb\.tetrate\.io/cluster
          name: Cluster
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: Configuration for onboarding a cluster.
              properties:
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the cluster onboarding configuration.
                  type: string
                namespaces:
                  description: Set of namespaces configuration for the cluster.
                  items:
                    properties:
                      desiredState:
                        description: The desired state of the namespace.
                        enum:
                          - DESIRED_UNDEFINED
                          - DESIRED_UNASSIGNED
                          - DESIRED_DISABLED
                          - DESIRED_IGNORED
                          - DESIRED_ONBOARDED
                          - DESIRED_SYSTEM
                        type: string
                      name:
                        description: The name of the namespace.
                        type: string
                    required:
                      - name
                    type: object
                  type: array
              required:
                - namespaces
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: clusters.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: Cluster
    listKind: ClusterList
    plural: clusters
    shortNames:
      - tcs
    singular: cluster
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.state.xcpVersion
          name: XcpVersion
          type: string
        - jsonPath: .spec.state.tsbCpVersion
          name: TsbCpVersion
          type: string
        - jsonPath: .spec.state.provider
          name: Provider
          type: string
        - jsonPath: .spec.tier1Cluster
          name: Tier1
          type: string
        - jsonPath: .spec.locality.region
          name: Region
          type: string
        - jsonPath: .spec.network
          name: Network
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: A Kubernetes cluster managing both pods and VMs.
              properties:
                configGenerationMetadata:
                  description: Default metadata values that can be used for configuring segmentation membership When using YAML APIs like `tctl` or `gitops`, put them into the `metadata.labels` or `metadata.annotations` instead.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                installTemplate:
                  properties:
                    helm:
                      description: valid values.yaml to be used with controlplane helm chart.
                      properties:
                        image:
                          description: Values for the TSB operator image.
                          properties:
                            registry:
                              description: Registry used to download the operator image.
                              type: string
                            tag:
                              description: The tag of the operator image.
                              type: string
                          type: object
                        operator:
                          description: Values for the TSB operator application.
                          properties:
                            controlPlaneMode:
                              enum:
                                - UNSET
                                - CONTROL
                                - OBSERVE
                              type: string
                            deletionProtection:
                              type: string
                            deployment:
                              description: Values for the TSB operator deployment.
                              properties:
                                affinity:
                                  description: Affinity configuration for the pod.
                                  properties:
                                    nodeAffinity:
                                      description: Group of node affinity scheduling rules.
                                      properties:
                                        preferredDuringSchedulingIgnoredDuringExecution:
                                          description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                          items:
                                            properties:
                                              preference:
                                                properties:
                                                  matchExpressions:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    type: array
                                                  matchFields:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    type: array
                                                type: object
                                              weight:
                                                format: int32
                                                type: integer
                                            type: object
                                          type: array
                                        requiredDuringSchedulingIgnoredDuringExecution:
                                          properties:
                                            nodeSelectorTerms:
                                              items:
                                                properties:
                                                  matchExpressions:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    type: array
                                                  matchFields:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    type: array
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    podAffinity:
                                      description: Group of inter-pod affinity scheduling rules.
                                      properties:
                                        preferredDuringSchedulingIgnoredDuringExecution:
                                          items:
                                            properties:
                                              podAffinityTerm:
                                                properties:
                                                  labelSelector:
                                                    properties:
                                                      matchExpressions:
                                                        description: matchExpressions is a list of label selector requirements.
                                                        items:
                                                          properties:
                                                            key:
                                                              description: key is the label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: operator represents a key's relationship to a set of values.
                                                              type: string
                                                            values:
                                                              description: values is an array of string values.
                                                              items:
                                                                type: string
                                                              type: array
                                                          type: object
                                                        type: array
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: matchLabels is a map of {key,value} pairs.
                                                        type: object
                                                    type: object
                                                  namespaces:
                                                    items:
                                                      type: string
                                                    type: array
                                                  topologyKey:
                                                    type: string
                                                type: object
                                              weight:
                                                format: int32
                                                type: integer
                                            type: object
                                          type: array
                                        requiredDuringSchedulingIgnoredDuringExecution:
                                          items:
                                            properties:
                                              labelSelector:
                                                properties:
                                                  matchExpressions:
                                                    description: matchExpressions is a list of label selector requirements.
                                                    items:
                                                      properties:
                                                        key:
                                                          description: key is the label key that the selector applies to.
                                                          type: string
                                                        operator:
                                                          description: operator represents a key's relationship to a set of values.
                                                          type: string
                                                        values:
                                                          description: values is an array of string values.
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    type: array
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: matchLabels is a map of {key,value} pairs.
                                                    type: object
                                                type: object
                                              namespaces:
                                                items:
                                                  type: string
                                                type: array
                                              topologyKey:
                                                type: string
                                            type: object
                                          type: array
                                      type: object
                                    podAntiAffinity:
                                      description: Group of inter-pod anti-affinity scheduling rules.
                                      properties:
                                        preferredDuringSchedulingIgnoredDuringExecution:
                                          items:
                                            properties:
                                              podAffinityTerm:
                                                properties:
                                                  labelSelector:
                                                    properties:
                                                      matchExpressions:
                                                        description: matchExpressions is a list of label selector requirements.
                                                        items:
                                                          properties:
                                                            key:
                                                              description: key is the label key that the selector applies to.
                                                              type: string
                                                            operator:
                                                              description: operator represents a key's relationship to a set of values.
                                                              type: string
                                                            values:
                                                              description: values is an array of string values.
                                                              items:
                                                                type: string
                                                              type: array
                                                          type: object
                                                        type: array
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: matchLabels is a map of {key,value} pairs.
                                                        type: object
                                                    type: object
                                                  namespaces:
                                                    items:
                                                      type: string
                                                    type: array
                                                  topologyKey:
                                                    type: string
                                                type: object
                                              weight:
                                                format: int32
                                                type: integer
                                            type: object
                                          type: array
                                        requiredDuringSchedulingIgnoredDuringExecution:
                                          items:
                                            properties:
                                              labelSelector:
                                                properties:
                                                  matchExpressions:
                                                    description: matchExpressions is a list of label selector requirements.
                                                    items:
                                                      properties:
                                                        key:
                                                          description: key is the label key that the selector applies to.
                                                          type: string
                                                        operator:
                                                          description: operator represents a key's relationship to a set of values.
                                                          type: string
                                                        values:
                                                          description: values is an array of string values.
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    type: array
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: matchLabels is a map of {key,value} pairs.
                                                    type: object
                                                type: object
                                              namespaces:
                                                items:
                                                  type: string
                                                type: array
                                              topologyKey:
                                                type: string
                                            type: object
                                          type: array
                                      type: object
                                  type: object
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: Custom collection of annotations to add to the deployment.
                                  type: object
                                env:
                                  description: Custom collection of environment vars to add to the container.
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                      valueFrom:
                                        properties:
                                          configMapKeyRef:
                                            properties:
                                              key:
                                                type: string
                                              localObjectReference:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              optional:
                                                type: boolean
                                            type: object
                                          fieldRef:
                                            properties:
                                              apiVersion:
                                                type: string
                                              fieldPath:
                                                type: string
                                            type: object
                                          resourceFieldRef:
                                            properties:
                                              containerName:
                                                type: string
                                              divisor:
                                                properties:
                                                  intVal:
                                                    nullable: true
                                                    type: integer
                                                  strVal:
                                                    nullable: true
                                                    type: string
                                                  type:
                                                    type: integer
                                                type: object
                                              resource:
                                                type: string
                                            type: object
                                          secretKeyRef:
                                            properties:
                                              key:
                                                type: string
                                              localObjectReference:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              optional:
                                                type: boolean
                                            type: object
                                        type: object
                                    type: object
                                  type: array
                                podAnnotations:
                                  additionalProperties:
                                    type: string
                                  description: Custom collection of annotations to add to the pod.
                                  type: object
                                replicaCount:
                                  description: Number of replicas managed by the deployment.
                                  format: int32
                                  type: integer
                                strategy:
                                  description: Deployment strategy to use.
                                  properties:
                                    rollingUpdate:
                                      properties:
                                        maxSurge:
                                          properties:
                                            intVal:
                                              nullable: true
                                              type: integer
                                            strVal:
                                              nullable: true
                                              type: string
                                            type:
                                              type: integer
                                          type: object
                                        maxUnavailable:
                                          properties:
                                            intVal:
                                              nullable: true
                                              type: integer
                                            strVal:
                                              nullable: true
                                              type: string
                                            type:
                                              type: integer
                                          type: object
                                      type: object
                                    type:
                                      type: string
                                  type: object
                                tolerations:
                                  description: Toleration collection applying to the pod scheduling.
                                  items:
                                    properties:
                                      effect:
                                        description: Effect indicates the taint effect to match.
                                        type: string
                                      key:
                                        description: Key is the taint key that the toleration applies to.
                                        type: string
                                      operator:
                                        description: Operator represents a key's relationship to the value.
                                        type: string
                                      tolerationSeconds:
                                        description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                        type: integer
                                      value:
                                        description: Value is the taint value the toleration matches to.
                                        type: string
                                    type: object
                                  type: array
                              type: object
                            service:
                              description: Values for the TSB operator service.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: Custom collection of annotations to add to the service.
                                  type: object
                              type: object
                            serviceAccount:
                              description: Values for the TSB operator service account.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: Custom collection of annotations to add to the service account.
                                  type: object
                                imagePullSecrets:
                                  description: Collection of secrets names required to be able to pull images from the registry.
                                  items:
                                    type: string
                                  type: array
                                pullPassword:
                                  description: Used along pull username and the provided image registry to generate a Docker config JSON that will be stored as a pull secret.
                                  type: string
                                pullSecret:
                                  description: A Docker config JSON to be stored in a secret to be used as an image pull secret.
                                  type: string
                                pullUsername:
                                  description: Used along pull password and the provided image registry to generate a Docker config JSON that will be stored as a pull secret.
                                  type: string
                              type: object
                          type: object
                        secrets:
                          description: Values for the Control Plane secrets.
                          properties:
                            clusterServiceAccount:
                              description: Cluster service account used to authenticate to the Management Plane.
                              properties:
                                JWK:
                                  description: Literal JWK used to generate and sign the tokens for all the Control Plane agents.
                                  type: string
                                clusterFQN:
                                  description: TSB FQN of the onboarded cluster resource.
                                  type: string
                                encodedJWK:
                                  description: Base64-encoded JWK used to generate and sign the tokens for all the Control Plane agents.
                                  type: string
                              type: object
                            elasticsearch:
                              description: Secrets to reach the Elasticsearch.
                              properties:
                                cacert:
                                  description: Elasticsearch CA cert TLS used by control plane to verify TLS connection.
                                  type: string
                                password:
                                  description: The password to access Elasticsearch.
                                  type: string
                                username:
                                  description: The username to access Elasticsearch.
                                  type: string
                              type: object
                            tsb:
                              description: Secrets to reach the TSB Management Plane.
                              properties:
                                cacert:
                                  description: CA certificate used to verify TLS certs exposed the Management Plane (front envoy).
                                  type: string
                              type: object
                            xcp:
                              description: Secrets to reach the XCP Central in the Management Plane.
                              properties:
                                autoGenerateCerts:
                                  description: Enabling this will auto generate XCP Edge certificate if mTLS is enabled to authenticate to XCP Central.
                                  type: boolean
                                edge:
                                  description: Secrets for the XCP Edge component.
                                  properties:
                                    cert:
                                      description: Edge certificate used for mTLS with XCP Central.
                                      type: string
                                    key:
                                      description: Key of the Edge certificate used for mTLS with XCP Central.
                                      type: string
                                    token:
                                      description: JWT token used to authenticate XCP Edge against the XCP Central.
                                      type: string
                                  type: object
                                rootca:
                                  description: CA certificate of XCP components.
                                  type: string
                                rootcakey:
                                  description: Key of the CA certificate of XCP components.
                                  type: string
                              type: object
                          type: object
                        spec:
                          description: Values for the Control Plane CR spec.
                          properties:
                            components:
                              description: The set of components that make up the control plane.
                              properties:
                                awsController:
                                  properties:
                                    kubeSpec:
                                      description: Configure Kubernetes specific settings.
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                  type: object
                                collector:
                                  properties:
                                    kubeSpec:
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    logLevel:
                                      description: Specifies the log level for OTEL collector component.
                                      type: string
                                  type: object
                                defaultKubeSpec:
                                  description: Configure Kubernetes default settings for all components.
                                  properties:
                                    account:
                                      properties:
                                        imagePullSecrets:
                                          description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                          items:
                                            properties:
                                              name:
                                                description: Name of the referent.
                                                type: string
                                            type: object
                                          type: array
                                      type: object
                                    deployment:
                                      allOf:
                                        - oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - podSecurityContext
                                            - required:
                                                - podSecurityContext
                                        - oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - containerSecurityContext
                                            - required:
                                                - containerSecurityContext
                                      properties:
                                        affinity:
                                          description: The scheduling constraints for the pod.
                                          properties:
                                            nodeAffinity:
                                              description: Group of node affinity scheduling rules.
                                              properties:
                                                preferredDuringSchedulingIgnoredDuringExecution:
                                                  description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                  items:
                                                    properties:
                                                      preference:
                                                        properties:
                                                          matchExpressions:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                operator:
                                                                  type: string
                                                                values:
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          matchFields:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                operator:
                                                                  type: string
                                                                values:
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                        type: object
                                                      weight:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  type: array
                                                requiredDuringSchedulingIgnoredDuringExecution:
                                                  properties:
                                                    nodeSelectorTerms:
                                                      items:
                                                        properties:
                                                          matchExpressions:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                operator:
                                                                  type: string
                                                                values:
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          matchFields:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                operator:
                                                                  type: string
                                                                values:
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            podAffinity:
                                              description: Group of inter-pod affinity scheduling rules.
                                              properties:
                                                preferredDuringSchedulingIgnoredDuringExecution:
                                                  items:
                                                    properties:
                                                      podAffinityTerm:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      weight:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  type: array
                                                requiredDuringSchedulingIgnoredDuringExecution:
                                                  items:
                                                    properties:
                                                      labelSelector:
                                                        properties:
                                                          matchExpressions:
                                                            description: matchExpressions is a list of label selector requirements.
                                                            items:
                                                              properties:
                                                                key:
                                                                  description: key is the label key that the selector applies to.
                                                                  type: string
                                                                operator:
                                                                  description: operator represents a key's relationship to a set of values.
                                                                  type: string
                                                                values:
                                                                  description: values is an array of string values.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: matchLabels is a map of {key,value} pairs.
                                                            type: object
                                                        type: object
                                                      namespaces:
                                                        items:
                                                          type: string
                                                        type: array
                                                      topologyKey:
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                            podAntiAffinity:
                                              description: Group of inter-pod anti-affinity scheduling rules.
                                              properties:
                                                preferredDuringSchedulingIgnoredDuringExecution:
                                                  items:
                                                    properties:
                                                      podAffinityTerm:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      weight:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  type: array
                                                requiredDuringSchedulingIgnoredDuringExecution:
                                                  items:
                                                    properties:
                                                      labelSelector:
                                                        properties:
                                                          matchExpressions:
                                                            description: matchExpressions is a list of label selector requirements.
                                                            items:
                                                              properties:
                                                                key:
                                                                  description: key is the label key that the selector applies to.
                                                                  type: string
                                                                operator:
                                                                  description: operator represents a key's relationship to a set of values.
                                                                  type: string
                                                                values:
                                                                  description: values is an array of string values.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: matchLabels is a map of {key,value} pairs.
                                                            type: object
                                                        type: object
                                                      namespaces:
                                                        items:
                                                          type: string
                                                        type: array
                                                      topologyKey:
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                          type: object
                                        containerSecurityContext:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - capabilities
                                                - required:
                                                    - capabilities
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - privileged
                                                - required:
                                                    - privileged
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - seLinuxOptions
                                                - required:
                                                    - seLinuxOptions
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - windowsOptions
                                                - required:
                                                    - windowsOptions
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsUser
                                                - required:
                                                    - runAsUser
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsGroup
                                                - required:
                                                    - runAsGroup
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsNonRoot
                                                - required:
                                                    - runAsNonRoot
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - readOnlyRootFilesystem
                                                - required:
                                                    - readOnlyRootFilesystem
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - allowPrivilegeEscalation
                                                - required:
                                                    - allowPrivilegeEscalation
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - procMount
                                                - required:
                                                    - procMount
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - seccompProfile
                                                - required:
                                                    - seccompProfile
                                          properties:
                                            allowPrivilegeEscalation:
                                              type: boolean
                                            capabilities:
                                              properties:
                                                add:
                                                  items:
                                                    type: string
                                                  type: array
                                                drop:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            privileged:
                                              type: boolean
                                            procMount:
                                              type: string
                                            readOnlyRootFilesystem:
                                              type: boolean
                                            runAsGroup:
                                              type: integer
                                            runAsNonRoot:
                                              type: boolean
                                            runAsUser:
                                              type: integer
                                            seLinuxOptions:
                                              properties:
                                                level:
                                                  type: string
                                                role:
                                                  type: string
                                                type:
                                                  type: string
                                                user:
                                                  type: string
                                              type: object
                                            seccompProfile:
                                              properties:
                                                localhostProfile:
                                                  type: string
                                                type:
                                                  type: string
                                              type: object
                                            windowsOptions:
                                              properties:
                                                gmsaCredentialSpec:
                                                  type: string
                                                gmsaCredentialSpecName:
                                                  type: string
                                                runAsUserName:
                                                  type: string
                                              type: object
                                          type: object
                                        env:
                                          description: Environment variables for all containers in the deployment.
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                              valueFrom:
                                                properties:
                                                  configMapKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      localObjectReference:
                                                        properties:
                                                          name:
                                                            description: Name of the referent.
                                                            type: string
                                                        type: object
                                                      optional:
                                                        type: boolean
                                                    type: object
                                                  fieldRef:
                                                    properties:
                                                      apiVersion:
                                                        type: string
                                                      fieldPath:
                                                        type: string
                                                    type: object
                                                  resourceFieldRef:
                                                    properties:
                                                      containerName:
                                                        type: string
                                                      divisor:
                                                        properties:
                                                          intVal:
                                                            nullable: true
                                                            type: integer
                                                          strVal:
                                                            nullable: true
                                                            type: string
                                                          type:
                                                            type: integer
                                                        type: object
                                                      resource:
                                                        type: string
                                                    type: object
                                                  secretKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      localObjectReference:
                                                        properties:
                                                          name:
                                                            description: Name of the referent.
                                                            type: string
                                                        type: object
                                                      optional:
                                                        type: boolean
                                                    type: object
                                                type: object
                                            type: object
                                          type: array
                                        podAnnotations:
                                          additionalProperties:
                                            type: string
                                          description: Pod annotations are an unstructured key value map stored with the pod.
                                          type: object
                                        podSecurityContext:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - seLinuxOptions
                                                - required:
                                                    - seLinuxOptions
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsUser
                                                - required:
                                                    - runAsUser
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsNonRoot
                                                - required:
                                                    - runAsNonRoot
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - fsGroup
                                                - required:
                                                    - fsGroup
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsGroup
                                                - required:
                                                    - runAsGroup
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - windowsOptions
                                                - required:
                                                    - windowsOptions
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - fsGroupChangePolicy
                                                - required:
                                                    - fsGroupChangePolicy
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - seccompProfile
                                                - required:
                                                    - seccompProfile
                                          properties:
                                            fsGroup:
                                              type: integer
                                            fsGroupChangePolicy:
                                              type: string
                                            runAsGroup:
                                              type: integer
                                            runAsNonRoot:
                                              type: boolean
                                            runAsUser:
                                              type: integer
                                            seLinuxOptions:
                                              properties:
                                                level:
                                                  type: string
                                                role:
                                                  type: string
                                                type:
                                                  type: string
                                                user:
                                                  type: string
                                              type: object
                                            seccompProfile:
                                              properties:
                                                localhostProfile:
                                                  type: string
                                                type:
                                                  type: string
                                              type: object
                                            supplementalGroups:
                                              items:
                                                type: integer
                                              type: array
                                            sysctls:
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                type: object
                                              type: array
                                            windowsOptions:
                                              properties:
                                                gmsaCredentialSpec:
                                                  type: string
                                                gmsaCredentialSpecName:
                                                  type: string
                                                runAsUserName:
                                                  type: string
                                              type: object
                                          type: object
                                        strategy:
                                          description: The deployment strategy to use to replace existing pods with new ones.
                                          properties:
                                            rollingUpdate:
                                              properties:
                                                maxSurge:
                                                  properties:
                                                    intVal:
                                                      nullable: true
                                                      type: integer
                                                    strVal:
                                                      nullable: true
                                                      type: string
                                                    type:
                                                      type: integer
                                                  type: object
                                                maxUnavailable:
                                                  properties:
                                                    intVal:
                                                      nullable: true
                                                      type: integer
                                                    strVal:
                                                      nullable: true
                                                      type: string
                                                    type:
                                                      type: integer
                                                  type: object
                                              type: object
                                            type:
                                              type: string
                                          type: object
                                        tolerations:
                                          description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                          items:
                                            properties:
                                              effect:
                                                description: Effect indicates the taint effect to match.
                                                type: string
                                              key:
                                                description: Key is the taint key that the toleration applies to.
                                                type: string
                                              operator:
                                                description: Operator represents a key's relationship to the value.
                                                type: string
                                              tolerationSeconds:
                                                description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                type: integer
                                              value:
                                                description: Value is the taint value the toleration matches to.
                                                type: string
                                            type: object
                                          type: array
                                      type: object
                                    job:
                                      allOf:
                                        - oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - podSecurityContext
                                            - required:
                                                - podSecurityContext
                                        - oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - containerSecurityContext
                                            - required:
                                                - containerSecurityContext
                                      properties:
                                        affinity:
                                          description: The scheduling constraints for the pod.
                                          properties:
                                            nodeAffinity:
                                              description: Group of node affinity scheduling rules.
                                              properties:
                                                preferredDuringSchedulingIgnoredDuringExecution:
                                                  description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                  items:
                                                    properties:
                                                      preference:
                                                        properties:
                                                          matchExpressions:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                operator:
                                                                  type: string
                                                                values:
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          matchFields:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                operator:
                                                                  type: string
                                                                values:
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                        type: object
                                                      weight:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  type: array
                                                requiredDuringSchedulingIgnoredDuringExecution:
                                                  properties:
                                                    nodeSelectorTerms:
                                                      items:
                                                        properties:
                                                          matchExpressions:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                operator:
                                                                  type: string
                                                                values:
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          matchFields:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                operator:
                                                                  type: string
                                                                values:
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            podAffinity:
                                              description: Group of inter-pod affinity scheduling rules.
                                              properties:
                                                preferredDuringSchedulingIgnoredDuringExecution:
                                                  items:
                                                    properties:
                                                      podAffinityTerm:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      weight:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  type: array
                                                requiredDuringSchedulingIgnoredDuringExecution:
                                                  items:
                                                    properties:
                                                      labelSelector:
                                                        properties:
                                                          matchExpressions:
                                                            description: matchExpressions is a list of label selector requirements.
                                                            items:
                                                              properties:
                                                                key:
                                                                  description: key is the label key that the selector applies to.
                                                                  type: string
                                                                operator:
                                                                  description: operator represents a key's relationship to a set of values.
                                                                  type: string
                                                                values:
                                                                  description: values is an array of string values.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: matchLabels is a map of {key,value} pairs.
                                                            type: object
                                                        type: object
                                                      namespaces:
                                                        items:
                                                          type: string
                                                        type: array
                                                      topologyKey:
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                            podAntiAffinity:
                                              description: Group of inter-pod anti-affinity scheduling rules.
                                              properties:
                                                preferredDuringSchedulingIgnoredDuringExecution:
                                                  items:
                                                    properties:
                                                      podAffinityTerm:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      weight:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  type: array
                                                requiredDuringSchedulingIgnoredDuringExecution:
                                                  items:
                                                    properties:
                                                      labelSelector:
                                                        properties:
                                                          matchExpressions:
                                                            description: matchExpressions is a list of label selector requirements.
                                                            items:
                                                              properties:
                                                                key:
                                                                  description: key is the label key that the selector applies to.
                                                                  type: string
                                                                operator:
                                                                  description: operator represents a key's relationship to a set of values.
                                                                  type: string
                                                                values:
                                                                  description: values is an array of string values.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: matchLabels is a map of {key,value} pairs.
                                                            type: object
                                                        type: object
                                                      namespaces:
                                                        items:
                                                          type: string
                                                        type: array
                                                      topologyKey:
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                          type: object
                                        containerSecurityContext:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - capabilities
                                                - required:
                                                    - capabilities
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - privileged
                                                - required:
                                                    - privileged
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - seLinuxOptions
                                                - required:
                                                    - seLinuxOptions
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - windowsOptions
                                                - required:
                                                    - windowsOptions
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsUser
                                                - required:
                                                    - runAsUser
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsGroup
                                                - required:
                                                    - runAsGroup
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsNonRoot
                                                - required:
                                                    - runAsNonRoot
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - readOnlyRootFilesystem
                                                - required:
                                                    - readOnlyRootFilesystem
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - allowPrivilegeEscalation
                                                - required:
                                                    - allowPrivilegeEscalation
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - procMount
                                                - required:
                                                    - procMount
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - seccompProfile
                                                - required:
                                                    - seccompProfile
                                          properties:
                                            allowPrivilegeEscalation:
                                              type: boolean
                                            capabilities:
                                              properties:
                                                add:
                                                  items:
                                                    type: string
                                                  type: array
                                                drop:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            privileged:
                                              type: boolean
                                            procMount:
                                              type: string
                                            readOnlyRootFilesystem:
                                              type: boolean
                                            runAsGroup:
                                              type: integer
                                            runAsNonRoot:
                                              type: boolean
                                            runAsUser:
                                              type: integer
                                            seLinuxOptions:
                                              properties:
                                                level:
                                                  type: string
                                                role:
                                                  type: string
                                                type:
                                                  type: string
                                                user:
                                                  type: string
                                              type: object
                                            seccompProfile:
                                              properties:
                                                localhostProfile:
                                                  type: string
                                                type:
                                                  type: string
                                              type: object
                                            windowsOptions:
                                              properties:
                                                gmsaCredentialSpec:
                                                  type: string
                                                gmsaCredentialSpecName:
                                                  type: string
                                                runAsUserName:
                                                  type: string
                                              type: object
                                          type: object
                                        podAnnotations:
                                          additionalProperties:
                                            type: string
                                          description: Pod annotations are an unstructured key value map stored with the pod.
                                          type: object
                                        podSecurityContext:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - seLinuxOptions
                                                - required:
                                                    - seLinuxOptions
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsUser
                                                - required:
                                                    - runAsUser
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsNonRoot
                                                - required:
                                                    - runAsNonRoot
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - fsGroup
                                                - required:
                                                    - fsGroup
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - runAsGroup
                                                - required:
                                                    - runAsGroup
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - windowsOptions
                                                - required:
                                                    - windowsOptions
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - fsGroupChangePolicy
                                                - required:
                                                    - fsGroupChangePolicy
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - seccompProfile
                                                - required:
                                                    - seccompProfile
                                          properties:
                                            fsGroup:
                                              type: integer
                                            fsGroupChangePolicy:
                                              type: string
                                            runAsGroup:
                                              type: integer
                                            runAsNonRoot:
                                              type: boolean
                                            runAsUser:
                                              type: integer
                                            seLinuxOptions:
                                              properties:
                                                level:
                                                  type: string
                                                role:
                                                  type: string
                                                type:
                                                  type: string
                                                user:
                                                  type: string
                                              type: object
                                            seccompProfile:
                                              properties:
                                                localhostProfile:
                                                  type: string
                                                type:
                                                  type: string
                                              type: object
                                            supplementalGroups:
                                              items:
                                                type: integer
                                              type: array
                                            sysctls:
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                type: object
                                              type: array
                                            windowsOptions:
                                              properties:
                                                gmsaCredentialSpec:
                                                  type: string
                                                gmsaCredentialSpecName:
                                                  type: string
                                                runAsUserName:
                                                  type: string
                                              type: object
                                          type: object
                                        tolerations:
                                          description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                          items:
                                            properties:
                                              effect:
                                                description: Effect indicates the taint effect to match.
                                                type: string
                                              key:
                                                description: Key is the taint key that the toleration applies to.
                                                type: string
                                              operator:
                                                description: Operator represents a key's relationship to the value.
                                                type: string
                                              tolerationSeconds:
                                                description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                type: integer
                                              value:
                                                description: Value is the taint value the toleration matches to.
                                                type: string
                                            type: object
                                          type: array
                                      type: object
                                    service:
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          description: Pod annotations are an unstructured key value map stored with the service.
                                          type: object
                                      type: object
                                  type: object
                                defaultLogLevel:
                                  description: The default log level for all components if the per component log level config is not specified.
                                  type: string
                                gitops:
                                  description: Configuration for the integration of the Control Plane with Continuous Deployment pipelines.
                                  properties:
                                    batchWindow:
                                      description: When configured, all admission requests will be paused for the configured duration.
                                      type: string
                                    enabled:
                                      description: The GitOps component is in beta and disabled by default.
                                      type: boolean
                                    managementplaneRequestTimeout:
                                      description: The GitOps component performs operations against the management plane through the k8s webhook.
                                      type: string
                                    pushMode:
                                      description: Push mode determines how the GitOps component creates resources in the Management Plane.
                                      enum:
                                        - SYNC
                                        - ASYNC
                                      type: string
                                    reconcileInterval:
                                      description: Periodical interval at which the objects will be reconciled after they are successfully synchronized (created, updated, deleted) with the Management Plane.
                                      type: string
                                    reconcileRequestTimeout:
                                      description: The GitOps component performs operations against the management plane internal reconcile loop.
                                      type: string
                                    webhookTimeout:
                                      description: Timeout that will be set in the k8s gitops webhook resource.
                                      type: string
                                  type: object
                                hpaAdapter:
                                  properties:
                                    enabled:
                                      description: Enable the OAP (SkyWalking) HPA adapter component that allows pods to be scaled based on Skywalking metrics.
                                      type: boolean
                                    kubeSpec:
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                  type: object
                                internalCertProvider:
                                  description: Configure the Kubernetes CSR certificate provider for TSB internal purposes like Webhook TLS certificates.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - certManager
                                          - required:
                                              - custom
                                          - required:
                                              - tsbManaged
                                    - required:
                                        - certManager
                                    - required:
                                        - custom
                                    - required:
                                        - tsbManaged
                                  properties:
                                    certManager:
                                      properties:
                                        certManagerCaInjector:
                                          description: Configure kubernetes specific settings for cert-manager-cainjector.
                                          properties:
                                            kubeSpec:
                                              description: Configure kubernetes specific settings for cert-manager-cainjector.
                                              properties:
                                                deployment:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - podSecurityContext
                                                        - required:
                                                            - podSecurityContext
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - containerSecurityContext
                                                        - required:
                                                            - containerSecurityContext
                                                  properties:
                                                    affinity:
                                                      description: The scheduling constraints for the pod.
                                                      properties:
                                                        nodeAffinity:
                                                          description: Group of node affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                              items:
                                                                properties:
                                                                  preference:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              properties:
                                                                nodeSelectorTerms:
                                                                  items:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  type: array
                                                              type: object
                                                          type: object
                                                        podAffinity:
                                                          description: Group of inter-pod affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        podAntiAffinity:
                                                          description: Group of inter-pod anti-affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    containerSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - capabilities
                                                            - required:
                                                                - capabilities
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - privileged
                                                            - required:
                                                                - privileged
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - readOnlyRootFilesystem
                                                            - required:
                                                                - readOnlyRootFilesystem
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - allowPrivilegeEscalation
                                                            - required:
                                                                - allowPrivilegeEscalation
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - procMount
                                                            - required:
                                                                - procMount
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        allowPrivilegeEscalation:
                                                          type: boolean
                                                        capabilities:
                                                          properties:
                                                            add:
                                                              items:
                                                                type: string
                                                              type: array
                                                            drop:
                                                              items:
                                                                type: string
                                                              type: array
                                                          type: object
                                                        privileged:
                                                          type: boolean
                                                        procMount:
                                                          type: string
                                                        readOnlyRootFilesystem:
                                                          type: boolean
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    env:
                                                      description: Environment variables for all containers in the deployment.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                          valueFrom:
                                                            properties:
                                                              configMapKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                              fieldRef:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  fieldPath:
                                                                    type: string
                                                                type: object
                                                              resourceFieldRef:
                                                                properties:
                                                                  containerName:
                                                                    type: string
                                                                  divisor:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  resource:
                                                                    type: string
                                                                type: object
                                                              secretKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                            type: object
                                                        type: object
                                                      type: array
                                                    hpaSpec:
                                                      description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                      properties:
                                                        maxReplicas:
                                                          format: int32
                                                          type: integer
                                                        metrics:
                                                          items:
                                                            properties:
                                                              external:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  metricSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              object:
                                                                properties:
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  target:
                                                                    properties:
                                                                      apiVersion:
                                                                        type: string
                                                                      kind:
                                                                        type: string
                                                                      name:
                                                                        type: string
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              pods:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              resource:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  target:
                                                                    properties:
                                                                      averageUtilization:
                                                                        format: int32
                                                                        type: integer
                                                                      averageValue:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                      value:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                    type: object
                                                                  targetAverageUtilization:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              type:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        minReplicas:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key-value map stored with the Deployment.
                                                      type: object
                                                    podAnnotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                      type: object
                                                    podSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroup
                                                            - required:
                                                                - fsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroupChangePolicy
                                                            - required:
                                                                - fsGroupChangePolicy
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        fsGroup:
                                                          type: integer
                                                        fsGroupChangePolicy:
                                                          type: string
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        supplementalGroups:
                                                          items:
                                                            type: integer
                                                          type: array
                                                        sysctls:
                                                          items:
                                                            properties:
                                                              name:
                                                                type: string
                                                              value:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    replicaCount:
                                                      description: Number of desired pods.
                                                      type: integer
                                                    resources:
                                                      description: Compute Resources required by the primary container in the deployment PodSpec.
                                                      properties:
                                                        limits:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                        requests:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    strategy:
                                                      description: The deployment strategy to use to replace existing pods with new ones.
                                                      properties:
                                                        rollingUpdate:
                                                          properties:
                                                            maxSurge:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                            maxUnavailable:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                          type: object
                                                        type:
                                                          type: string
                                                      type: object
                                                    tolerations:
                                                      description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                      items:
                                                        properties:
                                                          effect:
                                                            description: Effect indicates the taint effect to match.
                                                            type: string
                                                          key:
                                                            description: Key is the taint key that the toleration applies to.
                                                            type: string
                                                          operator:
                                                            description: Operator represents a key's relationship to the value.
                                                            type: string
                                                          tolerationSeconds:
                                                            description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                            type: integer
                                                          value:
                                                            description: Value is the taint value the toleration matches to.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                overlays:
                                                  items:
                                                    properties:
                                                      apiVersion:
                                                        description: Resource API version.
                                                        type: string
                                                      kind:
                                                        description: Resource kind.
                                                        type: string
                                                      name:
                                                        description: Name of resource.
                                                        type: string
                                                      patches:
                                                        description: List of patches to apply to resource.
                                                        items:
                                                          properties:
                                                            path:
                                                              description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                              type: string
                                                            value:
                                                              description: Value to add, delete or replace.
                                                              x-kubernetes-preserve-unknown-fields: true
                                                          type: object
                                                        type: array
                                                    type: object
                                                  type: array
                                                service:
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key value map stored with the service.
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key value map stored with the deployment.
                                                      type: object
                                                    ports:
                                                      description: List of ports exposed by the component's service.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          nodePort:
                                                            format: int32
                                                            type: integer
                                                          port:
                                                            format: int32
                                                            type: integer
                                                          protocol:
                                                            type: string
                                                          targetPort:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type: array
                                                    type:
                                                      description: Determines how the Service is exposed.
                                                      type: string
                                                  type: object
                                                serviceAccount:
                                                  properties:
                                                    imagePullSecrets:
                                                      description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                      items:
                                                        properties:
                                                          name:
                                                            description: Name of the referent.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                          type: object
                                        certManagerSpec:
                                          description: Configure kubernetes specific settings for cert-manager.
                                          properties:
                                            kubeSpec:
                                              description: Configure kubernetes specific settings for cert-manager.
                                              properties:
                                                deployment:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - podSecurityContext
                                                        - required:
                                                            - podSecurityContext
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - containerSecurityContext
                                                        - required:
                                                            - containerSecurityContext
                                                  properties:
                                                    affinity:
                                                      description: The scheduling constraints for the pod.
                                                      properties:
                                                        nodeAffinity:
                                                          description: Group of node affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                              items:
                                                                properties:
                                                                  preference:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              properties:
                                                                nodeSelectorTerms:
                                                                  items:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  type: array
                                                              type: object
                                                          type: object
                                                        podAffinity:
                                                          description: Group of inter-pod affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        podAntiAffinity:
                                                          description: Group of inter-pod anti-affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    containerSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - capabilities
                                                            - required:
                                                                - capabilities
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - privileged
                                                            - required:
                                                                - privileged
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - readOnlyRootFilesystem
                                                            - required:
                                                                - readOnlyRootFilesystem
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - allowPrivilegeEscalation
                                                            - required:
                                                                - allowPrivilegeEscalation
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - procMount
                                                            - required:
                                                                - procMount
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        allowPrivilegeEscalation:
                                                          type: boolean
                                                        capabilities:
                                                          properties:
                                                            add:
                                                              items:
                                                                type: string
                                                              type: array
                                                            drop:
                                                              items:
                                                                type: string
                                                              type: array
                                                          type: object
                                                        privileged:
                                                          type: boolean
                                                        procMount:
                                                          type: string
                                                        readOnlyRootFilesystem:
                                                          type: boolean
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    env:
                                                      description: Environment variables for all containers in the deployment.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                          valueFrom:
                                                            properties:
                                                              configMapKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                              fieldRef:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  fieldPath:
                                                                    type: string
                                                                type: object
                                                              resourceFieldRef:
                                                                properties:
                                                                  containerName:
                                                                    type: string
                                                                  divisor:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  resource:
                                                                    type: string
                                                                type: object
                                                              secretKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                            type: object
                                                        type: object
                                                      type: array
                                                    hpaSpec:
                                                      description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                      properties:
                                                        maxReplicas:
                                                          format: int32
                                                          type: integer
                                                        metrics:
                                                          items:
                                                            properties:
                                                              external:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  metricSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              object:
                                                                properties:
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  target:
                                                                    properties:
                                                                      apiVersion:
                                                                        type: string
                                                                      kind:
                                                                        type: string
                                                                      name:
                                                                        type: string
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              pods:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              resource:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  target:
                                                                    properties:
                                                                      averageUtilization:
                                                                        format: int32
                                                                        type: integer
                                                                      averageValue:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                      value:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                    type: object
                                                                  targetAverageUtilization:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              type:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        minReplicas:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key-value map stored with the Deployment.
                                                      type: object
                                                    podAnnotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                      type: object
                                                    podSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroup
                                                            - required:
                                                                - fsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroupChangePolicy
                                                            - required:
                                                                - fsGroupChangePolicy
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        fsGroup:
                                                          type: integer
                                                        fsGroupChangePolicy:
                                                          type: string
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        supplementalGroups:
                                                          items:
                                                            type: integer
                                                          type: array
                                                        sysctls:
                                                          items:
                                                            properties:
                                                              name:
                                                                type: string
                                                              value:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    replicaCount:
                                                      description: Number of desired pods.
                                                      type: integer
                                                    resources:
                                                      description: Compute Resources required by the primary container in the deployment PodSpec.
                                                      properties:
                                                        limits:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                        requests:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    strategy:
                                                      description: The deployment strategy to use to replace existing pods with new ones.
                                                      properties:
                                                        rollingUpdate:
                                                          properties:
                                                            maxSurge:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                            maxUnavailable:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                          type: object
                                                        type:
                                                          type: string
                                                      type: object
                                                    tolerations:
                                                      description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                      items:
                                                        properties:
                                                          effect:
                                                            description: Effect indicates the taint effect to match.
                                                            type: string
                                                          key:
                                                            description: Key is the taint key that the toleration applies to.
                                                            type: string
                                                          operator:
                                                            description: Operator represents a key's relationship to the value.
                                                            type: string
                                                          tolerationSeconds:
                                                            description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                            type: integer
                                                          value:
                                                            description: Value is the taint value the toleration matches to.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                overlays:
                                                  items:
                                                    properties:
                                                      apiVersion:
                                                        description: Resource API version.
                                                        type: string
                                                      kind:
                                                        description: Resource kind.
                                                        type: string
                                                      name:
                                                        description: Name of resource.
                                                        type: string
                                                      patches:
                                                        description: List of patches to apply to resource.
                                                        items:
                                                          properties:
                                                            path:
                                                              description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                              type: string
                                                            value:
                                                              description: Value to add, delete or replace.
                                                              x-kubernetes-preserve-unknown-fields: true
                                                          type: object
                                                        type: array
                                                    type: object
                                                  type: array
                                                service:
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key value map stored with the service.
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key value map stored with the deployment.
                                                      type: object
                                                    ports:
                                                      description: List of ports exposed by the component's service.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          nodePort:
                                                            format: int32
                                                            type: integer
                                                          port:
                                                            format: int32
                                                            type: integer
                                                          protocol:
                                                            type: string
                                                          targetPort:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type: array
                                                    type:
                                                      description: Determines how the Service is exposed.
                                                      type: string
                                                  type: object
                                                serviceAccount:
                                                  properties:
                                                    imagePullSecrets:
                                                      description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                      items:
                                                        properties:
                                                          name:
                                                            description: Name of the referent.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                          type: object
                                        certManagerStartupapicheck:
                                          description: Configure kubernetes specific settings for cert-manager-startupapicheck.
                                          properties:
                                            kubeSpec:
                                              description: Configure kubernetes specific settings for cert-manager-startupapicheck.
                                              properties:
                                                deployment:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - podSecurityContext
                                                        - required:
                                                            - podSecurityContext
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - containerSecurityContext
                                                        - required:
                                                            - containerSecurityContext
                                                  properties:
                                                    affinity:
                                                      description: The scheduling constraints for the pod.
                                                      properties:
                                                        nodeAffinity:
                                                          description: Group of node affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                              items:
                                                                properties:
                                                                  preference:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              properties:
                                                                nodeSelectorTerms:
                                                                  items:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  type: array
                                                              type: object
                                                          type: object
                                                        podAffinity:
                                                          description: Group of inter-pod affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        podAntiAffinity:
                                                          description: Group of inter-pod anti-affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    containerSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - capabilities
                                                            - required:
                                                                - capabilities
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - privileged
                                                            - required:
                                                                - privileged
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - readOnlyRootFilesystem
                                                            - required:
                                                                - readOnlyRootFilesystem
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - allowPrivilegeEscalation
                                                            - required:
                                                                - allowPrivilegeEscalation
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - procMount
                                                            - required:
                                                                - procMount
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        allowPrivilegeEscalation:
                                                          type: boolean
                                                        capabilities:
                                                          properties:
                                                            add:
                                                              items:
                                                                type: string
                                                              type: array
                                                            drop:
                                                              items:
                                                                type: string
                                                              type: array
                                                          type: object
                                                        privileged:
                                                          type: boolean
                                                        procMount:
                                                          type: string
                                                        readOnlyRootFilesystem:
                                                          type: boolean
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    env:
                                                      description: Environment variables for all containers in the deployment.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                          valueFrom:
                                                            properties:
                                                              configMapKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                              fieldRef:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  fieldPath:
                                                                    type: string
                                                                type: object
                                                              resourceFieldRef:
                                                                properties:
                                                                  containerName:
                                                                    type: string
                                                                  divisor:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  resource:
                                                                    type: string
                                                                type: object
                                                              secretKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                            type: object
                                                        type: object
                                                      type: array
                                                    hpaSpec:
                                                      description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                      properties:
                                                        maxReplicas:
                                                          format: int32
                                                          type: integer
                                                        metrics:
                                                          items:
                                                            properties:
                                                              external:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  metricSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              object:
                                                                properties:
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  target:
                                                                    properties:
                                                                      apiVersion:
                                                                        type: string
                                                                      kind:
                                                                        type: string
                                                                      name:
                                                                        type: string
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              pods:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              resource:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  target:
                                                                    properties:
                                                                      averageUtilization:
                                                                        format: int32
                                                                        type: integer
                                                                      averageValue:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                      value:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                    type: object
                                                                  targetAverageUtilization:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              type:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        minReplicas:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key-value map stored with the Deployment.
                                                      type: object
                                                    podAnnotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                      type: object
                                                    podSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroup
                                                            - required:
                                                                - fsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroupChangePolicy
                                                            - required:
                                                                - fsGroupChangePolicy
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        fsGroup:
                                                          type: integer
                                                        fsGroupChangePolicy:
                                                          type: string
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        supplementalGroups:
                                                          items:
                                                            type: integer
                                                          type: array
                                                        sysctls:
                                                          items:
                                                            properties:
                                                              name:
                                                                type: string
                                                              value:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    replicaCount:
                                                      description: Number of desired pods.
                                                      type: integer
                                                    resources:
                                                      description: Compute Resources required by the primary container in the deployment PodSpec.
                                                      properties:
                                                        limits:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                        requests:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    strategy:
                                                      description: The deployment strategy to use to replace existing pods with new ones.
                                                      properties:
                                                        rollingUpdate:
                                                          properties:
                                                            maxSurge:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                            maxUnavailable:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                          type: object
                                                        type:
                                                          type: string
                                                      type: object
                                                    tolerations:
                                                      description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                      items:
                                                        properties:
                                                          effect:
                                                            description: Effect indicates the taint effect to match.
                                                            type: string
                                                          key:
                                                            description: Key is the taint key that the toleration applies to.
                                                            type: string
                                                          operator:
                                                            description: Operator represents a key's relationship to the value.
                                                            type: string
                                                          tolerationSeconds:
                                                            description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                            type: integer
                                                          value:
                                                            description: Value is the taint value the toleration matches to.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                job:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - podSecurityContext
                                                        - required:
                                                            - podSecurityContext
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - containerSecurityContext
                                                        - required:
                                                            - containerSecurityContext
                                                  properties:
                                                    affinity:
                                                      description: The scheduling constraints for the pod.
                                                      properties:
                                                        nodeAffinity:
                                                          description: Group of node affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                              items:
                                                                properties:
                                                                  preference:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              properties:
                                                                nodeSelectorTerms:
                                                                  items:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  type: array
                                                              type: object
                                                          type: object
                                                        podAffinity:
                                                          description: Group of inter-pod affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        podAntiAffinity:
                                                          description: Group of inter-pod anti-affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    containerSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - capabilities
                                                            - required:
                                                                - capabilities
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - privileged
                                                            - required:
                                                                - privileged
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - readOnlyRootFilesystem
                                                            - required:
                                                                - readOnlyRootFilesystem
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - allowPrivilegeEscalation
                                                            - required:
                                                                - allowPrivilegeEscalation
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - procMount
                                                            - required:
                                                                - procMount
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        allowPrivilegeEscalation:
                                                          type: boolean
                                                        capabilities:
                                                          properties:
                                                            add:
                                                              items:
                                                                type: string
                                                              type: array
                                                            drop:
                                                              items:
                                                                type: string
                                                              type: array
                                                          type: object
                                                        privileged:
                                                          type: boolean
                                                        procMount:
                                                          type: string
                                                        readOnlyRootFilesystem:
                                                          type: boolean
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    env:
                                                      description: Environment variables for all containers in the job.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                          valueFrom:
                                                            properties:
                                                              configMapKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                              fieldRef:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  fieldPath:
                                                                    type: string
                                                                type: object
                                                              resourceFieldRef:
                                                                properties:
                                                                  containerName:
                                                                    type: string
                                                                  divisor:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  resource:
                                                                    type: string
                                                                type: object
                                                              secretKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                            type: object
                                                        type: object
                                                      type: array
                                                    podAnnotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key value map stored with the pod.
                                                      type: object
                                                    podSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroup
                                                            - required:
                                                                - fsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroupChangePolicy
                                                            - required:
                                                                - fsGroupChangePolicy
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        fsGroup:
                                                          type: integer
                                                        fsGroupChangePolicy:
                                                          type: string
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        supplementalGroups:
                                                          items:
                                                            type: integer
                                                          type: array
                                                        sysctls:
                                                          items:
                                                            properties:
                                                              name:
                                                                type: string
                                                              value:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    tolerations:
                                                      description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                      items:
                                                        properties:
                                                          effect:
                                                            description: Effect indicates the taint effect to match.
                                                            type: string
                                                          key:
                                                            description: Key is the taint key that the toleration applies to.
                                                            type: string
                                                          operator:
                                                            description: Operator represents a key's relationship to the value.
                                                            type: string
                                                          tolerationSeconds:
                                                            description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                            type: integer
                                                          value:
                                                            description: Value is the taint value the toleration matches to.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                overlays:
                                                  items:
                                                    properties:
                                                      apiVersion:
                                                        description: Resource API version.
                                                        type: string
                                                      kind:
                                                        description: Resource kind.
                                                        type: string
                                                      name:
                                                        description: Name of resource.
                                                        type: string
                                                      patches:
                                                        description: List of patches to apply to resource.
                                                        items:
                                                          properties:
                                                            path:
                                                              description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                              type: string
                                                            value:
                                                              description: Value to add, delete or replace.
                                                              x-kubernetes-preserve-unknown-fields: true
                                                          type: object
                                                        type: array
                                                    type: object
                                                  type: array
                                                service:
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key value map stored with the service.
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key value map stored with the deployment.
                                                      type: object
                                                    ports:
                                                      description: List of ports exposed by the component's service.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          nodePort:
                                                            format: int32
                                                            type: integer
                                                          port:
                                                            format: int32
                                                            type: integer
                                                          protocol:
                                                            type: string
                                                          targetPort:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type: array
                                                    type:
                                                      description: Determines how the Service is exposed.
                                                      type: string
                                                  type: object
                                                serviceAccount:
                                                  properties:
                                                    imagePullSecrets:
                                                      description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                      items:
                                                        properties:
                                                          name:
                                                            description: Name of the referent.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                          type: object
                                        certManagerWebhookSpec:
                                          description: Configure kubernetes specific settings for cert-manager-webhook.
                                          properties:
                                            kubeSpec:
                                              description: Configure kubernetes specific settings for cert-manager-webhook.
                                              properties:
                                                deployment:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - podSecurityContext
                                                        - required:
                                                            - podSecurityContext
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - containerSecurityContext
                                                        - required:
                                                            - containerSecurityContext
                                                  properties:
                                                    affinity:
                                                      description: The scheduling constraints for the pod.
                                                      properties:
                                                        nodeAffinity:
                                                          description: Group of node affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                              items:
                                                                properties:
                                                                  preference:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              properties:
                                                                nodeSelectorTerms:
                                                                  items:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  type: array
                                                              type: object
                                                          type: object
                                                        podAffinity:
                                                          description: Group of inter-pod affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        podAntiAffinity:
                                                          description: Group of inter-pod anti-affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    containerSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - capabilities
                                                            - required:
                                                                - capabilities
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - privileged
                                                            - required:
                                                                - privileged
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - readOnlyRootFilesystem
                                                            - required:
                                                                - readOnlyRootFilesystem
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - allowPrivilegeEscalation
                                                            - required:
                                                                - allowPrivilegeEscalation
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - procMount
                                                            - required:
                                                                - procMount
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        allowPrivilegeEscalation:
                                                          type: boolean
                                                        capabilities:
                                                          properties:
                                                            add:
                                                              items:
                                                                type: string
                                                              type: array
                                                            drop:
                                                              items:
                                                                type: string
                                                              type: array
                                                          type: object
                                                        privileged:
                                                          type: boolean
                                                        procMount:
                                                          type: string
                                                        readOnlyRootFilesystem:
                                                          type: boolean
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    env:
                                                      description: Environment variables for all containers in the deployment.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                          valueFrom:
                                                            properties:
                                                              configMapKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                              fieldRef:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  fieldPath:
                                                                    type: string
                                                                type: object
                                                              resourceFieldRef:
                                                                properties:
                                                                  containerName:
                                                                    type: string
                                                                  divisor:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  resource:
                                                                    type: string
                                                                type: object
                                                              secretKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                            type: object
                                                        type: object
                                                      type: array
                                                    hpaSpec:
                                                      description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                      properties:
                                                        maxReplicas:
                                                          format: int32
                                                          type: integer
                                                        metrics:
                                                          items:
                                                            properties:
                                                              external:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  metricSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              object:
                                                                properties:
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  target:
                                                                    properties:
                                                                      apiVersion:
                                                                        type: string
                                                                      kind:
                                                                        type: string
                                                                      name:
                                                                        type: string
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              pods:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              resource:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  target:
                                                                    properties:
                                                                      averageUtilization:
                                                                        format: int32
                                                                        type: integer
                                                                      averageValue:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                      value:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                    type: object
                                                                  targetAverageUtilization:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              type:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        minReplicas:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key-value map stored with the Deployment.
                                                      type: object
                                                    podAnnotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                      type: object
                                                    podSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroup
                                                            - required:
                                                                - fsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroupChangePolicy
                                                            - required:
                                                                - fsGroupChangePolicy
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        fsGroup:
                                                          type: integer
                                                        fsGroupChangePolicy:
                                                          type: string
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        supplementalGroups:
                                                          items:
                                                            type: integer
                                                          type: array
                                                        sysctls:
                                                          items:
                                                            properties:
                                                              name:
                                                                type: string
                                                              value:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    replicaCount:
                                                      description: Number of desired pods.
                                                      type: integer
                                                    resources:
                                                      description: Compute Resources required by the primary container in the deployment PodSpec.
                                                      properties:
                                                        limits:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                        requests:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    strategy:
                                                      description: The deployment strategy to use to replace existing pods with new ones.
                                                      properties:
                                                        rollingUpdate:
                                                          properties:
                                                            maxSurge:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                            maxUnavailable:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                          type: object
                                                        type:
                                                          type: string
                                                      type: object
                                                    tolerations:
                                                      description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                      items:
                                                        properties:
                                                          effect:
                                                            description: Effect indicates the taint effect to match.
                                                            type: string
                                                          key:
                                                            description: Key is the taint key that the toleration applies to.
                                                            type: string
                                                          operator:
                                                            description: Operator represents a key's relationship to the value.
                                                            type: string
                                                          tolerationSeconds:
                                                            description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                            type: integer
                                                          value:
                                                            description: Value is the taint value the toleration matches to.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                overlays:
                                                  items:
                                                    properties:
                                                      apiVersion:
                                                        description: Resource API version.
                                                        type: string
                                                      kind:
                                                        description: Resource kind.
                                                        type: string
                                                      name:
                                                        description: Name of resource.
                                                        type: string
                                                      patches:
                                                        description: List of patches to apply to resource.
                                                        items:
                                                          properties:
                                                            path:
                                                              description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                              type: string
                                                            value:
                                                              description: Value to add, delete or replace.
                                                              x-kubernetes-preserve-unknown-fields: true
                                                          type: object
                                                        type: array
                                                    type: object
                                                  type: array
                                                service:
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key value map stored with the service.
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key value map stored with the deployment.
                                                      type: object
                                                    ports:
                                                      description: List of ports exposed by the component's service.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          nodePort:
                                                            format: int32
                                                            type: integer
                                                          port:
                                                            format: int32
                                                            type: integer
                                                          protocol:
                                                            type: string
                                                          targetPort:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type: array
                                                    type:
                                                      description: Determines how the Service is exposed.
                                                      type: string
                                                  type: object
                                                serviceAccount:
                                                  properties:
                                                    imagePullSecrets:
                                                      description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                      items:
                                                        properties:
                                                          name:
                                                            description: Name of the referent.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                          type: object
                                        managed:
                                          description: Managed specifies whether TSB should manage the lifecycle of cert-manager.
                                          enum:
                                            - AUTO
                                            - EXTERNAL
                                            - INTERNAL
                                          type: string
                                      type: object
                                    custom:
                                      properties:
                                        caBundleSecretName:
                                          description: Configure the CABundleSecretName to be used to verify the signed CSR request by different TSB components.
                                          type: string
                                        csrSignerName:
                                          description: Name of Kubernetes CSR signer to be used to sign the CSR request by different TSB components for internal purposes.
                                          type: string
                                      required:
                                        - csrSignerName
                                        - caBundleSecretName
                                      type: object
                                    tsbManaged:
                                      description: Use TSBManaged certificates for internal purposes.
                                      type: object
                                  type: object
                                istio:
                                  properties:
                                    ambient:
                                      properties:
                                        enable:
                                          nullable: true
                                          type: boolean
                                        waypoints:
                                          properties:
                                            clusterLevel:
                                              description: Cluster-level waypoint configuration.
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                disableLabelManagement:
                                                  description: If true, xcp will not apply/remove istio.io/use-waypoint label on/from the namespace of the ambient workloads.
                                                  nullable: true
                                                  type: boolean
                                                enable:
                                                  description: Enable or disable default waypoint deployment (default is true) This configuration can be made at both the cluster level and also at namespace level.
                                                  nullable: true
                                                  type: boolean
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  description: 'Deprecated: Use overlays field to add labels, annotations, tolerations and resource requirements.'
                                                  type: object
                                                overlays:
                                                  description: overlays can be used to fully customize waypoint deployments, services and hpa.
                                                  x-kubernetes-preserve-unknown-fields: true
                                                resources:
                                                  properties:
                                                    limits:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    requests:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                tolerations:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            namespaceLevel:
                                              description: List of namespace-level waypoint configurations.
                                              items:
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - name
                                                        - required:
                                                            - selector
                                                  - required:
                                                      - name
                                                  - required:
                                                      - selector
                                                properties:
                                                  config:
                                                    properties:
                                                      annotations:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                      disableLabelManagement:
                                                        description: If true, xcp will not apply/remove istio.io/use-waypoint label on/from the namespace of the ambient workloads.
                                                        nullable: true
                                                        type: boolean
                                                      enable:
                                                        description: Enable or disable default waypoint deployment (default is true) This configuration can be made at both the cluster level and also at namespace level.
                                                        nullable: true
                                                        type: boolean
                                                      labels:
                                                        additionalProperties:
                                                          type: string
                                                        description: 'Deprecated: Use overlays field to add labels, annotations, tolerations and resource requirements.'
                                                        type: object
                                                      overlays:
                                                        description: overlays can be used to fully customize waypoint deployments, services and hpa.
                                                        x-kubernetes-preserve-unknown-fields: true
                                                      resources:
                                                        properties:
                                                          limits:
                                                            additionalProperties:
                                                              type: string
                                                            type: object
                                                          requests:
                                                            additionalProperties:
                                                              type: string
                                                            type: object
                                                        type: object
                                                      tolerations:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                    type: object
                                                  name:
                                                    type: string
                                                  selector:
                                                    properties:
                                                      labels:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    baseOverlays:
                                      description: The overlays applied to the Istio base component.
                                      items:
                                        properties:
                                          apiVersion:
                                            description: Resource API version.
                                            type: string
                                          kind:
                                            description: Resource kind.
                                            type: string
                                          name:
                                            description: Name of resource.
                                            type: string
                                          patches:
                                            description: List of patches to apply to resource.
                                            items:
                                              properties:
                                                path:
                                                  description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                  type: string
                                                value:
                                                  description: Value to add, delete or replace.
                                                  x-kubernetes-preserve-unknown-fields: true
                                              type: object
                                            type: array
                                        type: object
                                      type: array
                                    cniOverlays:
                                      description: The overlays applied to the Istio CNI component.
                                      items:
                                        properties:
                                          apiVersion:
                                            description: Resource API version.
                                            type: string
                                          kind:
                                            description: Resource kind.
                                            type: string
                                          name:
                                            description: Name of resource.
                                            type: string
                                          patches:
                                            description: List of patches to apply to resource.
                                            items:
                                              properties:
                                                path:
                                                  description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                  type: string
                                                value:
                                                  description: Value to add, delete or replace.
                                                  x-kubernetes-preserve-unknown-fields: true
                                              type: object
                                            type: array
                                        type: object
                                      type: array
                                    defaultWorkloadCertTTL:
                                      description: The default TTL of issued workload certificates.
                                      type: string
                                    kubeSpec:
                                      description: Configure Kubernetes specific settings.
                                      properties:
                                        CNI:
                                          properties:
                                            binaryDirectory:
                                              description: Directory on the host to install the CNI binary.
                                              type: string
                                            chained:
                                              description: Whether to deploy the configuration file as a plugin chain or as a standalone file in the configuration directory.
                                              type: boolean
                                            clusterRole:
                                              description: The ClusterRole Istio CNI will bind to in the ControlPlane namespace.
                                              type: string
                                            cniDaemonsetNamespace:
                                              description: The namespace where the Istio CNI DaemonSet is deployed.
                                              type: string
                                            configurationDirectory:
                                              description: Directory on the host to install the CNI config.
                                              type: string
                                            configurationFileName:
                                              description: Leave unset to auto-find the first file in the `cni-conf-dir` (as kubelet does).
                                              type: string
                                            revision:
                                              description: The revisioned istio-operator that will reconcile the Istio CNI component.
                                              type: string
                                          type: object
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        istiodDeployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        operatorDeployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    logLevels:
                                      additionalProperties:
                                        type: string
                                      description: Specifies the global logging level settings for the Istio control plane components.
                                      type: object
                                    maxWorkloadCertTTL:
                                      description: The maximum TTL that can be set in issued workload certificates.
                                      type: string
                                    mountInternalWasmExtensions:
                                      description: When this flag is set, the TSB internal WASM extensions will be mounted into the Sidecar, Ingress and Egress gateway pods automatically.
                                      nullable: true
                                      type: boolean
                                    pilotOverlays:
                                      description: The overlays applied to the Istio pilot component.
                                      items:
                                        properties:
                                          apiVersion:
                                            description: Resource API version.
                                            type: string
                                          kind:
                                            description: Resource kind.
                                            type: string
                                          name:
                                            description: Name of resource.
                                            type: string
                                          patches:
                                            description: List of patches to apply to resource.
                                            items:
                                              properties:
                                                path:
                                                  description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                  type: string
                                                value:
                                                  description: Value to add, delete or replace.
                                                  x-kubernetes-preserve-unknown-fields: true
                                              type: object
                                            type: array
                                        type: object
                                      type: array
                                    traceSamplingRate:
                                      description: The percentage of traces Envoy will sample.
                                      format: double
                                      type: number
                                    trustDomain:
                                      description: The trust domain corresponds to the trust root of a system.
                                      type: string
                                    tsbVersion:
                                      description: Specifies the tsb release version.
                                      type: string
                                  type: object
                                ngac:
                                  properties:
                                    enabled:
                                      description: NGAC is an experimental component.
                                      type: boolean
                                    kubeSpec:
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    logLevels:
                                      additionalProperties:
                                        type: string
                                      description: The log level configuration by scopes.
                                      type: object
                                  type: object
                                oap:
                                  properties:
                                    kubeSpec:
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    logLevel:
                                      description: Specifies the log level for OAP component.
                                      type: string
                                    onDemandEnvoyMetricsEnabled:
                                      description: Feature flag to determine whether on-demand envoy metrics should be enabled.
                                      type: boolean
                                    storageIndexMergingEnabled:
                                      description: Feature flag to determine whether metrics/meter and records should be shard into multi-physical indices, or instead if they should be merged into a single physical index.
                                      type: boolean
                                    streamingLogEnabled:
                                      description: Feature flag to determine whether on-demand streaming logs should be enabled.
                                      type: boolean
                                  type: object
                                onboarding:
                                  description: Workload Onboarding.
                                  properties:
                                    operator:
                                      description: Configure `Workload Onboarding Operator` component.
                                      properties:
                                        kubeSpec:
                                          description: Configure Kubernetes specific settings.
                                          properties:
                                            deployment:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - podSecurityContext
                                                    - required:
                                                        - podSecurityContext
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - containerSecurityContext
                                                    - required:
                                                        - containerSecurityContext
                                              properties:
                                                affinity:
                                                  description: The scheduling constraints for the pod.
                                                  properties:
                                                    nodeAffinity:
                                                      description: Group of node affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                          items:
                                                            properties:
                                                              preference:
                                                                properties:
                                                                  matchExpressions:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchFields:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          properties:
                                                            nodeSelectorTerms:
                                                              items:
                                                                properties:
                                                                  matchExpressions:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchFields:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    podAffinity:
                                                      description: Group of inter-pod affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              podAffinityTerm:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          type: array
                                                      type: object
                                                    podAntiAffinity:
                                                      description: Group of inter-pod anti-affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              podAffinityTerm:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                containerSecurityContext:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - capabilities
                                                        - required:
                                                            - capabilities
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - privileged
                                                        - required:
                                                            - privileged
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seLinuxOptions
                                                        - required:
                                                            - seLinuxOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - windowsOptions
                                                        - required:
                                                            - windowsOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsUser
                                                        - required:
                                                            - runAsUser
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsGroup
                                                        - required:
                                                            - runAsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsNonRoot
                                                        - required:
                                                            - runAsNonRoot
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - readOnlyRootFilesystem
                                                        - required:
                                                            - readOnlyRootFilesystem
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - allowPrivilegeEscalation
                                                        - required:
                                                            - allowPrivilegeEscalation
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - procMount
                                                        - required:
                                                            - procMount
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seccompProfile
                                                        - required:
                                                            - seccompProfile
                                                  properties:
                                                    allowPrivilegeEscalation:
                                                      type: boolean
                                                    capabilities:
                                                      properties:
                                                        add:
                                                          items:
                                                            type: string
                                                          type: array
                                                        drop:
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    privileged:
                                                      type: boolean
                                                    procMount:
                                                      type: string
                                                    readOnlyRootFilesystem:
                                                      type: boolean
                                                    runAsGroup:
                                                      type: integer
                                                    runAsNonRoot:
                                                      type: boolean
                                                    runAsUser:
                                                      type: integer
                                                    seLinuxOptions:
                                                      properties:
                                                        level:
                                                          type: string
                                                        role:
                                                          type: string
                                                        type:
                                                          type: string
                                                        user:
                                                          type: string
                                                      type: object
                                                    seccompProfile:
                                                      properties:
                                                        localhostProfile:
                                                          type: string
                                                        type:
                                                          type: string
                                                      type: object
                                                    windowsOptions:
                                                      properties:
                                                        gmsaCredentialSpec:
                                                          type: string
                                                        gmsaCredentialSpecName:
                                                          type: string
                                                        runAsUserName:
                                                          type: string
                                                      type: object
                                                  type: object
                                                env:
                                                  description: Environment variables for all containers in the deployment.
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                      valueFrom:
                                                        properties:
                                                          configMapKeyRef:
                                                            properties:
                                                              key:
                                                                type: string
                                                              localObjectReference:
                                                                properties:
                                                                  name:
                                                                    description: Name of the referent.
                                                                    type: string
                                                                type: object
                                                              optional:
                                                                type: boolean
                                                            type: object
                                                          fieldRef:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              fieldPath:
                                                                type: string
                                                            type: object
                                                          resourceFieldRef:
                                                            properties:
                                                              containerName:
                                                                type: string
                                                              divisor:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              resource:
                                                                type: string
                                                            type: object
                                                          secretKeyRef:
                                                            properties:
                                                              key:
                                                                type: string
                                                              localObjectReference:
                                                                properties:
                                                                  name:
                                                                    description: Name of the referent.
                                                                    type: string
                                                                type: object
                                                              optional:
                                                                type: boolean
                                                            type: object
                                                        type: object
                                                    type: object
                                                  type: array
                                                hpaSpec:
                                                  description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                  properties:
                                                    maxReplicas:
                                                      format: int32
                                                      type: integer
                                                    metrics:
                                                      items:
                                                        properties:
                                                          external:
                                                            properties:
                                                              metricName:
                                                                type: string
                                                              metricSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              targetValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          object:
                                                            properties:
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              metricName:
                                                                type: string
                                                              selector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              target:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  kind:
                                                                    type: string
                                                                  name:
                                                                    type: string
                                                                type: object
                                                              targetValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          pods:
                                                            properties:
                                                              metricName:
                                                                type: string
                                                              selector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          resource:
                                                            properties:
                                                              name:
                                                                type: string
                                                              target:
                                                                properties:
                                                                  averageUtilization:
                                                                    format: int32
                                                                    type: integer
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  type:
                                                                    type: string
                                                                  value:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              targetAverageUtilization:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          type:
                                                            type: string
                                                        type: object
                                                      type: array
                                                    minReplicas:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  description: Labels are an unstructured key-value map stored with the Deployment.
                                                  type: object
                                                podAnnotations:
                                                  additionalProperties:
                                                    type: string
                                                  description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                  type: object
                                                podSecurityContext:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seLinuxOptions
                                                        - required:
                                                            - seLinuxOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsUser
                                                        - required:
                                                            - runAsUser
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsNonRoot
                                                        - required:
                                                            - runAsNonRoot
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - fsGroup
                                                        - required:
                                                            - fsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsGroup
                                                        - required:
                                                            - runAsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - windowsOptions
                                                        - required:
                                                            - windowsOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - fsGroupChangePolicy
                                                        - required:
                                                            - fsGroupChangePolicy
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seccompProfile
                                                        - required:
                                                            - seccompProfile
                                                  properties:
                                                    fsGroup:
                                                      type: integer
                                                    fsGroupChangePolicy:
                                                      type: string
                                                    runAsGroup:
                                                      type: integer
                                                    runAsNonRoot:
                                                      type: boolean
                                                    runAsUser:
                                                      type: integer
                                                    seLinuxOptions:
                                                      properties:
                                                        level:
                                                          type: string
                                                        role:
                                                          type: string
                                                        type:
                                                          type: string
                                                        user:
                                                          type: string
                                                      type: object
                                                    seccompProfile:
                                                      properties:
                                                        localhostProfile:
                                                          type: string
                                                        type:
                                                          type: string
                                                      type: object
                                                    supplementalGroups:
                                                      items:
                                                        type: integer
                                                      type: array
                                                    sysctls:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        type: object
                                                      type: array
                                                    windowsOptions:
                                                      properties:
                                                        gmsaCredentialSpec:
                                                          type: string
                                                        gmsaCredentialSpecName:
                                                          type: string
                                                        runAsUserName:
                                                          type: string
                                                      type: object
                                                  type: object
                                                replicaCount:
                                                  description: Number of desired pods.
                                                  type: integer
                                                resources:
                                                  description: Compute Resources required by the primary container in the deployment PodSpec.
                                                  properties:
                                                    limits:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    requests:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                strategy:
                                                  description: The deployment strategy to use to replace existing pods with new ones.
                                                  properties:
                                                    rollingUpdate:
                                                      properties:
                                                        maxSurge:
                                                          properties:
                                                            intVal:
                                                              nullable: true
                                                              type: integer
                                                            strVal:
                                                              nullable: true
                                                              type: string
                                                            type:
                                                              type: integer
                                                          type: object
                                                        maxUnavailable:
                                                          properties:
                                                            intVal:
                                                              nullable: true
                                                              type: integer
                                                            strVal:
                                                              nullable: true
                                                              type: string
                                                            type:
                                                              type: integer
                                                          type: object
                                                      type: object
                                                    type:
                                                      type: string
                                                  type: object
                                                tolerations:
                                                  description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                  items:
                                                    properties:
                                                      effect:
                                                        description: Effect indicates the taint effect to match.
                                                        type: string
                                                      key:
                                                        description: Key is the taint key that the toleration applies to.
                                                        type: string
                                                      operator:
                                                        description: Operator represents a key's relationship to the value.
                                                        type: string
                                                      tolerationSeconds:
                                                        description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                        type: integer
                                                      value:
                                                        description: Value is the taint value the toleration matches to.
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                            overlays:
                                              items:
                                                properties:
                                                  apiVersion:
                                                    description: Resource API version.
                                                    type: string
                                                  kind:
                                                    description: Resource kind.
                                                    type: string
                                                  name:
                                                    description: Name of resource.
                                                    type: string
                                                  patches:
                                                    description: List of patches to apply to resource.
                                                    items:
                                                      properties:
                                                        path:
                                                          description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                          type: string
                                                        value:
                                                          description: Value to add, delete or replace.
                                                          x-kubernetes-preserve-unknown-fields: true
                                                      type: object
                                                    type: array
                                                type: object
                                              type: array
                                            service:
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  description: Pod annotations are an unstructured key value map stored with the service.
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  description: Labels are an unstructured key value map stored with the deployment.
                                                  type: object
                                                ports:
                                                  description: List of ports exposed by the component's service.
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      nodePort:
                                                        format: int32
                                                        type: integer
                                                      port:
                                                        format: int32
                                                        type: integer
                                                      protocol:
                                                        type: string
                                                      targetPort:
                                                        properties:
                                                          intVal:
                                                            nullable: true
                                                            type: integer
                                                          strVal:
                                                            nullable: true
                                                            type: string
                                                          type:
                                                            type: integer
                                                        type: object
                                                    type: object
                                                  type: array
                                                type:
                                                  description: Determines how the Service is exposed.
                                                  type: string
                                              type: object
                                            serviceAccount:
                                              properties:
                                                imagePullSecrets:
                                                  description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                  items:
                                                    properties:
                                                      name:
                                                        description: Name of the referent.
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                          type: object
                                        logLevels:
                                          additionalProperties:
                                            type: string
                                          description: The log level configuration by scopes.
                                          type: object
                                      type: object
                                    plane:
                                      description: Configure `Workload Onboarding Plane` component.
                                      properties:
                                        instance:
                                          description: Kubernetes settings for the `Workload Onboarding Plane Instance` component.
                                          properties:
                                            kubeSpec:
                                              description: Configure Kubernetes specific settings.
                                              properties:
                                                deployment:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - podSecurityContext
                                                        - required:
                                                            - podSecurityContext
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - containerSecurityContext
                                                        - required:
                                                            - containerSecurityContext
                                                  properties:
                                                    affinity:
                                                      description: The scheduling constraints for the pod.
                                                      properties:
                                                        nodeAffinity:
                                                          description: Group of node affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                              items:
                                                                properties:
                                                                  preference:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              properties:
                                                                nodeSelectorTerms:
                                                                  items:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  type: array
                                                              type: object
                                                          type: object
                                                        podAffinity:
                                                          description: Group of inter-pod affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        podAntiAffinity:
                                                          description: Group of inter-pod anti-affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    containerSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - capabilities
                                                            - required:
                                                                - capabilities
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - privileged
                                                            - required:
                                                                - privileged
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - readOnlyRootFilesystem
                                                            - required:
                                                                - readOnlyRootFilesystem
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - allowPrivilegeEscalation
                                                            - required:
                                                                - allowPrivilegeEscalation
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - procMount
                                                            - required:
                                                                - procMount
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        allowPrivilegeEscalation:
                                                          type: boolean
                                                        capabilities:
                                                          properties:
                                                            add:
                                                              items:
                                                                type: string
                                                              type: array
                                                            drop:
                                                              items:
                                                                type: string
                                                              type: array
                                                          type: object
                                                        privileged:
                                                          type: boolean
                                                        procMount:
                                                          type: string
                                                        readOnlyRootFilesystem:
                                                          type: boolean
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    env:
                                                      description: Environment variables for all containers in the deployment.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                          valueFrom:
                                                            properties:
                                                              configMapKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                              fieldRef:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  fieldPath:
                                                                    type: string
                                                                type: object
                                                              resourceFieldRef:
                                                                properties:
                                                                  containerName:
                                                                    type: string
                                                                  divisor:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  resource:
                                                                    type: string
                                                                type: object
                                                              secretKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                            type: object
                                                        type: object
                                                      type: array
                                                    hpaSpec:
                                                      description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                      properties:
                                                        maxReplicas:
                                                          format: int32
                                                          type: integer
                                                        metrics:
                                                          items:
                                                            properties:
                                                              external:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  metricSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              object:
                                                                properties:
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  target:
                                                                    properties:
                                                                      apiVersion:
                                                                        type: string
                                                                      kind:
                                                                        type: string
                                                                      name:
                                                                        type: string
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              pods:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              resource:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  target:
                                                                    properties:
                                                                      averageUtilization:
                                                                        format: int32
                                                                        type: integer
                                                                      averageValue:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                      value:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                    type: object
                                                                  targetAverageUtilization:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              type:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        minReplicas:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key-value map stored with the Deployment.
                                                      type: object
                                                    podAnnotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                      type: object
                                                    podSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroup
                                                            - required:
                                                                - fsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroupChangePolicy
                                                            - required:
                                                                - fsGroupChangePolicy
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        fsGroup:
                                                          type: integer
                                                        fsGroupChangePolicy:
                                                          type: string
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        supplementalGroups:
                                                          items:
                                                            type: integer
                                                          type: array
                                                        sysctls:
                                                          items:
                                                            properties:
                                                              name:
                                                                type: string
                                                              value:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    replicaCount:
                                                      description: Number of desired pods.
                                                      type: integer
                                                    resources:
                                                      description: Compute Resources required by the primary container in the deployment PodSpec.
                                                      properties:
                                                        limits:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                        requests:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    strategy:
                                                      description: The deployment strategy to use to replace existing pods with new ones.
                                                      properties:
                                                        rollingUpdate:
                                                          properties:
                                                            maxSurge:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                            maxUnavailable:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                          type: object
                                                        type:
                                                          type: string
                                                      type: object
                                                    tolerations:
                                                      description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                      items:
                                                        properties:
                                                          effect:
                                                            description: Effect indicates the taint effect to match.
                                                            type: string
                                                          key:
                                                            description: Key is the taint key that the toleration applies to.
                                                            type: string
                                                          operator:
                                                            description: Operator represents a key's relationship to the value.
                                                            type: string
                                                          tolerationSeconds:
                                                            description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                            type: integer
                                                          value:
                                                            description: Value is the taint value the toleration matches to.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                overlays:
                                                  items:
                                                    properties:
                                                      apiVersion:
                                                        description: Resource API version.
                                                        type: string
                                                      kind:
                                                        description: Resource kind.
                                                        type: string
                                                      name:
                                                        description: Name of resource.
                                                        type: string
                                                      patches:
                                                        description: List of patches to apply to resource.
                                                        items:
                                                          properties:
                                                            path:
                                                              description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                              type: string
                                                            value:
                                                              description: Value to add, delete or replace.
                                                              x-kubernetes-preserve-unknown-fields: true
                                                          type: object
                                                        type: array
                                                    type: object
                                                  type: array
                                                service:
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key value map stored with the service.
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key value map stored with the deployment.
                                                      type: object
                                                    ports:
                                                      description: List of ports exposed by the component's service.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          nodePort:
                                                            format: int32
                                                            type: integer
                                                          port:
                                                            format: int32
                                                            type: integer
                                                          protocol:
                                                            type: string
                                                          targetPort:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type: array
                                                    type:
                                                      description: Determines how the Service is exposed.
                                                      type: string
                                                  type: object
                                                serviceAccount:
                                                  properties:
                                                    imagePullSecrets:
                                                      description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                      items:
                                                        properties:
                                                          name:
                                                            description: Name of the referent.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            logLevels:
                                              additionalProperties:
                                                type: string
                                              description: The log level configuration by scopes.
                                              type: object
                                          type: object
                                      type: object
                                    repository:
                                      description: Configure `Workload Onboarding Repository` component.
                                      properties:
                                        kubeSpec:
                                          description: Configure Kubernetes specific settings.
                                          properties:
                                            deployment:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - podSecurityContext
                                                    - required:
                                                        - podSecurityContext
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - containerSecurityContext
                                                    - required:
                                                        - containerSecurityContext
                                              properties:
                                                affinity:
                                                  description: The scheduling constraints for the pod.
                                                  properties:
                                                    nodeAffinity:
                                                      description: Group of node affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                          items:
                                                            properties:
                                                              preference:
                                                                properties:
                                                                  matchExpressions:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchFields:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          properties:
                                                            nodeSelectorTerms:
                                                              items:
                                                                properties:
                                                                  matchExpressions:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchFields:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    podAffinity:
                                                      description: Group of inter-pod affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              podAffinityTerm:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          type: array
                                                      type: object
                                                    podAntiAffinity:
                                                      description: Group of inter-pod anti-affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              podAffinityTerm:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                containerSecurityContext:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - capabilities
                                                        - required:
                                                            - capabilities
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - privileged
                                                        - required:
                                                            - privileged
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seLinuxOptions
                                                        - required:
                                                            - seLinuxOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - windowsOptions
                                                        - required:
                                                            - windowsOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsUser
                                                        - required:
                                                            - runAsUser
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsGroup
                                                        - required:
                                                            - runAsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsNonRoot
                                                        - required:
                                                            - runAsNonRoot
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - readOnlyRootFilesystem
                                                        - required:
                                                            - readOnlyRootFilesystem
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - allowPrivilegeEscalation
                                                        - required:
                                                            - allowPrivilegeEscalation
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - procMount
                                                        - required:
                                                            - procMount
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seccompProfile
                                                        - required:
                                                            - seccompProfile
                                                  properties:
                                                    allowPrivilegeEscalation:
                                                      type: boolean
                                                    capabilities:
                                                      properties:
                                                        add:
                                                          items:
                                                            type: string
                                                          type: array
                                                        drop:
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    privileged:
                                                      type: boolean
                                                    procMount:
                                                      type: string
                                                    readOnlyRootFilesystem:
                                                      type: boolean
                                                    runAsGroup:
                                                      type: integer
                                                    runAsNonRoot:
                                                      type: boolean
                                                    runAsUser:
                                                      type: integer
                                                    seLinuxOptions:
                                                      properties:
                                                        level:
                                                          type: string
                                                        role:
                                                          type: string
                                                        type:
                                                          type: string
                                                        user:
                                                          type: string
                                                      type: object
                                                    seccompProfile:
                                                      properties:
                                                        localhostProfile:
                                                          type: string
                                                        type:
                                                          type: string
                                                      type: object
                                                    windowsOptions:
                                                      properties:
                                                        gmsaCredentialSpec:
                                                          type: string
                                                        gmsaCredentialSpecName:
                                                          type: string
                                                        runAsUserName:
                                                          type: string
                                                      type: object
                                                  type: object
                                                env:
                                                  description: Environment variables for all containers in the deployment.
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                      valueFrom:
                                                        properties:
                                                          configMapKeyRef:
                                                            properties:
                                                              key:
                                                                type: string
                                                              localObjectReference:
                                                                properties:
                                                                  name:
                                                                    description: Name of the referent.
                                                                    type: string
                                                                type: object
                                                              optional:
                                                                type: boolean
                                                            type: object
                                                          fieldRef:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              fieldPath:
                                                                type: string
                                                            type: object
                                                          resourceFieldRef:
                                                            properties:
                                                              containerName:
                                                                type: string
                                                              divisor:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              resource:
                                                                type: string
                                                            type: object
                                                          secretKeyRef:
                                                            properties:
                                                              key:
                                                                type: string
                                                              localObjectReference:
                                                                properties:
                                                                  name:
                                                                    description: Name of the referent.
                                                                    type: string
                                                                type: object
                                                              optional:
                                                                type: boolean
                                                            type: object
                                                        type: object
                                                    type: object
                                                  type: array
                                                hpaSpec:
                                                  description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                  properties:
                                                    maxReplicas:
                                                      format: int32
                                                      type: integer
                                                    metrics:
                                                      items:
                                                        properties:
                                                          external:
                                                            properties:
                                                              metricName:
                                                                type: string
                                                              metricSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              targetValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          object:
                                                            properties:
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              metricName:
                                                                type: string
                                                              selector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              target:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  kind:
                                                                    type: string
                                                                  name:
                                                                    type: string
                                                                type: object
                                                              targetValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          pods:
                                                            properties:
                                                              metricName:
                                                                type: string
                                                              selector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          resource:
                                                            properties:
                                                              name:
                                                                type: string
                                                              target:
                                                                properties:
                                                                  averageUtilization:
                                                                    format: int32
                                                                    type: integer
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  type:
                                                                    type: string
                                                                  value:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              targetAverageUtilization:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          type:
                                                            type: string
                                                        type: object
                                                      type: array
                                                    minReplicas:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  description: Labels are an unstructured key-value map stored with the Deployment.
                                                  type: object
                                                podAnnotations:
                                                  additionalProperties:
                                                    type: string
                                                  description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                  type: object
                                                podSecurityContext:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seLinuxOptions
                                                        - required:
                                                            - seLinuxOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsUser
                                                        - required:
                                                            - runAsUser
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsNonRoot
                                                        - required:
                                                            - runAsNonRoot
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - fsGroup
                                                        - required:
                                                            - fsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsGroup
                                                        - required:
                                                            - runAsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - windowsOptions
                                                        - required:
                                                            - windowsOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - fsGroupChangePolicy
                                                        - required:
                                                            - fsGroupChangePolicy
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seccompProfile
                                                        - required:
                                                            - seccompProfile
                                                  properties:
                                                    fsGroup:
                                                      type: integer
                                                    fsGroupChangePolicy:
                                                      type: string
                                                    runAsGroup:
                                                      type: integer
                                                    runAsNonRoot:
                                                      type: boolean
                                                    runAsUser:
                                                      type: integer
                                                    seLinuxOptions:
                                                      properties:
                                                        level:
                                                          type: string
                                                        role:
                                                          type: string
                                                        type:
                                                          type: string
                                                        user:
                                                          type: string
                                                      type: object
                                                    seccompProfile:
                                                      properties:
                                                        localhostProfile:
                                                          type: string
                                                        type:
                                                          type: string
                                                      type: object
                                                    supplementalGroups:
                                                      items:
                                                        type: integer
                                                      type: array
                                                    sysctls:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        type: object
                                                      type: array
                                                    windowsOptions:
                                                      properties:
                                                        gmsaCredentialSpec:
                                                          type: string
                                                        gmsaCredentialSpecName:
                                                          type: string
                                                        runAsUserName:
                                                          type: string
                                                      type: object
                                                  type: object
                                                replicaCount:
                                                  description: Number of desired pods.
                                                  type: integer
                                                resources:
                                                  description: Compute Resources required by the primary container in the deployment PodSpec.
                                                  properties:
                                                    limits:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    requests:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                strategy:
                                                  description: The deployment strategy to use to replace existing pods with new ones.
                                                  properties:
                                                    rollingUpdate:
                                                      properties:
                                                        maxSurge:
                                                          properties:
                                                            intVal:
                                                              nullable: true
                                                              type: integer
                                                            strVal:
                                                              nullable: true
                                                              type: string
                                                            type:
                                                              type: integer
                                                          type: object
                                                        maxUnavailable:
                                                          properties:
                                                            intVal:
                                                              nullable: true
                                                              type: integer
                                                            strVal:
                                                              nullable: true
                                                              type: string
                                                            type:
                                                              type: integer
                                                          type: object
                                                      type: object
                                                    type:
                                                      type: string
                                                  type: object
                                                tolerations:
                                                  description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                  items:
                                                    properties:
                                                      effect:
                                                        description: Effect indicates the taint effect to match.
                                                        type: string
                                                      key:
                                                        description: Key is the taint key that the toleration applies to.
                                                        type: string
                                                      operator:
                                                        description: Operator represents a key's relationship to the value.
                                                        type: string
                                                      tolerationSeconds:
                                                        description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                        type: integer
                                                      value:
                                                        description: Value is the taint value the toleration matches to.
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                            overlays:
                                              items:
                                                properties:
                                                  apiVersion:
                                                    description: Resource API version.
                                                    type: string
                                                  kind:
                                                    description: Resource kind.
                                                    type: string
                                                  name:
                                                    description: Name of resource.
                                                    type: string
                                                  patches:
                                                    description: List of patches to apply to resource.
                                                    items:
                                                      properties:
                                                        path:
                                                          description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                          type: string
                                                        value:
                                                          description: Value to add, delete or replace.
                                                          x-kubernetes-preserve-unknown-fields: true
                                                      type: object
                                                    type: array
                                                type: object
                                              type: array
                                            service:
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  description: Pod annotations are an unstructured key value map stored with the service.
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  description: Labels are an unstructured key value map stored with the deployment.
                                                  type: object
                                                ports:
                                                  description: List of ports exposed by the component's service.
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      nodePort:
                                                        format: int32
                                                        type: integer
                                                      port:
                                                        format: int32
                                                        type: integer
                                                      protocol:
                                                        type: string
                                                      targetPort:
                                                        properties:
                                                          intVal:
                                                            nullable: true
                                                            type: integer
                                                          strVal:
                                                            nullable: true
                                                            type: string
                                                          type:
                                                            type: integer
                                                        type: object
                                                    type: object
                                                  type: array
                                                type:
                                                  description: Determines how the Service is exposed.
                                                  type: string
                                              type: object
                                            serviceAccount:
                                              properties:
                                                imagePullSecrets:
                                                  description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                  items:
                                                    properties:
                                                      name:
                                                        description: Name of the referent.
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                          type: object
                                      type: object
                                  type: object
                                rateLimitServer:
                                  properties:
                                    backend:
                                      description: Configure Database backend settings.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - redis
                                        - required:
                                            - redis
                                      properties:
                                        redis:
                                          description: Settings for redis database backend.
                                          properties:
                                            uri:
                                              description: The Redis Database URI.
                                              type: string
                                          required:
                                            - uri
                                          type: object
                                      type: object
                                    domain:
                                      description: The domain field allows ratelimits to be namespaced to a certain domain.
                                      type: string
                                    kubeSpec:
                                      description: Configure Kubernetes specific settings.
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                  required:
                                    - backend
                                  type: object
                                route53Controller:
                                  properties:
                                    kubeSpec:
                                      description: Configure Kubernetes specific settings.
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                  type: object
                                satellite:
                                  description: Satellite provide load balancing capabilities for data content before the data from Envoy reaches the SPM in Control Plane.
                                  properties:
                                    enabled:
                                      description: Satellite is an optional component.
                                      type: boolean
                                    kubeSpec:
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    logLevel:
                                      description: Specifies the log level for the component.
                                      type: string
                                  type: object
                                spmAgent:
                                  description: SPM Agent provides traffic monitoring capability for applications in non Service Mesh scenarios.
                                  properties:
                                    disableMultiProtocolAnalysis:
                                      description: Set to true to disable multiple protocol analysis.
                                      type: boolean
                                    enabled:
                                      description: SPM Agent is an optional component.
                                      type: boolean
                                    hostPath:
                                      description: The root directory of each host for SPM agent use.
                                      type: string
                                    kubeSpec:
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    logLevel:
                                      description: The log level configuration by scopes.
                                      type: string
                                    priority:
                                      description: The agent deployment priority setting.
                                      properties:
                                        enabled:
                                          description: The agent deploy priority is enabled or not.
                                          type: boolean
                                        value:
                                          description: The agent deploy priority value.
                                          format: int32
                                          type: integer
                                      type: object
                                  type: object
                                wasmfetcher:
                                  description: Configuration for the WASM Fetcher component.
                                  properties:
                                    cacheDisableInsecureRegistries:
                                      description: Denies insecure registries to be used for fetching WASM modules.
                                      type: boolean
                                    cacheExpiration:
                                      description: WASM Module cache expiration time.
                                      type: string
                                    cacheMaxRetries:
                                      description: Maximum number of retries when fetching WASM modules from the OCI registry.
                                      format: int32
                                      type: integer
                                    cachePurgeInterval:
                                      description: WASM cache purge interval to periodically clean up the stale WASM modules.
                                      type: string
                                    cacheRequestTimeout:
                                      description: Specifies the timeout used when retrieving the WASM plugin from the OCI registry.
                                      type: string
                                    kubeSpec:
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    logLevels:
                                      additionalProperties:
                                        type: string
                                      description: The log level configuration by scopes.
                                      type: object
                                  type: object
                                xcp:
                                  properties:
                                    centralAuthMode:
                                      description: Authentication mode for connections from XCP Edges to XCP Central.
                                      enum:
                                        - UNKNOWN
                                        - MUTUAL_TLS
                                        - JWT
                                      type: string
                                    centralProvidedCaCert:
                                      description: If true, obtain the CA cert for Istio from XCP central.
                                      nullable: true
                                      type: boolean
                                    configProtection:
                                      description: ConfigProtection contains settings for enabling/disabling config protection over XCP created resources.
                                      properties:
                                        authorizedUsers:
                                          description: List of usernames of authorized users or svc accounts to create/update/delete XCP configs when config protection is enabled.
                                          items:
                                            type: string
                                          type: array
                                        enableAuthorizedCreateUpdateDeleteOnXcpConfigs:
                                          description: When enabled, no other user or svc account except AuthorizedUsers would be allowed to create, delete or update the XCP/Istio API resources.
                                          type: boolean
                                        enableAuthorizedUpdateDeleteOnXcpConfigs:
                                          description: When enabled, no other user or svc account except AuthorizedUsers would be allowed to delete or update the XCP/Istio API resources created by XCP.
                                          type: boolean
                                      type: object
                                    enableHttpMeshInternalIdentityPropagation:
                                      description: Enables HTTP mesh internal service identity propagation across gateway hops, utilizing the propagated identity for evaluating TSB RBAC rules.
                                      nullable: true
                                      type: boolean
                                    enableJwtAuthenticationRequireJwtTokenSetting:
                                      description: Enables JWT authentication require JWT token settings via EnvoyFilter with strict validation.
                                      nullable: true
                                      type: boolean
                                    isolationBoundaries:
                                      description: Configures Isolated Istio environments along with Istio revisions for each environment.
                                      items:
                                        properties:
                                          meshExpansion:
                                            description: Configure mesh expansion to connect workloads external to Kubernetes to the mesh.
                                            properties:
                                              customGateway:
                                                description: A custom mesh expansion gateway.
                                                properties:
                                                  host:
                                                    description: Mesh expansion gateway host address (can be hostname or IP address).
                                                    type: string
                                                  port:
                                                    description: Port mesh expansion gateway is listening on.
                                                    format: int32
                                                    type: integer
                                                required:
                                                  - host
                                                  - port
                                                type: object
                                              hostManagement:
                                                description: 'EXPERIMENTAL: Settings for the `Tetrate Host Management` component.'
                                                properties:
                                                  agent:
                                                    description: Settings for the `Tetrate Host Management Agent`.
                                                    properties:
                                                      version:
                                                        description: Version of the `Tetrate Host Management Agent` to use.
                                                        type: string
                                                    type: object
                                                  enabled:
                                                    description: To install the component, set the value to `true`.
                                                    nullable: true
                                                    type: boolean
                                                  endpoint:
                                                    description: Configuration of the endpoint exposing `Host Management API` to `Host Management Agents`.
                                                    properties:
                                                      hasNoDnsRecord:
                                                        description: To configure `Agents` to connect to the `Host Management Endpoint` using an address of the k8s Service rather than host name, set the value to `true`.
                                                        nullable: true
                                                        type: boolean
                                                      hosts:
                                                        description: List of hosts included in the TLS certificate.
                                                        items:
                                                          type: string
                                                        type: array
                                                      secretName:
                                                        description: Name of the secret that holds TLS certificate chain and private key.
                                                        type: string
                                                    required:
                                                      - hosts
                                                      - secretName
                                                    type: object
                                                  plane:
                                                    description: Configure `Tetrate Host Management Plane` component.
                                                    properties:
                                                      kubeSpec:
                                                        description: Configure Kubernetes specific settings.
                                                        properties:
                                                          deployment:
                                                            allOf:
                                                              - oneOf:
                                                                  - not:
                                                                      anyOf:
                                                                        - required:
                                                                            - podSecurityContext
                                                                  - required:
                                                                      - podSecurityContext
                                                              - oneOf:
                                                                  - not:
                                                                      anyOf:
                                                                        - required:
                                                                            - containerSecurityContext
                                                                  - required:
                                                                      - containerSecurityContext
                                                            properties:
                                                              affinity:
                                                                description: The scheduling constraints for the pod.
                                                                properties:
                                                                  nodeAffinity:
                                                                    description: Group of node affinity scheduling rules.
                                                                    properties:
                                                                      preferredDuringSchedulingIgnoredDuringExecution:
                                                                        description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                                        items:
                                                                          properties:
                                                                            preference:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        type: string
                                                                                      operator:
                                                                                        type: string
                                                                                      values:
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchFields:
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        type: string
                                                                                      operator:
                                                                                        type: string
                                                                                      values:
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                              type: object
                                                                            weight:
                                                                              format: int32
                                                                              type: integer
                                                                          type: object
                                                                        type: array
                                                                      requiredDuringSchedulingIgnoredDuringExecution:
                                                                        properties:
                                                                          nodeSelectorTerms:
                                                                            items:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        type: string
                                                                                      operator:
                                                                                        type: string
                                                                                      values:
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchFields:
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        type: string
                                                                                      operator:
                                                                                        type: string
                                                                                      values:
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                        type: object
                                                                    type: object
                                                                  podAffinity:
                                                                    description: Group of inter-pod affinity scheduling rules.
                                                                    properties:
                                                                      preferredDuringSchedulingIgnoredDuringExecution:
                                                                        items:
                                                                          properties:
                                                                            podAffinityTerm:
                                                                              properties:
                                                                                labelSelector:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      description: matchExpressions is a list of label selector requirements.
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            description: key is the label key that the selector applies to.
                                                                                            type: string
                                                                                          operator:
                                                                                            description: operator represents a key's relationship to a set of values.
                                                                                            type: string
                                                                                          values:
                                                                                            description: values is an array of string values.
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchLabels:
                                                                                      additionalProperties:
                                                                                        type: string
                                                                                      description: matchLabels is a map of {key,value} pairs.
                                                                                      type: object
                                                                                  type: object
                                                                                namespaces:
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                                topologyKey:
                                                                                  type: string
                                                                              type: object
                                                                            weight:
                                                                              format: int32
                                                                              type: integer
                                                                          type: object
                                                                        type: array
                                                                      requiredDuringSchedulingIgnoredDuringExecution:
                                                                        items:
                                                                          properties:
                                                                            labelSelector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            namespaces:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                            topologyKey:
                                                                              type: string
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  podAntiAffinity:
                                                                    description: Group of inter-pod anti-affinity scheduling rules.
                                                                    properties:
                                                                      preferredDuringSchedulingIgnoredDuringExecution:
                                                                        items:
                                                                          properties:
                                                                            podAffinityTerm:
                                                                              properties:
                                                                                labelSelector:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      description: matchExpressions is a list of label selector requirements.
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            description: key is the label key that the selector applies to.
                                                                                            type: string
                                                                                          operator:
                                                                                            description: operator represents a key's relationship to a set of values.
                                                                                            type: string
                                                                                          values:
                                                                                            description: values is an array of string values.
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchLabels:
                                                                                      additionalProperties:
                                                                                        type: string
                                                                                      description: matchLabels is a map of {key,value} pairs.
                                                                                      type: object
                                                                                  type: object
                                                                                namespaces:
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                                topologyKey:
                                                                                  type: string
                                                                              type: object
                                                                            weight:
                                                                              format: int32
                                                                              type: integer
                                                                          type: object
                                                                        type: array
                                                                      requiredDuringSchedulingIgnoredDuringExecution:
                                                                        items:
                                                                          properties:
                                                                            labelSelector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            namespaces:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                            topologyKey:
                                                                              type: string
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                type: object
                                                              containerSecurityContext:
                                                                allOf:
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - capabilities
                                                                      - required:
                                                                          - capabilities
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - privileged
                                                                      - required:
                                                                          - privileged
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - seLinuxOptions
                                                                      - required:
                                                                          - seLinuxOptions
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - windowsOptions
                                                                      - required:
                                                                          - windowsOptions
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsUser
                                                                      - required:
                                                                          - runAsUser
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsGroup
                                                                      - required:
                                                                          - runAsGroup
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsNonRoot
                                                                      - required:
                                                                          - runAsNonRoot
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - readOnlyRootFilesystem
                                                                      - required:
                                                                          - readOnlyRootFilesystem
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - allowPrivilegeEscalation
                                                                      - required:
                                                                          - allowPrivilegeEscalation
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - procMount
                                                                      - required:
                                                                          - procMount
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - seccompProfile
                                                                      - required:
                                                                          - seccompProfile
                                                                properties:
                                                                  allowPrivilegeEscalation:
                                                                    type: boolean
                                                                  capabilities:
                                                                    properties:
                                                                      add:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      drop:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                    type: object
                                                                  privileged:
                                                                    type: boolean
                                                                  procMount:
                                                                    type: string
                                                                  readOnlyRootFilesystem:
                                                                    type: boolean
                                                                  runAsGroup:
                                                                    type: integer
                                                                  runAsNonRoot:
                                                                    type: boolean
                                                                  runAsUser:
                                                                    type: integer
                                                                  seLinuxOptions:
                                                                    properties:
                                                                      level:
                                                                        type: string
                                                                      role:
                                                                        type: string
                                                                      type:
                                                                        type: string
                                                                      user:
                                                                        type: string
                                                                    type: object
                                                                  seccompProfile:
                                                                    properties:
                                                                      localhostProfile:
                                                                        type: string
                                                                      type:
                                                                        type: string
                                                                    type: object
                                                                  windowsOptions:
                                                                    properties:
                                                                      gmsaCredentialSpec:
                                                                        type: string
                                                                      gmsaCredentialSpecName:
                                                                        type: string
                                                                      runAsUserName:
                                                                        type: string
                                                                    type: object
                                                                type: object
                                                              env:
                                                                description: Environment variables for all containers in the deployment.
                                                                items:
                                                                  properties:
                                                                    name:
                                                                      type: string
                                                                    value:
                                                                      type: string
                                                                    valueFrom:
                                                                      properties:
                                                                        configMapKeyRef:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            localObjectReference:
                                                                              properties:
                                                                                name:
                                                                                  description: Name of the referent.
                                                                                  type: string
                                                                              type: object
                                                                            optional:
                                                                              type: boolean
                                                                          type: object
                                                                        fieldRef:
                                                                          properties:
                                                                            apiVersion:
                                                                              type: string
                                                                            fieldPath:
                                                                              type: string
                                                                          type: object
                                                                        resourceFieldRef:
                                                                          properties:
                                                                            containerName:
                                                                              type: string
                                                                            divisor:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                            resource:
                                                                              type: string
                                                                          type: object
                                                                        secretKeyRef:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            localObjectReference:
                                                                              properties:
                                                                                name:
                                                                                  description: Name of the referent.
                                                                                  type: string
                                                                              type: object
                                                                            optional:
                                                                              type: boolean
                                                                          type: object
                                                                      type: object
                                                                  type: object
                                                                type: array
                                                              hpaSpec:
                                                                description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                                properties:
                                                                  maxReplicas:
                                                                    format: int32
                                                                    type: integer
                                                                  metrics:
                                                                    items:
                                                                      properties:
                                                                        external:
                                                                          properties:
                                                                            metricName:
                                                                              type: string
                                                                            metricSelector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            targetAverageValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                            targetValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                          type: object
                                                                        object:
                                                                          properties:
                                                                            averageValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                            metricName:
                                                                              type: string
                                                                            selector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            target:
                                                                              properties:
                                                                                apiVersion:
                                                                                  type: string
                                                                                kind:
                                                                                  type: string
                                                                                name:
                                                                                  type: string
                                                                              type: object
                                                                            targetValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                          type: object
                                                                        pods:
                                                                          properties:
                                                                            metricName:
                                                                              type: string
                                                                            selector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            targetAverageValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                          type: object
                                                                        resource:
                                                                          properties:
                                                                            name:
                                                                              type: string
                                                                            target:
                                                                              properties:
                                                                                averageUtilization:
                                                                                  format: int32
                                                                                  type: integer
                                                                                averageValue:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                                type:
                                                                                  type: string
                                                                                value:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                              type: object
                                                                            targetAverageUtilization:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                            targetAverageValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                          type: object
                                                                        type:
                                                                          type: string
                                                                      type: object
                                                                    type: array
                                                                  minReplicas:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              labels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: Labels are an unstructured key-value map stored with the Deployment.
                                                                type: object
                                                              podAnnotations:
                                                                additionalProperties:
                                                                  type: string
                                                                description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                                type: object
                                                              podSecurityContext:
                                                                allOf:
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - seLinuxOptions
                                                                      - required:
                                                                          - seLinuxOptions
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsUser
                                                                      - required:
                                                                          - runAsUser
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsNonRoot
                                                                      - required:
                                                                          - runAsNonRoot
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - fsGroup
                                                                      - required:
                                                                          - fsGroup
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsGroup
                                                                      - required:
                                                                          - runAsGroup
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - windowsOptions
                                                                      - required:
                                                                          - windowsOptions
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - fsGroupChangePolicy
                                                                      - required:
                                                                          - fsGroupChangePolicy
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - seccompProfile
                                                                      - required:
                                                                          - seccompProfile
                                                                properties:
                                                                  fsGroup:
                                                                    type: integer
                                                                  fsGroupChangePolicy:
                                                                    type: string
                                                                  runAsGroup:
                                                                    type: integer
                                                                  runAsNonRoot:
                                                                    type: boolean
                                                                  runAsUser:
                                                                    type: integer
                                                                  seLinuxOptions:
                                                                    properties:
                                                                      level:
                                                                        type: string
                                                                      role:
                                                                        type: string
                                                                      type:
                                                                        type: string
                                                                      user:
                                                                        type: string
                                                                    type: object
                                                                  seccompProfile:
                                                                    properties:
                                                                      localhostProfile:
                                                                        type: string
                                                                      type:
                                                                        type: string
                                                                    type: object
                                                                  supplementalGroups:
                                                                    items:
                                                                      type: integer
                                                                    type: array
                                                                  sysctls:
                                                                    items:
                                                                      properties:
                                                                        name:
                                                                          type: string
                                                                        value:
                                                                          type: string
                                                                      type: object
                                                                    type: array
                                                                  windowsOptions:
                                                                    properties:
                                                                      gmsaCredentialSpec:
                                                                        type: string
                                                                      gmsaCredentialSpecName:
                                                                        type: string
                                                                      runAsUserName:
                                                                        type: string
                                                                    type: object
                                                                type: object
                                                              replicaCount:
                                                                description: Number of desired pods.
                                                                type: integer
                                                              resources:
                                                                description: Compute Resources required by the primary container in the deployment PodSpec.
                                                                properties:
                                                                  limits:
                                                                    additionalProperties:
                                                                      type: string
                                                                    type: object
                                                                  requests:
                                                                    additionalProperties:
                                                                      type: string
                                                                    type: object
                                                                type: object
                                                              strategy:
                                                                description: The deployment strategy to use to replace existing pods with new ones.
                                                                properties:
                                                                  rollingUpdate:
                                                                    properties:
                                                                      maxSurge:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                      maxUnavailable:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                    type: object
                                                                  type:
                                                                    type: string
                                                                type: object
                                                              tolerations:
                                                                description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                                items:
                                                                  properties:
                                                                    effect:
                                                                      description: Effect indicates the taint effect to match.
                                                                      type: string
                                                                    key:
                                                                      description: Key is the taint key that the toleration applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: Operator represents a key's relationship to the value.
                                                                      type: string
                                                                    tolerationSeconds:
                                                                      description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                                      type: integer
                                                                    value:
                                                                      description: Value is the taint value the toleration matches to.
                                                                      type: string
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          overlays:
                                                            items:
                                                              properties:
                                                                apiVersion:
                                                                  description: Resource API version.
                                                                  type: string
                                                                kind:
                                                                  description: Resource kind.
                                                                  type: string
                                                                name:
                                                                  description: Name of resource.
                                                                  type: string
                                                                patches:
                                                                  description: List of patches to apply to resource.
                                                                  items:
                                                                    properties:
                                                                      path:
                                                                        description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                                        type: string
                                                                      value:
                                                                        description: Value to add, delete or replace.
                                                                        x-kubernetes-preserve-unknown-fields: true
                                                                    type: object
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          service:
                                                            properties:
                                                              annotations:
                                                                additionalProperties:
                                                                  type: string
                                                                description: Pod annotations are an unstructured key value map stored with the service.
                                                                type: object
                                                              labels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: Labels are an unstructured key value map stored with the deployment.
                                                                type: object
                                                              ports:
                                                                description: List of ports exposed by the component's service.
                                                                items:
                                                                  properties:
                                                                    name:
                                                                      type: string
                                                                    nodePort:
                                                                      format: int32
                                                                      type: integer
                                                                    port:
                                                                      format: int32
                                                                      type: integer
                                                                    protocol:
                                                                      type: string
                                                                    targetPort:
                                                                      properties:
                                                                        intVal:
                                                                          nullable: true
                                                                          type: integer
                                                                        strVal:
                                                                          nullable: true
                                                                          type: string
                                                                        type:
                                                                          type: integer
                                                                      type: object
                                                                  type: object
                                                                type: array
                                                              type:
                                                                description: Determines how the Service is exposed.
                                                                type: string
                                                            type: object
                                                          serviceAccount:
                                                            properties:
                                                              imagePullSecrets:
                                                                description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                                items:
                                                                  properties:
                                                                    name:
                                                                      description: Name of the referent.
                                                                      type: string
                                                                  type: object
                                                                type: array
                                                            type: object
                                                        type: object
                                                      logLevels:
                                                        additionalProperties:
                                                          type: string
                                                        description: The log level configuration by scopes.
                                                        type: object
                                                    type: object
                                                  repository:
                                                    description: Configure `Tetrate Host Management Repository` component.
                                                    properties:
                                                      kubeSpec:
                                                        description: Configure Kubernetes specific settings.
                                                        properties:
                                                          deployment:
                                                            allOf:
                                                              - oneOf:
                                                                  - not:
                                                                      anyOf:
                                                                        - required:
                                                                            - podSecurityContext
                                                                  - required:
                                                                      - podSecurityContext
                                                              - oneOf:
                                                                  - not:
                                                                      anyOf:
                                                                        - required:
                                                                            - containerSecurityContext
                                                                  - required:
                                                                      - containerSecurityContext
                                                            properties:
                                                              affinity:
                                                                description: The scheduling constraints for the pod.
                                                                properties:
                                                                  nodeAffinity:
                                                                    description: Group of node affinity scheduling rules.
                                                                    properties:
                                                                      preferredDuringSchedulingIgnoredDuringExecution:
                                                                        description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                                        items:
                                                                          properties:
                                                                            preference:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        type: string
                                                                                      operator:
                                                                                        type: string
                                                                                      values:
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchFields:
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        type: string
                                                                                      operator:
                                                                                        type: string
                                                                                      values:
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                              type: object
                                                                            weight:
                                                                              format: int32
                                                                              type: integer
                                                                          type: object
                                                                        type: array
                                                                      requiredDuringSchedulingIgnoredDuringExecution:
                                                                        properties:
                                                                          nodeSelectorTerms:
                                                                            items:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        type: string
                                                                                      operator:
                                                                                        type: string
                                                                                      values:
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchFields:
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        type: string
                                                                                      operator:
                                                                                        type: string
                                                                                      values:
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                        type: object
                                                                    type: object
                                                                  podAffinity:
                                                                    description: Group of inter-pod affinity scheduling rules.
                                                                    properties:
                                                                      preferredDuringSchedulingIgnoredDuringExecution:
                                                                        items:
                                                                          properties:
                                                                            podAffinityTerm:
                                                                              properties:
                                                                                labelSelector:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      description: matchExpressions is a list of label selector requirements.
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            description: key is the label key that the selector applies to.
                                                                                            type: string
                                                                                          operator:
                                                                                            description: operator represents a key's relationship to a set of values.
                                                                                            type: string
                                                                                          values:
                                                                                            description: values is an array of string values.
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchLabels:
                                                                                      additionalProperties:
                                                                                        type: string
                                                                                      description: matchLabels is a map of {key,value} pairs.
                                                                                      type: object
                                                                                  type: object
                                                                                namespaces:
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                                topologyKey:
                                                                                  type: string
                                                                              type: object
                                                                            weight:
                                                                              format: int32
                                                                              type: integer
                                                                          type: object
                                                                        type: array
                                                                      requiredDuringSchedulingIgnoredDuringExecution:
                                                                        items:
                                                                          properties:
                                                                            labelSelector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            namespaces:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                            topologyKey:
                                                                              type: string
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  podAntiAffinity:
                                                                    description: Group of inter-pod anti-affinity scheduling rules.
                                                                    properties:
                                                                      preferredDuringSchedulingIgnoredDuringExecution:
                                                                        items:
                                                                          properties:
                                                                            podAffinityTerm:
                                                                              properties:
                                                                                labelSelector:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      description: matchExpressions is a list of label selector requirements.
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            description: key is the label key that the selector applies to.
                                                                                            type: string
                                                                                          operator:
                                                                                            description: operator represents a key's relationship to a set of values.
                                                                                            type: string
                                                                                          values:
                                                                                            description: values is an array of string values.
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchLabels:
                                                                                      additionalProperties:
                                                                                        type: string
                                                                                      description: matchLabels is a map of {key,value} pairs.
                                                                                      type: object
                                                                                  type: object
                                                                                namespaces:
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                                topologyKey:
                                                                                  type: string
                                                                              type: object
                                                                            weight:
                                                                              format: int32
                                                                              type: integer
                                                                          type: object
                                                                        type: array
                                                                      requiredDuringSchedulingIgnoredDuringExecution:
                                                                        items:
                                                                          properties:
                                                                            labelSelector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            namespaces:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                            topologyKey:
                                                                              type: string
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                type: object
                                                              containerSecurityContext:
                                                                allOf:
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - capabilities
                                                                      - required:
                                                                          - capabilities
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - privileged
                                                                      - required:
                                                                          - privileged
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - seLinuxOptions
                                                                      - required:
                                                                          - seLinuxOptions
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - windowsOptions
                                                                      - required:
                                                                          - windowsOptions
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsUser
                                                                      - required:
                                                                          - runAsUser
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsGroup
                                                                      - required:
                                                                          - runAsGroup
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsNonRoot
                                                                      - required:
                                                                          - runAsNonRoot
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - readOnlyRootFilesystem
                                                                      - required:
                                                                          - readOnlyRootFilesystem
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - allowPrivilegeEscalation
                                                                      - required:
                                                                          - allowPrivilegeEscalation
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - procMount
                                                                      - required:
                                                                          - procMount
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - seccompProfile
                                                                      - required:
                                                                          - seccompProfile
                                                                properties:
                                                                  allowPrivilegeEscalation:
                                                                    type: boolean
                                                                  capabilities:
                                                                    properties:
                                                                      add:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      drop:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                    type: object
                                                                  privileged:
                                                                    type: boolean
                                                                  procMount:
                                                                    type: string
                                                                  readOnlyRootFilesystem:
                                                                    type: boolean
                                                                  runAsGroup:
                                                                    type: integer
                                                                  runAsNonRoot:
                                                                    type: boolean
                                                                  runAsUser:
                                                                    type: integer
                                                                  seLinuxOptions:
                                                                    properties:
                                                                      level:
                                                                        type: string
                                                                      role:
                                                                        type: string
                                                                      type:
                                                                        type: string
                                                                      user:
                                                                        type: string
                                                                    type: object
                                                                  seccompProfile:
                                                                    properties:
                                                                      localhostProfile:
                                                                        type: string
                                                                      type:
                                                                        type: string
                                                                    type: object
                                                                  windowsOptions:
                                                                    properties:
                                                                      gmsaCredentialSpec:
                                                                        type: string
                                                                      gmsaCredentialSpecName:
                                                                        type: string
                                                                      runAsUserName:
                                                                        type: string
                                                                    type: object
                                                                type: object
                                                              env:
                                                                description: Environment variables for all containers in the deployment.
                                                                items:
                                                                  properties:
                                                                    name:
                                                                      type: string
                                                                    value:
                                                                      type: string
                                                                    valueFrom:
                                                                      properties:
                                                                        configMapKeyRef:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            localObjectReference:
                                                                              properties:
                                                                                name:
                                                                                  description: Name of the referent.
                                                                                  type: string
                                                                              type: object
                                                                            optional:
                                                                              type: boolean
                                                                          type: object
                                                                        fieldRef:
                                                                          properties:
                                                                            apiVersion:
                                                                              type: string
                                                                            fieldPath:
                                                                              type: string
                                                                          type: object
                                                                        resourceFieldRef:
                                                                          properties:
                                                                            containerName:
                                                                              type: string
                                                                            divisor:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                            resource:
                                                                              type: string
                                                                          type: object
                                                                        secretKeyRef:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            localObjectReference:
                                                                              properties:
                                                                                name:
                                                                                  description: Name of the referent.
                                                                                  type: string
                                                                              type: object
                                                                            optional:
                                                                              type: boolean
                                                                          type: object
                                                                      type: object
                                                                  type: object
                                                                type: array
                                                              hpaSpec:
                                                                description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                                properties:
                                                                  maxReplicas:
                                                                    format: int32
                                                                    type: integer
                                                                  metrics:
                                                                    items:
                                                                      properties:
                                                                        external:
                                                                          properties:
                                                                            metricName:
                                                                              type: string
                                                                            metricSelector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            targetAverageValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                            targetValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                          type: object
                                                                        object:
                                                                          properties:
                                                                            averageValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                            metricName:
                                                                              type: string
                                                                            selector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            target:
                                                                              properties:
                                                                                apiVersion:
                                                                                  type: string
                                                                                kind:
                                                                                  type: string
                                                                                name:
                                                                                  type: string
                                                                              type: object
                                                                            targetValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                          type: object
                                                                        pods:
                                                                          properties:
                                                                            metricName:
                                                                              type: string
                                                                            selector:
                                                                              properties:
                                                                                matchExpressions:
                                                                                  description: matchExpressions is a list of label selector requirements.
                                                                                  items:
                                                                                    properties:
                                                                                      key:
                                                                                        description: key is the label key that the selector applies to.
                                                                                        type: string
                                                                                      operator:
                                                                                        description: operator represents a key's relationship to a set of values.
                                                                                        type: string
                                                                                      values:
                                                                                        description: values is an array of string values.
                                                                                        items:
                                                                                          type: string
                                                                                        type: array
                                                                                    type: object
                                                                                  type: array
                                                                                matchLabels:
                                                                                  additionalProperties:
                                                                                    type: string
                                                                                  description: matchLabels is a map of {key,value} pairs.
                                                                                  type: object
                                                                              type: object
                                                                            targetAverageValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                          type: object
                                                                        resource:
                                                                          properties:
                                                                            name:
                                                                              type: string
                                                                            target:
                                                                              properties:
                                                                                averageUtilization:
                                                                                  format: int32
                                                                                  type: integer
                                                                                averageValue:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                                type:
                                                                                  type: string
                                                                                value:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                              type: object
                                                                            targetAverageUtilization:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                            targetAverageValue:
                                                                              properties:
                                                                                intVal:
                                                                                  nullable: true
                                                                                  type: integer
                                                                                strVal:
                                                                                  nullable: true
                                                                                  type: string
                                                                                type:
                                                                                  type: integer
                                                                              type: object
                                                                          type: object
                                                                        type:
                                                                          type: string
                                                                      type: object
                                                                    type: array
                                                                  minReplicas:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              labels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: Labels are an unstructured key-value map stored with the Deployment.
                                                                type: object
                                                              podAnnotations:
                                                                additionalProperties:
                                                                  type: string
                                                                description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                                type: object
                                                              podSecurityContext:
                                                                allOf:
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - seLinuxOptions
                                                                      - required:
                                                                          - seLinuxOptions
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsUser
                                                                      - required:
                                                                          - runAsUser
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsNonRoot
                                                                      - required:
                                                                          - runAsNonRoot
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - fsGroup
                                                                      - required:
                                                                          - fsGroup
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - runAsGroup
                                                                      - required:
                                                                          - runAsGroup
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - windowsOptions
                                                                      - required:
                                                                          - windowsOptions
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - fsGroupChangePolicy
                                                                      - required:
                                                                          - fsGroupChangePolicy
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - seccompProfile
                                                                      - required:
                                                                          - seccompProfile
                                                                properties:
                                                                  fsGroup:
                                                                    type: integer
                                                                  fsGroupChangePolicy:
                                                                    type: string
                                                                  runAsGroup:
                                                                    type: integer
                                                                  runAsNonRoot:
                                                                    type: boolean
                                                                  runAsUser:
                                                                    type: integer
                                                                  seLinuxOptions:
                                                                    properties:
                                                                      level:
                                                                        type: string
                                                                      role:
                                                                        type: string
                                                                      type:
                                                                        type: string
                                                                      user:
                                                                        type: string
                                                                    type: object
                                                                  seccompProfile:
                                                                    properties:
                                                                      localhostProfile:
                                                                        type: string
                                                                      type:
                                                                        type: string
                                                                    type: object
                                                                  supplementalGroups:
                                                                    items:
                                                                      type: integer
                                                                    type: array
                                                                  sysctls:
                                                                    items:
                                                                      properties:
                                                                        name:
                                                                          type: string
                                                                        value:
                                                                          type: string
                                                                      type: object
                                                                    type: array
                                                                  windowsOptions:
                                                                    properties:
                                                                      gmsaCredentialSpec:
                                                                        type: string
                                                                      gmsaCredentialSpecName:
                                                                        type: string
                                                                      runAsUserName:
                                                                        type: string
                                                                    type: object
                                                                type: object
                                                              replicaCount:
                                                                description: Number of desired pods.
                                                                type: integer
                                                              resources:
                                                                description: Compute Resources required by the primary container in the deployment PodSpec.
                                                                properties:
                                                                  limits:
                                                                    additionalProperties:
                                                                      type: string
                                                                    type: object
                                                                  requests:
                                                                    additionalProperties:
                                                                      type: string
                                                                    type: object
                                                                type: object
                                                              strategy:
                                                                description: The deployment strategy to use to replace existing pods with new ones.
                                                                properties:
                                                                  rollingUpdate:
                                                                    properties:
                                                                      maxSurge:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                      maxUnavailable:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                    type: object
                                                                  type:
                                                                    type: string
                                                                type: object
                                                              tolerations:
                                                                description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                                items:
                                                                  properties:
                                                                    effect:
                                                                      description: Effect indicates the taint effect to match.
                                                                      type: string
                                                                    key:
                                                                      description: Key is the taint key that the toleration applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: Operator represents a key's relationship to the value.
                                                                      type: string
                                                                    tolerationSeconds:
                                                                      description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                                      type: integer
                                                                    value:
                                                                      description: Value is the taint value the toleration matches to.
                                                                      type: string
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          overlays:
                                                            items:
                                                              properties:
                                                                apiVersion:
                                                                  description: Resource API version.
                                                                  type: string
                                                                kind:
                                                                  description: Resource kind.
                                                                  type: string
                                                                name:
                                                                  description: Name of resource.
                                                                  type: string
                                                                patches:
                                                                  description: List of patches to apply to resource.
                                                                  items:
                                                                    properties:
                                                                      path:
                                                                        description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                                        type: string
                                                                      value:
                                                                        description: Value to add, delete or replace.
                                                                        x-kubernetes-preserve-unknown-fields: true
                                                                    type: object
                                                                  type: array
                                                              type: object
                                                            type: array
                                                          service:
                                                            properties:
                                                              annotations:
                                                                additionalProperties:
                                                                  type: string
                                                                description: Pod annotations are an unstructured key value map stored with the service.
                                                                type: object
                                                              labels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: Labels are an unstructured key value map stored with the deployment.
                                                                type: object
                                                              ports:
                                                                description: List of ports exposed by the component's service.
                                                                items:
                                                                  properties:
                                                                    name:
                                                                      type: string
                                                                    nodePort:
                                                                      format: int32
                                                                      type: integer
                                                                    port:
                                                                      format: int32
                                                                      type: integer
                                                                    protocol:
                                                                      type: string
                                                                    targetPort:
                                                                      properties:
                                                                        intVal:
                                                                          nullable: true
                                                                          type: integer
                                                                        strVal:
                                                                          nullable: true
                                                                          type: string
                                                                        type:
                                                                          type: integer
                                                                      type: object
                                                                  type: object
                                                                type: array
                                                              type:
                                                                description: Determines how the Service is exposed.
                                                                type: string
                                                            type: object
                                                          serviceAccount:
                                                            properties:
                                                              imagePullSecrets:
                                                                description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                                items:
                                                                  properties:
                                                                    name:
                                                                      description: Name of the referent.
                                                                      type: string
                                                                  type: object
                                                                type: array
                                                            type: object
                                                        type: object
                                                    type: object
                                                required:
                                                  - endpoint
                                                type: object
                                              onboarding:
                                                description: Configuration of the `Workload Onboarding Plane`.
                                                properties:
                                                  endpoint:
                                                    description: Configuration of the endpoint exposing `Workload Onboarding API` to `Workload Onboarding Agents`.
                                                    properties:
                                                      hosts:
                                                        description: List of hosts included in the TLS certificate.
                                                        items:
                                                          type: string
                                                        type: array
                                                      secretName:
                                                        description: Name of the secret that holds TLS certificate chain and private key.
                                                        type: string
                                                    required:
                                                      - hosts
                                                      - secretName
                                                    type: object
                                                  localRepository:
                                                    description: Configuration of the local repository with `DEB` and `RPM` packages of the `Workload Onboarding Agent` and `Istio Sidecar`.
                                                    type: object
                                                  tokenIssuer:
                                                    description: Configuration of the built-in `Workload Onboarding Token Issuer`.
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - jwt
                                                      - required:
                                                          - jwt
                                                    properties:
                                                      jwt:
                                                        description: Configuration of the built-in JWT Token Issuer.
                                                        properties:
                                                          expiration:
                                                            description: Expiration is the duration issued tokens are valid for.
                                                            type: string
                                                        type: object
                                                    type: object
                                                  uid:
                                                    description: Unique identifier of this particular installation of the `Workload Onboarding Plane`.
                                                    type: string
                                                  workloads:
                                                    description: Configuration of the workload handling.
                                                    properties:
                                                      authentication:
                                                        description: Workload authentication configuration.
                                                        properties:
                                                          jwt:
                                                            description: JWT authentication configuration.
                                                            properties:
                                                              issuers:
                                                                description: List of permitted JWT issuers.
                                                                items:
                                                                  oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - jwksUri
                                                                          - required:
                                                                              - jwks
                                                                    - required:
                                                                        - jwksUri
                                                                    - required:
                                                                        - jwks
                                                                  properties:
                                                                    issuer:
                                                                      description: JWT `Issuer` identifier.
                                                                      type: string
                                                                    jwks:
                                                                      description: Inlined JSON Web Key Set document.
                                                                      type: string
                                                                    jwksUri:
                                                                      description: URL of the JSON Web Key Set document.
                                                                      type: string
                                                                    shortName:
                                                                      description: Unique short name associated with the issuer.
                                                                      type: string
                                                                    tokenFields:
                                                                      description: Description of the custom fields included in the [OIDC ID Token](https://openid.net/specs/openid-connect-core-1_0.html#IDToken).
                                                                      properties:
                                                                        attributes:
                                                                          description: Field that carries a map of fine-grained attributes associated with the subject of the [OIDC ID Token](https://openid.net/specs/openid-connect-core-1_0.html#IDToken).
                                                                          properties:
                                                                            jsonPath:
                                                                              description: Simple JSON Path which is evaluated against custom claims of the [OIDC ID Token](https://openid.net/specs/openid-connect-core-1_0.html#IDToken) to produce the value of the field.
                                                                              type: string
                                                                          required:
                                                                            - jsonPath
                                                                          type: object
                                                                      type: object
                                                                  required:
                                                                    - issuer
                                                                    - shortName
                                                                  type: object
                                                                type: array
                                                            type: object
                                                        type: object
                                                      deregistration:
                                                        description: Workload deregistration configuration.
                                                        properties:
                                                          propagationDelay:
                                                            description: Estimated amount of time it takes to propagate the unregistration event across all affected mesh nodes.
                                                            type: string
                                                        type: object
                                                    type: object
                                                required:
                                                  - endpoint
                                                type: object
                                              serviceObservability:
                                                description: 'EXPERIMENTAL: Settings for the `Tetrate Service Observability` component.'
                                                properties:
                                                  agent:
                                                    description: Settings for the `SPM Agent`.
                                                    properties:
                                                      version:
                                                        description: Version of the `SPM Agent` to use.
                                                        type: string
                                                    type: object
                                                  domains:
                                                    description: List of domains to consider when discovering services.
                                                    items:
                                                      type: string
                                                    type: array
                                                  enabled:
                                                    description: To install the component, set the value to `true`.
                                                    nullable: true
                                                    type: boolean
                                                  serviceDiscovery:
                                                    description: Configure `Tetrate Service Discovery` component.
                                                    properties:
                                                      agent:
                                                        description: Settings for the `Tetrate Service Discovery Agent`.
                                                        properties:
                                                          version:
                                                            description: Version of the `Tetrate Service Discovery Agent` to use.
                                                            type: string
                                                        type: object
                                                      plane:
                                                        description: Configure `Tetrate Service Discovery Plane` component.
                                                        properties:
                                                          kubeSpec:
                                                            description: Configure Kubernetes specific settings.
                                                            properties:
                                                              deployment:
                                                                allOf:
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - podSecurityContext
                                                                      - required:
                                                                          - podSecurityContext
                                                                  - oneOf:
                                                                      - not:
                                                                          anyOf:
                                                                            - required:
                                                                                - containerSecurityContext
                                                                      - required:
                                                                          - containerSecurityContext
                                                                properties:
                                                                  affinity:
                                                                    description: The scheduling constraints for the pod.
                                                                    properties:
                                                                      nodeAffinity:
                                                                        description: Group of node affinity scheduling rules.
                                                                        properties:
                                                                          preferredDuringSchedulingIgnoredDuringExecution:
                                                                            description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                                            items:
                                                                              properties:
                                                                                preference:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            type: string
                                                                                          operator:
                                                                                            type: string
                                                                                          values:
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchFields:
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            type: string
                                                                                          operator:
                                                                                            type: string
                                                                                          values:
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                  type: object
                                                                                weight:
                                                                                  format: int32
                                                                                  type: integer
                                                                              type: object
                                                                            type: array
                                                                          requiredDuringSchedulingIgnoredDuringExecution:
                                                                            properties:
                                                                              nodeSelectorTerms:
                                                                                items:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            type: string
                                                                                          operator:
                                                                                            type: string
                                                                                          values:
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchFields:
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            type: string
                                                                                          operator:
                                                                                            type: string
                                                                                          values:
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                            type: object
                                                                        type: object
                                                                      podAffinity:
                                                                        description: Group of inter-pod affinity scheduling rules.
                                                                        properties:
                                                                          preferredDuringSchedulingIgnoredDuringExecution:
                                                                            items:
                                                                              properties:
                                                                                podAffinityTerm:
                                                                                  properties:
                                                                                    labelSelector:
                                                                                      properties:
                                                                                        matchExpressions:
                                                                                          description: matchExpressions is a list of label selector requirements.
                                                                                          items:
                                                                                            properties:
                                                                                              key:
                                                                                                description: key is the label key that the selector applies to.
                                                                                                type: string
                                                                                              operator:
                                                                                                description: operator represents a key's relationship to a set of values.
                                                                                                type: string
                                                                                              values:
                                                                                                description: values is an array of string values.
                                                                                                items:
                                                                                                  type: string
                                                                                                type: array
                                                                                            type: object
                                                                                          type: array
                                                                                        matchLabels:
                                                                                          additionalProperties:
                                                                                            type: string
                                                                                          description: matchLabels is a map of {key,value} pairs.
                                                                                          type: object
                                                                                      type: object
                                                                                    namespaces:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                    topologyKey:
                                                                                      type: string
                                                                                  type: object
                                                                                weight:
                                                                                  format: int32
                                                                                  type: integer
                                                                              type: object
                                                                            type: array
                                                                          requiredDuringSchedulingIgnoredDuringExecution:
                                                                            items:
                                                                              properties:
                                                                                labelSelector:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      description: matchExpressions is a list of label selector requirements.
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            description: key is the label key that the selector applies to.
                                                                                            type: string
                                                                                          operator:
                                                                                            description: operator represents a key's relationship to a set of values.
                                                                                            type: string
                                                                                          values:
                                                                                            description: values is an array of string values.
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchLabels:
                                                                                      additionalProperties:
                                                                                        type: string
                                                                                      description: matchLabels is a map of {key,value} pairs.
                                                                                      type: object
                                                                                  type: object
                                                                                namespaces:
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                                topologyKey:
                                                                                  type: string
                                                                              type: object
                                                                            type: array
                                                                        type: object
                                                                      podAntiAffinity:
                                                                        description: Group of inter-pod anti-affinity scheduling rules.
                                                                        properties:
                                                                          preferredDuringSchedulingIgnoredDuringExecution:
                                                                            items:
                                                                              properties:
                                                                                podAffinityTerm:
                                                                                  properties:
                                                                                    labelSelector:
                                                                                      properties:
                                                                                        matchExpressions:
                                                                                          description: matchExpressions is a list of label selector requirements.
                                                                                          items:
                                                                                            properties:
                                                                                              key:
                                                                                                description: key is the label key that the selector applies to.
                                                                                                type: string
                                                                                              operator:
                                                                                                description: operator represents a key's relationship to a set of values.
                                                                                                type: string
                                                                                              values:
                                                                                                description: values is an array of string values.
                                                                                                items:
                                                                                                  type: string
                                                                                                type: array
                                                                                            type: object
                                                                                          type: array
                                                                                        matchLabels:
                                                                                          additionalProperties:
                                                                                            type: string
                                                                                          description: matchLabels is a map of {key,value} pairs.
                                                                                          type: object
                                                                                      type: object
                                                                                    namespaces:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                    topologyKey:
                                                                                      type: string
                                                                                  type: object
                                                                                weight:
                                                                                  format: int32
                                                                                  type: integer
                                                                              type: object
                                                                            type: array
                                                                          requiredDuringSchedulingIgnoredDuringExecution:
                                                                            items:
                                                                              properties:
                                                                                labelSelector:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      description: matchExpressions is a list of label selector requirements.
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            description: key is the label key that the selector applies to.
                                                                                            type: string
                                                                                          operator:
                                                                                            description: operator represents a key's relationship to a set of values.
                                                                                            type: string
                                                                                          values:
                                                                                            description: values is an array of string values.
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchLabels:
                                                                                      additionalProperties:
                                                                                        type: string
                                                                                      description: matchLabels is a map of {key,value} pairs.
                                                                                      type: object
                                                                                  type: object
                                                                                namespaces:
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                                topologyKey:
                                                                                  type: string
                                                                              type: object
                                                                            type: array
                                                                        type: object
                                                                    type: object
                                                                  containerSecurityContext:
                                                                    allOf:
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - capabilities
                                                                          - required:
                                                                              - capabilities
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - privileged
                                                                          - required:
                                                                              - privileged
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - seLinuxOptions
                                                                          - required:
                                                                              - seLinuxOptions
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - windowsOptions
                                                                          - required:
                                                                              - windowsOptions
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - runAsUser
                                                                          - required:
                                                                              - runAsUser
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - runAsGroup
                                                                          - required:
                                                                              - runAsGroup
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - runAsNonRoot
                                                                          - required:
                                                                              - runAsNonRoot
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - readOnlyRootFilesystem
                                                                          - required:
                                                                              - readOnlyRootFilesystem
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - allowPrivilegeEscalation
                                                                          - required:
                                                                              - allowPrivilegeEscalation
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - procMount
                                                                          - required:
                                                                              - procMount
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - seccompProfile
                                                                          - required:
                                                                              - seccompProfile
                                                                    properties:
                                                                      allowPrivilegeEscalation:
                                                                        type: boolean
                                                                      capabilities:
                                                                        properties:
                                                                          add:
                                                                            items:
                                                                              type: string
                                                                            type: array
                                                                          drop:
                                                                            items:
                                                                              type: string
                                                                            type: array
                                                                        type: object
                                                                      privileged:
                                                                        type: boolean
                                                                      procMount:
                                                                        type: string
                                                                      readOnlyRootFilesystem:
                                                                        type: boolean
                                                                      runAsGroup:
                                                                        type: integer
                                                                      runAsNonRoot:
                                                                        type: boolean
                                                                      runAsUser:
                                                                        type: integer
                                                                      seLinuxOptions:
                                                                        properties:
                                                                          level:
                                                                            type: string
                                                                          role:
                                                                            type: string
                                                                          type:
                                                                            type: string
                                                                          user:
                                                                            type: string
                                                                        type: object
                                                                      seccompProfile:
                                                                        properties:
                                                                          localhostProfile:
                                                                            type: string
                                                                          type:
                                                                            type: string
                                                                        type: object
                                                                      windowsOptions:
                                                                        properties:
                                                                          gmsaCredentialSpec:
                                                                            type: string
                                                                          gmsaCredentialSpecName:
                                                                            type: string
                                                                          runAsUserName:
                                                                            type: string
                                                                        type: object
                                                                    type: object
                                                                  env:
                                                                    description: Environment variables for all containers in the deployment.
                                                                    items:
                                                                      properties:
                                                                        name:
                                                                          type: string
                                                                        value:
                                                                          type: string
                                                                        valueFrom:
                                                                          properties:
                                                                            configMapKeyRef:
                                                                              properties:
                                                                                key:
                                                                                  type: string
                                                                                localObjectReference:
                                                                                  properties:
                                                                                    name:
                                                                                      description: Name of the referent.
                                                                                      type: string
                                                                                  type: object
                                                                                optional:
                                                                                  type: boolean
                                                                              type: object
                                                                            fieldRef:
                                                                              properties:
                                                                                apiVersion:
                                                                                  type: string
                                                                                fieldPath:
                                                                                  type: string
                                                                              type: object
                                                                            resourceFieldRef:
                                                                              properties:
                                                                                containerName:
                                                                                  type: string
                                                                                divisor:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                                resource:
                                                                                  type: string
                                                                              type: object
                                                                            secretKeyRef:
                                                                              properties:
                                                                                key:
                                                                                  type: string
                                                                                localObjectReference:
                                                                                  properties:
                                                                                    name:
                                                                                      description: Name of the referent.
                                                                                      type: string
                                                                                  type: object
                                                                                optional:
                                                                                  type: boolean
                                                                              type: object
                                                                          type: object
                                                                      type: object
                                                                    type: array
                                                                  hpaSpec:
                                                                    description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                                    properties:
                                                                      maxReplicas:
                                                                        format: int32
                                                                        type: integer
                                                                      metrics:
                                                                        items:
                                                                          properties:
                                                                            external:
                                                                              properties:
                                                                                metricName:
                                                                                  type: string
                                                                                metricSelector:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      description: matchExpressions is a list of label selector requirements.
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            description: key is the label key that the selector applies to.
                                                                                            type: string
                                                                                          operator:
                                                                                            description: operator represents a key's relationship to a set of values.
                                                                                            type: string
                                                                                          values:
                                                                                            description: values is an array of string values.
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchLabels:
                                                                                      additionalProperties:
                                                                                        type: string
                                                                                      description: matchLabels is a map of {key,value} pairs.
                                                                                      type: object
                                                                                  type: object
                                                                                targetAverageValue:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                                targetValue:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                              type: object
                                                                            object:
                                                                              properties:
                                                                                averageValue:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                                metricName:
                                                                                  type: string
                                                                                selector:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      description: matchExpressions is a list of label selector requirements.
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            description: key is the label key that the selector applies to.
                                                                                            type: string
                                                                                          operator:
                                                                                            description: operator represents a key's relationship to a set of values.
                                                                                            type: string
                                                                                          values:
                                                                                            description: values is an array of string values.
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchLabels:
                                                                                      additionalProperties:
                                                                                        type: string
                                                                                      description: matchLabels is a map of {key,value} pairs.
                                                                                      type: object
                                                                                  type: object
                                                                                target:
                                                                                  properties:
                                                                                    apiVersion:
                                                                                      type: string
                                                                                    kind:
                                                                                      type: string
                                                                                    name:
                                                                                      type: string
                                                                                  type: object
                                                                                targetValue:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                              type: object
                                                                            pods:
                                                                              properties:
                                                                                metricName:
                                                                                  type: string
                                                                                selector:
                                                                                  properties:
                                                                                    matchExpressions:
                                                                                      description: matchExpressions is a list of label selector requirements.
                                                                                      items:
                                                                                        properties:
                                                                                          key:
                                                                                            description: key is the label key that the selector applies to.
                                                                                            type: string
                                                                                          operator:
                                                                                            description: operator represents a key's relationship to a set of values.
                                                                                            type: string
                                                                                          values:
                                                                                            description: values is an array of string values.
                                                                                            items:
                                                                                              type: string
                                                                                            type: array
                                                                                        type: object
                                                                                      type: array
                                                                                    matchLabels:
                                                                                      additionalProperties:
                                                                                        type: string
                                                                                      description: matchLabels is a map of {key,value} pairs.
                                                                                      type: object
                                                                                  type: object
                                                                                targetAverageValue:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                              type: object
                                                                            resource:
                                                                              properties:
                                                                                name:
                                                                                  type: string
                                                                                target:
                                                                                  properties:
                                                                                    averageUtilization:
                                                                                      format: int32
                                                                                      type: integer
                                                                                    averageValue:
                                                                                      properties:
                                                                                        intVal:
                                                                                          nullable: true
                                                                                          type: integer
                                                                                        strVal:
                                                                                          nullable: true
                                                                                          type: string
                                                                                        type:
                                                                                          type: integer
                                                                                      type: object
                                                                                    type:
                                                                                      type: string
                                                                                    value:
                                                                                      properties:
                                                                                        intVal:
                                                                                          nullable: true
                                                                                          type: integer
                                                                                        strVal:
                                                                                          nullable: true
                                                                                          type: string
                                                                                        type:
                                                                                          type: integer
                                                                                      type: object
                                                                                  type: object
                                                                                targetAverageUtilization:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                                targetAverageValue:
                                                                                  properties:
                                                                                    intVal:
                                                                                      nullable: true
                                                                                      type: integer
                                                                                    strVal:
                                                                                      nullable: true
                                                                                      type: string
                                                                                    type:
                                                                                      type: integer
                                                                                  type: object
                                                                              type: object
                                                                            type:
                                                                              type: string
                                                                          type: object
                                                                        type: array
                                                                      minReplicas:
                                                                        format: int32
                                                                        type: integer
                                                                    type: object
                                                                  labels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: Labels are an unstructured key-value map stored with the Deployment.
                                                                    type: object
                                                                  podAnnotations:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                                    type: object
                                                                  podSecurityContext:
                                                                    allOf:
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - seLinuxOptions
                                                                          - required:
                                                                              - seLinuxOptions
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - runAsUser
                                                                          - required:
                                                                              - runAsUser
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - runAsNonRoot
                                                                          - required:
                                                                              - runAsNonRoot
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - fsGroup
                                                                          - required:
                                                                              - fsGroup
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - runAsGroup
                                                                          - required:
                                                                              - runAsGroup
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - windowsOptions
                                                                          - required:
                                                                              - windowsOptions
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - fsGroupChangePolicy
                                                                          - required:
                                                                              - fsGroupChangePolicy
                                                                      - oneOf:
                                                                          - not:
                                                                              anyOf:
                                                                                - required:
                                                                                    - seccompProfile
                                                                          - required:
                                                                              - seccompProfile
                                                                    properties:
                                                                      fsGroup:
                                                                        type: integer
                                                                      fsGroupChangePolicy:
                                                                        type: string
                                                                      runAsGroup:
                                                                        type: integer
                                                                      runAsNonRoot:
                                                                        type: boolean
                                                                      runAsUser:
                                                                        type: integer
                                                                      seLinuxOptions:
                                                                        properties:
                                                                          level:
                                                                            type: string
                                                                          role:
                                                                            type: string
                                                                          type:
                                                                            type: string
                                                                          user:
                                                                            type: string
                                                                        type: object
                                                                      seccompProfile:
                                                                        properties:
                                                                          localhostProfile:
                                                                            type: string
                                                                          type:
                                                                            type: string
                                                                        type: object
                                                                      supplementalGroups:
                                                                        items:
                                                                          type: integer
                                                                        type: array
                                                                      sysctls:
                                                                        items:
                                                                          properties:
                                                                            name:
                                                                              type: string
                                                                            value:
                                                                              type: string
                                                                          type: object
                                                                        type: array
                                                                      windowsOptions:
                                                                        properties:
                                                                          gmsaCredentialSpec:
                                                                            type: string
                                                                          gmsaCredentialSpecName:
                                                                            type: string
                                                                          runAsUserName:
                                                                            type: string
                                                                        type: object
                                                                    type: object
                                                                  replicaCount:
                                                                    description: Number of desired pods.
                                                                    type: integer
                                                                  resources:
                                                                    description: Compute Resources required by the primary container in the deployment PodSpec.
                                                                    properties:
                                                                      limits:
                                                                        additionalProperties:
                                                                          type: string
                                                                        type: object
                                                                      requests:
                                                                        additionalProperties:
                                                                          type: string
                                                                        type: object
                                                                    type: object
                                                                  strategy:
                                                                    description: The deployment strategy to use to replace existing pods with new ones.
                                                                    properties:
                                                                      rollingUpdate:
                                                                        properties:
                                                                          maxSurge:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          maxUnavailable:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                    type: object
                                                                  tolerations:
                                                                    description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                                    items:
                                                                      properties:
                                                                        effect:
                                                                          description: Effect indicates the taint effect to match.
                                                                          type: string
                                                                        key:
                                                                          description: Key is the taint key that the toleration applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: Operator represents a key's relationship to the value.
                                                                          type: string
                                                                        tolerationSeconds:
                                                                          description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                                          type: integer
                                                                        value:
                                                                          description: Value is the taint value the toleration matches to.
                                                                          type: string
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                              overlays:
                                                                items:
                                                                  properties:
                                                                    apiVersion:
                                                                      description: Resource API version.
                                                                      type: string
                                                                    kind:
                                                                      description: Resource kind.
                                                                      type: string
                                                                    name:
                                                                      description: Name of resource.
                                                                      type: string
                                                                    patches:
                                                                      description: List of patches to apply to resource.
                                                                      items:
                                                                        properties:
                                                                          path:
                                                                            description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                                            type: string
                                                                          value:
                                                                            description: Value to add, delete or replace.
                                                                            x-kubernetes-preserve-unknown-fields: true
                                                                        type: object
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              service:
                                                                properties:
                                                                  annotations:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: Pod annotations are an unstructured key value map stored with the service.
                                                                    type: object
                                                                  labels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: Labels are an unstructured key value map stored with the deployment.
                                                                    type: object
                                                                  ports:
                                                                    description: List of ports exposed by the component's service.
                                                                    items:
                                                                      properties:
                                                                        name:
                                                                          type: string
                                                                        nodePort:
                                                                          format: int32
                                                                          type: integer
                                                                        port:
                                                                          format: int32
                                                                          type: integer
                                                                        protocol:
                                                                          type: string
                                                                        targetPort:
                                                                          properties:
                                                                            intVal:
                                                                              nullable: true
                                                                              type: integer
                                                                            strVal:
                                                                              nullable: true
                                                                              type: string
                                                                            type:
                                                                              type: integer
                                                                          type: object
                                                                      type: object
                                                                    type: array
                                                                  type:
                                                                    description: Determines how the Service is exposed.
                                                                    type: string
                                                                type: object
                                                              serviceAccount:
                                                                properties:
                                                                  imagePullSecrets:
                                                                    description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                                    items:
                                                                      properties:
                                                                        name:
                                                                          description: Name of the referent.
                                                                          type: string
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                            type: object
                                                          logLevels:
                                                            additionalProperties:
                                                              type: string
                                                            description: The log level configuration by scopes.
                                                            type: object
                                                        type: object
                                                    type: object
                                                type: object
                                            type: object
                                          name:
                                            description: Name of the IsolationBoundary.
                                            type: string
                                          revisions:
                                            description: Configure multiple Istio Revisions under the IsolationBoundary.
                                            items:
                                              properties:
                                                disable:
                                                  description: If set to `true`, Istio control plane deployment with this revision will be cleaned up from the cluster.
                                                  type: boolean
                                                istio:
                                                  description: Istio overlay configuration for the revision.
                                                  properties:
                                                    ambient:
                                                      properties:
                                                        enable:
                                                          nullable: true
                                                          type: boolean
                                                        waypoints:
                                                          properties:
                                                            clusterLevel:
                                                              description: Cluster-level waypoint configuration.
                                                              properties:
                                                                annotations:
                                                                  additionalProperties:
                                                                    type: string
                                                                  type: object
                                                                disableLabelManagement:
                                                                  description: If true, xcp will not apply/remove istio.io/use-waypoint label on/from the namespace of the ambient workloads.
                                                                  nullable: true
                                                                  type: boolean
                                                                enable:
                                                                  description: Enable or disable default waypoint deployment (default is true) This configuration can be made at both the cluster level and also at namespace level.
                                                                  nullable: true
                                                                  type: boolean
                                                                labels:
                                                                  additionalProperties:
                                                                    type: string
                                                                  description: 'Deprecated: Use overlays field to add labels, annotations, tolerations and resource requirements.'
                                                                  type: object
                                                                overlays:
                                                                  description: overlays can be used to fully customize waypoint deployments, services and hpa.
                                                                  x-kubernetes-preserve-unknown-fields: true
                                                                resources:
                                                                  properties:
                                                                    limits:
                                                                      additionalProperties:
                                                                        type: string
                                                                      type: object
                                                                    requests:
                                                                      additionalProperties:
                                                                        type: string
                                                                      type: object
                                                                  type: object
                                                                tolerations:
                                                                  additionalProperties:
                                                                    type: string
                                                                  type: object
                                                              type: object
                                                            namespaceLevel:
                                                              description: List of namespace-level waypoint configurations.
                                                              items:
                                                                oneOf:
                                                                  - not:
                                                                      anyOf:
                                                                        - required:
                                                                            - name
                                                                        - required:
                                                                            - selector
                                                                  - required:
                                                                      - name
                                                                  - required:
                                                                      - selector
                                                                properties:
                                                                  config:
                                                                    properties:
                                                                      annotations:
                                                                        additionalProperties:
                                                                          type: string
                                                                        type: object
                                                                      disableLabelManagement:
                                                                        description: If true, xcp will not apply/remove istio.io/use-waypoint label on/from the namespace of the ambient workloads.
                                                                        nullable: true
                                                                        type: boolean
                                                                      enable:
                                                                        description: Enable or disable default waypoint deployment (default is true) This configuration can be made at both the cluster level and also at namespace level.
                                                                        nullable: true
                                                                        type: boolean
                                                                      labels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: 'Deprecated: Use overlays field to add labels, annotations, tolerations and resource requirements.'
                                                                        type: object
                                                                      overlays:
                                                                        description: overlays can be used to fully customize waypoint deployments, services and hpa.
                                                                        x-kubernetes-preserve-unknown-fields: true
                                                                      resources:
                                                                        properties:
                                                                          limits:
                                                                            additionalProperties:
                                                                              type: string
                                                                            type: object
                                                                          requests:
                                                                            additionalProperties:
                                                                              type: string
                                                                            type: object
                                                                        type: object
                                                                      tolerations:
                                                                        additionalProperties:
                                                                          type: string
                                                                        type: object
                                                                    type: object
                                                                  name:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      labels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        type: object
                                                                    type: object
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    baseOverlays:
                                                      description: The overlays applied to the Istio base component.
                                                      items:
                                                        properties:
                                                          apiVersion:
                                                            description: Resource API version.
                                                            type: string
                                                          kind:
                                                            description: Resource kind.
                                                            type: string
                                                          name:
                                                            description: Name of resource.
                                                            type: string
                                                          patches:
                                                            description: List of patches to apply to resource.
                                                            items:
                                                              properties:
                                                                path:
                                                                  description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                                  type: string
                                                                value:
                                                                  description: Value to add, delete or replace.
                                                                  x-kubernetes-preserve-unknown-fields: true
                                                              type: object
                                                            type: array
                                                        type: object
                                                      type: array
                                                    cniOverlays:
                                                      description: The overlays applied to the Istio CNI component.
                                                      items:
                                                        properties:
                                                          apiVersion:
                                                            description: Resource API version.
                                                            type: string
                                                          kind:
                                                            description: Resource kind.
                                                            type: string
                                                          name:
                                                            description: Name of resource.
                                                            type: string
                                                          patches:
                                                            description: List of patches to apply to resource.
                                                            items:
                                                              properties:
                                                                path:
                                                                  description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                                  type: string
                                                                value:
                                                                  description: Value to add, delete or replace.
                                                                  x-kubernetes-preserve-unknown-fields: true
                                                              type: object
                                                            type: array
                                                        type: object
                                                      type: array
                                                    defaultWorkloadCertTTL:
                                                      description: The default TTL of issued workload certificates.
                                                      type: string
                                                    kubeSpec:
                                                      description: Configure Kubernetes specific settings.
                                                      properties:
                                                        CNI:
                                                          properties:
                                                            binaryDirectory:
                                                              description: Directory on the host to install the CNI binary.
                                                              type: string
                                                            chained:
                                                              description: Whether to deploy the configuration file as a plugin chain or as a standalone file in the configuration directory.
                                                              type: boolean
                                                            clusterRole:
                                                              description: The ClusterRole Istio CNI will bind to in the ControlPlane namespace.
                                                              type: string
                                                            cniDaemonsetNamespace:
                                                              description: The namespace where the Istio CNI DaemonSet is deployed.
                                                              type: string
                                                            configurationDirectory:
                                                              description: Directory on the host to install the CNI config.
                                                              type: string
                                                            configurationFileName:
                                                              description: Leave unset to auto-find the first file in the `cni-conf-dir` (as kubelet does).
                                                              type: string
                                                            revision:
                                                              description: The revisioned istio-operator that will reconcile the Istio CNI component.
                                                              type: string
                                                          type: object
                                                        deployment:
                                                          allOf:
                                                            - oneOf:
                                                                - not:
                                                                    anyOf:
                                                                      - required:
                                                                          - podSecurityContext
                                                                - required:
                                                                    - podSecurityContext
                                                            - oneOf:
                                                                - not:
                                                                    anyOf:
                                                                      - required:
                                                                          - containerSecurityContext
                                                                - required:
                                                                    - containerSecurityContext
                                                          properties:
                                                            affinity:
                                                              description: The scheduling constraints for the pod.
                                                              properties:
                                                                nodeAffinity:
                                                                  description: Group of node affinity scheduling rules.
                                                                  properties:
                                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                                      items:
                                                                        properties:
                                                                          preference:
                                                                            properties:
                                                                              matchExpressions:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchFields:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                            type: object
                                                                          weight:
                                                                            format: int32
                                                                            type: integer
                                                                        type: object
                                                                      type: array
                                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                                      properties:
                                                                        nodeSelectorTerms:
                                                                          items:
                                                                            properties:
                                                                              matchExpressions:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchFields:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                            type: object
                                                                          type: array
                                                                      type: object
                                                                  type: object
                                                                podAffinity:
                                                                  description: Group of inter-pod affinity scheduling rules.
                                                                  properties:
                                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          podAffinityTerm:
                                                                            properties:
                                                                              labelSelector:
                                                                                properties:
                                                                                  matchExpressions:
                                                                                    description: matchExpressions is a list of label selector requirements.
                                                                                    items:
                                                                                      properties:
                                                                                        key:
                                                                                          description: key is the label key that the selector applies to.
                                                                                          type: string
                                                                                        operator:
                                                                                          description: operator represents a key's relationship to a set of values.
                                                                                          type: string
                                                                                        values:
                                                                                          description: values is an array of string values.
                                                                                          items:
                                                                                            type: string
                                                                                          type: array
                                                                                      type: object
                                                                                    type: array
                                                                                  matchLabels:
                                                                                    additionalProperties:
                                                                                      type: string
                                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                                    type: object
                                                                                type: object
                                                                              namespaces:
                                                                                items:
                                                                                  type: string
                                                                                type: array
                                                                              topologyKey:
                                                                                type: string
                                                                            type: object
                                                                          weight:
                                                                            format: int32
                                                                            type: integer
                                                                        type: object
                                                                      type: array
                                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          labelSelector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          namespaces:
                                                                            items:
                                                                              type: string
                                                                            type: array
                                                                          topologyKey:
                                                                            type: string
                                                                        type: object
                                                                      type: array
                                                                  type: object
                                                                podAntiAffinity:
                                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                                  properties:
                                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          podAffinityTerm:
                                                                            properties:
                                                                              labelSelector:
                                                                                properties:
                                                                                  matchExpressions:
                                                                                    description: matchExpressions is a list of label selector requirements.
                                                                                    items:
                                                                                      properties:
                                                                                        key:
                                                                                          description: key is the label key that the selector applies to.
                                                                                          type: string
                                                                                        operator:
                                                                                          description: operator represents a key's relationship to a set of values.
                                                                                          type: string
                                                                                        values:
                                                                                          description: values is an array of string values.
                                                                                          items:
                                                                                            type: string
                                                                                          type: array
                                                                                      type: object
                                                                                    type: array
                                                                                  matchLabels:
                                                                                    additionalProperties:
                                                                                      type: string
                                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                                    type: object
                                                                                type: object
                                                                              namespaces:
                                                                                items:
                                                                                  type: string
                                                                                type: array
                                                                              topologyKey:
                                                                                type: string
                                                                            type: object
                                                                          weight:
                                                                            format: int32
                                                                            type: integer
                                                                        type: object
                                                                      type: array
                                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          labelSelector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          namespaces:
                                                                            items:
                                                                              type: string
                                                                            type: array
                                                                          topologyKey:
                                                                            type: string
                                                                        type: object
                                                                      type: array
                                                                  type: object
                                                              type: object
                                                            containerSecurityContext:
                                                              allOf:
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - capabilities
                                                                    - required:
                                                                        - capabilities
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - privileged
                                                                    - required:
                                                                        - privileged
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seLinuxOptions
                                                                    - required:
                                                                        - seLinuxOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - windowsOptions
                                                                    - required:
                                                                        - windowsOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsUser
                                                                    - required:
                                                                        - runAsUser
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsGroup
                                                                    - required:
                                                                        - runAsGroup
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsNonRoot
                                                                    - required:
                                                                        - runAsNonRoot
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - readOnlyRootFilesystem
                                                                    - required:
                                                                        - readOnlyRootFilesystem
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - allowPrivilegeEscalation
                                                                    - required:
                                                                        - allowPrivilegeEscalation
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - procMount
                                                                    - required:
                                                                        - procMount
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seccompProfile
                                                                    - required:
                                                                        - seccompProfile
                                                              properties:
                                                                allowPrivilegeEscalation:
                                                                  type: boolean
                                                                capabilities:
                                                                  properties:
                                                                    add:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                    drop:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                privileged:
                                                                  type: boolean
                                                                procMount:
                                                                  type: string
                                                                readOnlyRootFilesystem:
                                                                  type: boolean
                                                                runAsGroup:
                                                                  type: integer
                                                                runAsNonRoot:
                                                                  type: boolean
                                                                runAsUser:
                                                                  type: integer
                                                                seLinuxOptions:
                                                                  properties:
                                                                    level:
                                                                      type: string
                                                                    role:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                    user:
                                                                      type: string
                                                                  type: object
                                                                seccompProfile:
                                                                  properties:
                                                                    localhostProfile:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                  type: object
                                                                windowsOptions:
                                                                  properties:
                                                                    gmsaCredentialSpec:
                                                                      type: string
                                                                    gmsaCredentialSpecName:
                                                                      type: string
                                                                    runAsUserName:
                                                                      type: string
                                                                  type: object
                                                              type: object
                                                            env:
                                                              description: Environment variables for all containers in the deployment.
                                                              items:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  value:
                                                                    type: string
                                                                  valueFrom:
                                                                    properties:
                                                                      configMapKeyRef:
                                                                        properties:
                                                                          key:
                                                                            type: string
                                                                          localObjectReference:
                                                                            properties:
                                                                              name:
                                                                                description: Name of the referent.
                                                                                type: string
                                                                            type: object
                                                                          optional:
                                                                            type: boolean
                                                                        type: object
                                                                      fieldRef:
                                                                        properties:
                                                                          apiVersion:
                                                                            type: string
                                                                          fieldPath:
                                                                            type: string
                                                                        type: object
                                                                      resourceFieldRef:
                                                                        properties:
                                                                          containerName:
                                                                            type: string
                                                                          divisor:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          resource:
                                                                            type: string
                                                                        type: object
                                                                      secretKeyRef:
                                                                        properties:
                                                                          key:
                                                                            type: string
                                                                          localObjectReference:
                                                                            properties:
                                                                              name:
                                                                                description: Name of the referent.
                                                                                type: string
                                                                            type: object
                                                                          optional:
                                                                            type: boolean
                                                                        type: object
                                                                    type: object
                                                                type: object
                                                              type: array
                                                            hpaSpec:
                                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                              properties:
                                                                maxReplicas:
                                                                  format: int32
                                                                  type: integer
                                                                metrics:
                                                                  items:
                                                                    properties:
                                                                      external:
                                                                        properties:
                                                                          metricName:
                                                                            type: string
                                                                          metricSelector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          targetAverageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          targetValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      object:
                                                                        properties:
                                                                          averageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          metricName:
                                                                            type: string
                                                                          selector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          target:
                                                                            properties:
                                                                              apiVersion:
                                                                                type: string
                                                                              kind:
                                                                                type: string
                                                                              name:
                                                                                type: string
                                                                            type: object
                                                                          targetValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      pods:
                                                                        properties:
                                                                          metricName:
                                                                            type: string
                                                                          selector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          targetAverageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      resource:
                                                                        properties:
                                                                          name:
                                                                            type: string
                                                                          target:
                                                                            properties:
                                                                              averageUtilization:
                                                                                format: int32
                                                                                type: integer
                                                                              averageValue:
                                                                                properties:
                                                                                  intVal:
                                                                                    nullable: true
                                                                                    type: integer
                                                                                  strVal:
                                                                                    nullable: true
                                                                                    type: string
                                                                                  type:
                                                                                    type: integer
                                                                                type: object
                                                                              type:
                                                                                type: string
                                                                              value:
                                                                                properties:
                                                                                  intVal:
                                                                                    nullable: true
                                                                                    type: integer
                                                                                  strVal:
                                                                                    nullable: true
                                                                                    type: string
                                                                                  type:
                                                                                    type: integer
                                                                                type: object
                                                                            type: object
                                                                          targetAverageUtilization:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          targetAverageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                    type: object
                                                                  type: array
                                                                minReplicas:
                                                                  format: int32
                                                                  type: integer
                                                              type: object
                                                            labels:
                                                              additionalProperties:
                                                                type: string
                                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                                              type: object
                                                            podAnnotations:
                                                              additionalProperties:
                                                                type: string
                                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                              type: object
                                                            podSecurityContext:
                                                              allOf:
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seLinuxOptions
                                                                    - required:
                                                                        - seLinuxOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsUser
                                                                    - required:
                                                                        - runAsUser
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsNonRoot
                                                                    - required:
                                                                        - runAsNonRoot
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - fsGroup
                                                                    - required:
                                                                        - fsGroup
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsGroup
                                                                    - required:
                                                                        - runAsGroup
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - windowsOptions
                                                                    - required:
                                                                        - windowsOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - fsGroupChangePolicy
                                                                    - required:
                                                                        - fsGroupChangePolicy
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seccompProfile
                                                                    - required:
                                                                        - seccompProfile
                                                              properties:
                                                                fsGroup:
                                                                  type: integer
                                                                fsGroupChangePolicy:
                                                                  type: string
                                                                runAsGroup:
                                                                  type: integer
                                                                runAsNonRoot:
                                                                  type: boolean
                                                                runAsUser:
                                                                  type: integer
                                                                seLinuxOptions:
                                                                  properties:
                                                                    level:
                                                                      type: string
                                                                    role:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                    user:
                                                                      type: string
                                                                  type: object
                                                                seccompProfile:
                                                                  properties:
                                                                    localhostProfile:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                  type: object
                                                                supplementalGroups:
                                                                  items:
                                                                    type: integer
                                                                  type: array
                                                                sysctls:
                                                                  items:
                                                                    properties:
                                                                      name:
                                                                        type: string
                                                                      value:
                                                                        type: string
                                                                    type: object
                                                                  type: array
                                                                windowsOptions:
                                                                  properties:
                                                                    gmsaCredentialSpec:
                                                                      type: string
                                                                    gmsaCredentialSpecName:
                                                                      type: string
                                                                    runAsUserName:
                                                                      type: string
                                                                  type: object
                                                              type: object
                                                            replicaCount:
                                                              description: Number of desired pods.
                                                              type: integer
                                                            resources:
                                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                                              properties:
                                                                limits:
                                                                  additionalProperties:
                                                                    type: string
                                                                  type: object
                                                                requests:
                                                                  additionalProperties:
                                                                    type: string
                                                                  type: object
                                                              type: object
                                                            strategy:
                                                              description: The deployment strategy to use to replace existing pods with new ones.
                                                              properties:
                                                                rollingUpdate:
                                                                  properties:
                                                                    maxSurge:
                                                                      properties:
                                                                        intVal:
                                                                          nullable: true
                                                                          type: integer
                                                                        strVal:
                                                                          nullable: true
                                                                          type: string
                                                                        type:
                                                                          type: integer
                                                                      type: object
                                                                    maxUnavailable:
                                                                      properties:
                                                                        intVal:
                                                                          nullable: true
                                                                          type: integer
                                                                        strVal:
                                                                          nullable: true
                                                                          type: string
                                                                        type:
                                                                          type: integer
                                                                      type: object
                                                                  type: object
                                                                type:
                                                                  type: string
                                                              type: object
                                                            tolerations:
                                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                              items:
                                                                properties:
                                                                  effect:
                                                                    description: Effect indicates the taint effect to match.
                                                                    type: string
                                                                  key:
                                                                    description: Key is the taint key that the toleration applies to.
                                                                    type: string
                                                                  operator:
                                                                    description: Operator represents a key's relationship to the value.
                                                                    type: string
                                                                  tolerationSeconds:
                                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                                    type: integer
                                                                  value:
                                                                    description: Value is the taint value the toleration matches to.
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        istiodDeployment:
                                                          allOf:
                                                            - oneOf:
                                                                - not:
                                                                    anyOf:
                                                                      - required:
                                                                          - podSecurityContext
                                                                - required:
                                                                    - podSecurityContext
                                                            - oneOf:
                                                                - not:
                                                                    anyOf:
                                                                      - required:
                                                                          - containerSecurityContext
                                                                - required:
                                                                    - containerSecurityContext
                                                          properties:
                                                            affinity:
                                                              description: The scheduling constraints for the pod.
                                                              properties:
                                                                nodeAffinity:
                                                                  description: Group of node affinity scheduling rules.
                                                                  properties:
                                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                                      items:
                                                                        properties:
                                                                          preference:
                                                                            properties:
                                                                              matchExpressions:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchFields:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                            type: object
                                                                          weight:
                                                                            format: int32
                                                                            type: integer
                                                                        type: object
                                                                      type: array
                                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                                      properties:
                                                                        nodeSelectorTerms:
                                                                          items:
                                                                            properties:
                                                                              matchExpressions:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchFields:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                            type: object
                                                                          type: array
                                                                      type: object
                                                                  type: object
                                                                podAffinity:
                                                                  description: Group of inter-pod affinity scheduling rules.
                                                                  properties:
                                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          podAffinityTerm:
                                                                            properties:
                                                                              labelSelector:
                                                                                properties:
                                                                                  matchExpressions:
                                                                                    description: matchExpressions is a list of label selector requirements.
                                                                                    items:
                                                                                      properties:
                                                                                        key:
                                                                                          description: key is the label key that the selector applies to.
                                                                                          type: string
                                                                                        operator:
                                                                                          description: operator represents a key's relationship to a set of values.
                                                                                          type: string
                                                                                        values:
                                                                                          description: values is an array of string values.
                                                                                          items:
                                                                                            type: string
                                                                                          type: array
                                                                                      type: object
                                                                                    type: array
                                                                                  matchLabels:
                                                                                    additionalProperties:
                                                                                      type: string
                                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                                    type: object
                                                                                type: object
                                                                              namespaces:
                                                                                items:
                                                                                  type: string
                                                                                type: array
                                                                              topologyKey:
                                                                                type: string
                                                                            type: object
                                                                          weight:
                                                                            format: int32
                                                                            type: integer
                                                                        type: object
                                                                      type: array
                                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          labelSelector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          namespaces:
                                                                            items:
                                                                              type: string
                                                                            type: array
                                                                          topologyKey:
                                                                            type: string
                                                                        type: object
                                                                      type: array
                                                                  type: object
                                                                podAntiAffinity:
                                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                                  properties:
                                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          podAffinityTerm:
                                                                            properties:
                                                                              labelSelector:
                                                                                properties:
                                                                                  matchExpressions:
                                                                                    description: matchExpressions is a list of label selector requirements.
                                                                                    items:
                                                                                      properties:
                                                                                        key:
                                                                                          description: key is the label key that the selector applies to.
                                                                                          type: string
                                                                                        operator:
                                                                                          description: operator represents a key's relationship to a set of values.
                                                                                          type: string
                                                                                        values:
                                                                                          description: values is an array of string values.
                                                                                          items:
                                                                                            type: string
                                                                                          type: array
                                                                                      type: object
                                                                                    type: array
                                                                                  matchLabels:
                                                                                    additionalProperties:
                                                                                      type: string
                                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                                    type: object
                                                                                type: object
                                                                              namespaces:
                                                                                items:
                                                                                  type: string
                                                                                type: array
                                                                              topologyKey:
                                                                                type: string
                                                                            type: object
                                                                          weight:
                                                                            format: int32
                                                                            type: integer
                                                                        type: object
                                                                      type: array
                                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          labelSelector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          namespaces:
                                                                            items:
                                                                              type: string
                                                                            type: array
                                                                          topologyKey:
                                                                            type: string
                                                                        type: object
                                                                      type: array
                                                                  type: object
                                                              type: object
                                                            containerSecurityContext:
                                                              allOf:
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - capabilities
                                                                    - required:
                                                                        - capabilities
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - privileged
                                                                    - required:
                                                                        - privileged
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seLinuxOptions
                                                                    - required:
                                                                        - seLinuxOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - windowsOptions
                                                                    - required:
                                                                        - windowsOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsUser
                                                                    - required:
                                                                        - runAsUser
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsGroup
                                                                    - required:
                                                                        - runAsGroup
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsNonRoot
                                                                    - required:
                                                                        - runAsNonRoot
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - readOnlyRootFilesystem
                                                                    - required:
                                                                        - readOnlyRootFilesystem
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - allowPrivilegeEscalation
                                                                    - required:
                                                                        - allowPrivilegeEscalation
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - procMount
                                                                    - required:
                                                                        - procMount
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seccompProfile
                                                                    - required:
                                                                        - seccompProfile
                                                              properties:
                                                                allowPrivilegeEscalation:
                                                                  type: boolean
                                                                capabilities:
                                                                  properties:
                                                                    add:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                    drop:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                privileged:
                                                                  type: boolean
                                                                procMount:
                                                                  type: string
                                                                readOnlyRootFilesystem:
                                                                  type: boolean
                                                                runAsGroup:
                                                                  type: integer
                                                                runAsNonRoot:
                                                                  type: boolean
                                                                runAsUser:
                                                                  type: integer
                                                                seLinuxOptions:
                                                                  properties:
                                                                    level:
                                                                      type: string
                                                                    role:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                    user:
                                                                      type: string
                                                                  type: object
                                                                seccompProfile:
                                                                  properties:
                                                                    localhostProfile:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                  type: object
                                                                windowsOptions:
                                                                  properties:
                                                                    gmsaCredentialSpec:
                                                                      type: string
                                                                    gmsaCredentialSpecName:
                                                                      type: string
                                                                    runAsUserName:
                                                                      type: string
                                                                  type: object
                                                              type: object
                                                            env:
                                                              description: Environment variables for all containers in the deployment.
                                                              items:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  value:
                                                                    type: string
                                                                  valueFrom:
                                                                    properties:
                                                                      configMapKeyRef:
                                                                        properties:
                                                                          key:
                                                                            type: string
                                                                          localObjectReference:
                                                                            properties:
                                                                              name:
                                                                                description: Name of the referent.
                                                                                type: string
                                                                            type: object
                                                                          optional:
                                                                            type: boolean
                                                                        type: object
                                                                      fieldRef:
                                                                        properties:
                                                                          apiVersion:
                                                                            type: string
                                                                          fieldPath:
                                                                            type: string
                                                                        type: object
                                                                      resourceFieldRef:
                                                                        properties:
                                                                          containerName:
                                                                            type: string
                                                                          divisor:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          resource:
                                                                            type: string
                                                                        type: object
                                                                      secretKeyRef:
                                                                        properties:
                                                                          key:
                                                                            type: string
                                                                          localObjectReference:
                                                                            properties:
                                                                              name:
                                                                                description: Name of the referent.
                                                                                type: string
                                                                            type: object
                                                                          optional:
                                                                            type: boolean
                                                                        type: object
                                                                    type: object
                                                                type: object
                                                              type: array
                                                            hpaSpec:
                                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                              properties:
                                                                maxReplicas:
                                                                  format: int32
                                                                  type: integer
                                                                metrics:
                                                                  items:
                                                                    properties:
                                                                      external:
                                                                        properties:
                                                                          metricName:
                                                                            type: string
                                                                          metricSelector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          targetAverageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          targetValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      object:
                                                                        properties:
                                                                          averageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          metricName:
                                                                            type: string
                                                                          selector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          target:
                                                                            properties:
                                                                              apiVersion:
                                                                                type: string
                                                                              kind:
                                                                                type: string
                                                                              name:
                                                                                type: string
                                                                            type: object
                                                                          targetValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      pods:
                                                                        properties:
                                                                          metricName:
                                                                            type: string
                                                                          selector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          targetAverageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      resource:
                                                                        properties:
                                                                          name:
                                                                            type: string
                                                                          target:
                                                                            properties:
                                                                              averageUtilization:
                                                                                format: int32
                                                                                type: integer
                                                                              averageValue:
                                                                                properties:
                                                                                  intVal:
                                                                                    nullable: true
                                                                                    type: integer
                                                                                  strVal:
                                                                                    nullable: true
                                                                                    type: string
                                                                                  type:
                                                                                    type: integer
                                                                                type: object
                                                                              type:
                                                                                type: string
                                                                              value:
                                                                                properties:
                                                                                  intVal:
                                                                                    nullable: true
                                                                                    type: integer
                                                                                  strVal:
                                                                                    nullable: true
                                                                                    type: string
                                                                                  type:
                                                                                    type: integer
                                                                                type: object
                                                                            type: object
                                                                          targetAverageUtilization:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          targetAverageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                    type: object
                                                                  type: array
                                                                minReplicas:
                                                                  format: int32
                                                                  type: integer
                                                              type: object
                                                            labels:
                                                              additionalProperties:
                                                                type: string
                                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                                              type: object
                                                            podAnnotations:
                                                              additionalProperties:
                                                                type: string
                                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                              type: object
                                                            podSecurityContext:
                                                              allOf:
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seLinuxOptions
                                                                    - required:
                                                                        - seLinuxOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsUser
                                                                    - required:
                                                                        - runAsUser
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsNonRoot
                                                                    - required:
                                                                        - runAsNonRoot
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - fsGroup
                                                                    - required:
                                                                        - fsGroup
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsGroup
                                                                    - required:
                                                                        - runAsGroup
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - windowsOptions
                                                                    - required:
                                                                        - windowsOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - fsGroupChangePolicy
                                                                    - required:
                                                                        - fsGroupChangePolicy
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seccompProfile
                                                                    - required:
                                                                        - seccompProfile
                                                              properties:
                                                                fsGroup:
                                                                  type: integer
                                                                fsGroupChangePolicy:
                                                                  type: string
                                                                runAsGroup:
                                                                  type: integer
                                                                runAsNonRoot:
                                                                  type: boolean
                                                                runAsUser:
                                                                  type: integer
                                                                seLinuxOptions:
                                                                  properties:
                                                                    level:
                                                                      type: string
                                                                    role:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                    user:
                                                                      type: string
                                                                  type: object
                                                                seccompProfile:
                                                                  properties:
                                                                    localhostProfile:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                  type: object
                                                                supplementalGroups:
                                                                  items:
                                                                    type: integer
                                                                  type: array
                                                                sysctls:
                                                                  items:
                                                                    properties:
                                                                      name:
                                                                        type: string
                                                                      value:
                                                                        type: string
                                                                    type: object
                                                                  type: array
                                                                windowsOptions:
                                                                  properties:
                                                                    gmsaCredentialSpec:
                                                                      type: string
                                                                    gmsaCredentialSpecName:
                                                                      type: string
                                                                    runAsUserName:
                                                                      type: string
                                                                  type: object
                                                              type: object
                                                            replicaCount:
                                                              description: Number of desired pods.
                                                              type: integer
                                                            resources:
                                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                                              properties:
                                                                limits:
                                                                  additionalProperties:
                                                                    type: string
                                                                  type: object
                                                                requests:
                                                                  additionalProperties:
                                                                    type: string
                                                                  type: object
                                                              type: object
                                                            strategy:
                                                              description: The deployment strategy to use to replace existing pods with new ones.
                                                              properties:
                                                                rollingUpdate:
                                                                  properties:
                                                                    maxSurge:
                                                                      properties:
                                                                        intVal:
                                                                          nullable: true
                                                                          type: integer
                                                                        strVal:
                                                                          nullable: true
                                                                          type: string
                                                                        type:
                                                                          type: integer
                                                                      type: object
                                                                    maxUnavailable:
                                                                      properties:
                                                                        intVal:
                                                                          nullable: true
                                                                          type: integer
                                                                        strVal:
                                                                          nullable: true
                                                                          type: string
                                                                        type:
                                                                          type: integer
                                                                      type: object
                                                                  type: object
                                                                type:
                                                                  type: string
                                                              type: object
                                                            tolerations:
                                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                              items:
                                                                properties:
                                                                  effect:
                                                                    description: Effect indicates the taint effect to match.
                                                                    type: string
                                                                  key:
                                                                    description: Key is the taint key that the toleration applies to.
                                                                    type: string
                                                                  operator:
                                                                    description: Operator represents a key's relationship to the value.
                                                                    type: string
                                                                  tolerationSeconds:
                                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                                    type: integer
                                                                  value:
                                                                    description: Value is the taint value the toleration matches to.
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        operatorDeployment:
                                                          allOf:
                                                            - oneOf:
                                                                - not:
                                                                    anyOf:
                                                                      - required:
                                                                          - podSecurityContext
                                                                - required:
                                                                    - podSecurityContext
                                                            - oneOf:
                                                                - not:
                                                                    anyOf:
                                                                      - required:
                                                                          - containerSecurityContext
                                                                - required:
                                                                    - containerSecurityContext
                                                          properties:
                                                            affinity:
                                                              description: The scheduling constraints for the pod.
                                                              properties:
                                                                nodeAffinity:
                                                                  description: Group of node affinity scheduling rules.
                                                                  properties:
                                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                                      items:
                                                                        properties:
                                                                          preference:
                                                                            properties:
                                                                              matchExpressions:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchFields:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                            type: object
                                                                          weight:
                                                                            format: int32
                                                                            type: integer
                                                                        type: object
                                                                      type: array
                                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                                      properties:
                                                                        nodeSelectorTerms:
                                                                          items:
                                                                            properties:
                                                                              matchExpressions:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchFields:
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      type: string
                                                                                    operator:
                                                                                      type: string
                                                                                    values:
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                            type: object
                                                                          type: array
                                                                      type: object
                                                                  type: object
                                                                podAffinity:
                                                                  description: Group of inter-pod affinity scheduling rules.
                                                                  properties:
                                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          podAffinityTerm:
                                                                            properties:
                                                                              labelSelector:
                                                                                properties:
                                                                                  matchExpressions:
                                                                                    description: matchExpressions is a list of label selector requirements.
                                                                                    items:
                                                                                      properties:
                                                                                        key:
                                                                                          description: key is the label key that the selector applies to.
                                                                                          type: string
                                                                                        operator:
                                                                                          description: operator represents a key's relationship to a set of values.
                                                                                          type: string
                                                                                        values:
                                                                                          description: values is an array of string values.
                                                                                          items:
                                                                                            type: string
                                                                                          type: array
                                                                                      type: object
                                                                                    type: array
                                                                                  matchLabels:
                                                                                    additionalProperties:
                                                                                      type: string
                                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                                    type: object
                                                                                type: object
                                                                              namespaces:
                                                                                items:
                                                                                  type: string
                                                                                type: array
                                                                              topologyKey:
                                                                                type: string
                                                                            type: object
                                                                          weight:
                                                                            format: int32
                                                                            type: integer
                                                                        type: object
                                                                      type: array
                                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          labelSelector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          namespaces:
                                                                            items:
                                                                              type: string
                                                                            type: array
                                                                          topologyKey:
                                                                            type: string
                                                                        type: object
                                                                      type: array
                                                                  type: object
                                                                podAntiAffinity:
                                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                                  properties:
                                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          podAffinityTerm:
                                                                            properties:
                                                                              labelSelector:
                                                                                properties:
                                                                                  matchExpressions:
                                                                                    description: matchExpressions is a list of label selector requirements.
                                                                                    items:
                                                                                      properties:
                                                                                        key:
                                                                                          description: key is the label key that the selector applies to.
                                                                                          type: string
                                                                                        operator:
                                                                                          description: operator represents a key's relationship to a set of values.
                                                                                          type: string
                                                                                        values:
                                                                                          description: values is an array of string values.
                                                                                          items:
                                                                                            type: string
                                                                                          type: array
                                                                                      type: object
                                                                                    type: array
                                                                                  matchLabels:
                                                                                    additionalProperties:
                                                                                      type: string
                                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                                    type: object
                                                                                type: object
                                                                              namespaces:
                                                                                items:
                                                                                  type: string
                                                                                type: array
                                                                              topologyKey:
                                                                                type: string
                                                                            type: object
                                                                          weight:
                                                                            format: int32
                                                                            type: integer
                                                                        type: object
                                                                      type: array
                                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                                      items:
                                                                        properties:
                                                                          labelSelector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          namespaces:
                                                                            items:
                                                                              type: string
                                                                            type: array
                                                                          topologyKey:
                                                                            type: string
                                                                        type: object
                                                                      type: array
                                                                  type: object
                                                              type: object
                                                            containerSecurityContext:
                                                              allOf:
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - capabilities
                                                                    - required:
                                                                        - capabilities
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - privileged
                                                                    - required:
                                                                        - privileged
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seLinuxOptions
                                                                    - required:
                                                                        - seLinuxOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - windowsOptions
                                                                    - required:
                                                                        - windowsOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsUser
                                                                    - required:
                                                                        - runAsUser
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsGroup
                                                                    - required:
                                                                        - runAsGroup
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsNonRoot
                                                                    - required:
                                                                        - runAsNonRoot
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - readOnlyRootFilesystem
                                                                    - required:
                                                                        - readOnlyRootFilesystem
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - allowPrivilegeEscalation
                                                                    - required:
                                                                        - allowPrivilegeEscalation
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - procMount
                                                                    - required:
                                                                        - procMount
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seccompProfile
                                                                    - required:
                                                                        - seccompProfile
                                                              properties:
                                                                allowPrivilegeEscalation:
                                                                  type: boolean
                                                                capabilities:
                                                                  properties:
                                                                    add:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                    drop:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                privileged:
                                                                  type: boolean
                                                                procMount:
                                                                  type: string
                                                                readOnlyRootFilesystem:
                                                                  type: boolean
                                                                runAsGroup:
                                                                  type: integer
                                                                runAsNonRoot:
                                                                  type: boolean
                                                                runAsUser:
                                                                  type: integer
                                                                seLinuxOptions:
                                                                  properties:
                                                                    level:
                                                                      type: string
                                                                    role:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                    user:
                                                                      type: string
                                                                  type: object
                                                                seccompProfile:
                                                                  properties:
                                                                    localhostProfile:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                  type: object
                                                                windowsOptions:
                                                                  properties:
                                                                    gmsaCredentialSpec:
                                                                      type: string
                                                                    gmsaCredentialSpecName:
                                                                      type: string
                                                                    runAsUserName:
                                                                      type: string
                                                                  type: object
                                                              type: object
                                                            env:
                                                              description: Environment variables for all containers in the deployment.
                                                              items:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  value:
                                                                    type: string
                                                                  valueFrom:
                                                                    properties:
                                                                      configMapKeyRef:
                                                                        properties:
                                                                          key:
                                                                            type: string
                                                                          localObjectReference:
                                                                            properties:
                                                                              name:
                                                                                description: Name of the referent.
                                                                                type: string
                                                                            type: object
                                                                          optional:
                                                                            type: boolean
                                                                        type: object
                                                                      fieldRef:
                                                                        properties:
                                                                          apiVersion:
                                                                            type: string
                                                                          fieldPath:
                                                                            type: string
                                                                        type: object
                                                                      resourceFieldRef:
                                                                        properties:
                                                                          containerName:
                                                                            type: string
                                                                          divisor:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          resource:
                                                                            type: string
                                                                        type: object
                                                                      secretKeyRef:
                                                                        properties:
                                                                          key:
                                                                            type: string
                                                                          localObjectReference:
                                                                            properties:
                                                                              name:
                                                                                description: Name of the referent.
                                                                                type: string
                                                                            type: object
                                                                          optional:
                                                                            type: boolean
                                                                        type: object
                                                                    type: object
                                                                type: object
                                                              type: array
                                                            hpaSpec:
                                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                              properties:
                                                                maxReplicas:
                                                                  format: int32
                                                                  type: integer
                                                                metrics:
                                                                  items:
                                                                    properties:
                                                                      external:
                                                                        properties:
                                                                          metricName:
                                                                            type: string
                                                                          metricSelector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          targetAverageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          targetValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      object:
                                                                        properties:
                                                                          averageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          metricName:
                                                                            type: string
                                                                          selector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          target:
                                                                            properties:
                                                                              apiVersion:
                                                                                type: string
                                                                              kind:
                                                                                type: string
                                                                              name:
                                                                                type: string
                                                                            type: object
                                                                          targetValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      pods:
                                                                        properties:
                                                                          metricName:
                                                                            type: string
                                                                          selector:
                                                                            properties:
                                                                              matchExpressions:
                                                                                description: matchExpressions is a list of label selector requirements.
                                                                                items:
                                                                                  properties:
                                                                                    key:
                                                                                      description: key is the label key that the selector applies to.
                                                                                      type: string
                                                                                    operator:
                                                                                      description: operator represents a key's relationship to a set of values.
                                                                                      type: string
                                                                                    values:
                                                                                      description: values is an array of string values.
                                                                                      items:
                                                                                        type: string
                                                                                      type: array
                                                                                  type: object
                                                                                type: array
                                                                              matchLabels:
                                                                                additionalProperties:
                                                                                  type: string
                                                                                description: matchLabels is a map of {key,value} pairs.
                                                                                type: object
                                                                            type: object
                                                                          targetAverageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      resource:
                                                                        properties:
                                                                          name:
                                                                            type: string
                                                                          target:
                                                                            properties:
                                                                              averageUtilization:
                                                                                format: int32
                                                                                type: integer
                                                                              averageValue:
                                                                                properties:
                                                                                  intVal:
                                                                                    nullable: true
                                                                                    type: integer
                                                                                  strVal:
                                                                                    nullable: true
                                                                                    type: string
                                                                                  type:
                                                                                    type: integer
                                                                                type: object
                                                                              type:
                                                                                type: string
                                                                              value:
                                                                                properties:
                                                                                  intVal:
                                                                                    nullable: true
                                                                                    type: integer
                                                                                  strVal:
                                                                                    nullable: true
                                                                                    type: string
                                                                                  type:
                                                                                    type: integer
                                                                                type: object
                                                                            type: object
                                                                          targetAverageUtilization:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                          targetAverageValue:
                                                                            properties:
                                                                              intVal:
                                                                                nullable: true
                                                                                type: integer
                                                                              strVal:
                                                                                nullable: true
                                                                                type: string
                                                                              type:
                                                                                type: integer
                                                                            type: object
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                    type: object
                                                                  type: array
                                                                minReplicas:
                                                                  format: int32
                                                                  type: integer
                                                              type: object
                                                            labels:
                                                              additionalProperties:
                                                                type: string
                                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                                              type: object
                                                            podAnnotations:
                                                              additionalProperties:
                                                                type: string
                                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                              type: object
                                                            podSecurityContext:
                                                              allOf:
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seLinuxOptions
                                                                    - required:
                                                                        - seLinuxOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsUser
                                                                    - required:
                                                                        - runAsUser
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsNonRoot
                                                                    - required:
                                                                        - runAsNonRoot
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - fsGroup
                                                                    - required:
                                                                        - fsGroup
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - runAsGroup
                                                                    - required:
                                                                        - runAsGroup
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - windowsOptions
                                                                    - required:
                                                                        - windowsOptions
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - fsGroupChangePolicy
                                                                    - required:
                                                                        - fsGroupChangePolicy
                                                                - oneOf:
                                                                    - not:
                                                                        anyOf:
                                                                          - required:
                                                                              - seccompProfile
                                                                    - required:
                                                                        - seccompProfile
                                                              properties:
                                                                fsGroup:
                                                                  type: integer
                                                                fsGroupChangePolicy:
                                                                  type: string
                                                                runAsGroup:
                                                                  type: integer
                                                                runAsNonRoot:
                                                                  type: boolean
                                                                runAsUser:
                                                                  type: integer
                                                                seLinuxOptions:
                                                                  properties:
                                                                    level:
                                                                      type: string
                                                                    role:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                    user:
                                                                      type: string
                                                                  type: object
                                                                seccompProfile:
                                                                  properties:
                                                                    localhostProfile:
                                                                      type: string
                                                                    type:
                                                                      type: string
                                                                  type: object
                                                                supplementalGroups:
                                                                  items:
                                                                    type: integer
                                                                  type: array
                                                                sysctls:
                                                                  items:
                                                                    properties:
                                                                      name:
                                                                        type: string
                                                                      value:
                                                                        type: string
                                                                    type: object
                                                                  type: array
                                                                windowsOptions:
                                                                  properties:
                                                                    gmsaCredentialSpec:
                                                                      type: string
                                                                    gmsaCredentialSpecName:
                                                                      type: string
                                                                    runAsUserName:
                                                                      type: string
                                                                  type: object
                                                              type: object
                                                            replicaCount:
                                                              description: Number of desired pods.
                                                              type: integer
                                                            resources:
                                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                                              properties:
                                                                limits:
                                                                  additionalProperties:
                                                                    type: string
                                                                  type: object
                                                                requests:
                                                                  additionalProperties:
                                                                    type: string
                                                                  type: object
                                                              type: object
                                                            strategy:
                                                              description: The deployment strategy to use to replace existing pods with new ones.
                                                              properties:
                                                                rollingUpdate:
                                                                  properties:
                                                                    maxSurge:
                                                                      properties:
                                                                        intVal:
                                                                          nullable: true
                                                                          type: integer
                                                                        strVal:
                                                                          nullable: true
                                                                          type: string
                                                                        type:
                                                                          type: integer
                                                                      type: object
                                                                    maxUnavailable:
                                                                      properties:
                                                                        intVal:
                                                                          nullable: true
                                                                          type: integer
                                                                        strVal:
                                                                          nullable: true
                                                                          type: string
                                                                        type:
                                                                          type: integer
                                                                      type: object
                                                                  type: object
                                                                type:
                                                                  type: string
                                                              type: object
                                                            tolerations:
                                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                              items:
                                                                properties:
                                                                  effect:
                                                                    description: Effect indicates the taint effect to match.
                                                                    type: string
                                                                  key:
                                                                    description: Key is the taint key that the toleration applies to.
                                                                    type: string
                                                                  operator:
                                                                    description: Operator represents a key's relationship to the value.
                                                                    type: string
                                                                  tolerationSeconds:
                                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                                    type: integer
                                                                  value:
                                                                    description: Value is the taint value the toleration matches to.
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        overlays:
                                                          items:
                                                            properties:
                                                              apiVersion:
                                                                description: Resource API version.
                                                                type: string
                                                              kind:
                                                                description: Resource kind.
                                                                type: string
                                                              name:
                                                                description: Name of resource.
                                                                type: string
                                                              patches:
                                                                description: List of patches to apply to resource.
                                                                items:
                                                                  properties:
                                                                    path:
                                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                                      type: string
                                                                    value:
                                                                      description: Value to add, delete or replace.
                                                                      x-kubernetes-preserve-unknown-fields: true
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                        service:
                                                          properties:
                                                            annotations:
                                                              additionalProperties:
                                                                type: string
                                                              description: Pod annotations are an unstructured key value map stored with the service.
                                                              type: object
                                                            labels:
                                                              additionalProperties:
                                                                type: string
                                                              description: Labels are an unstructured key value map stored with the deployment.
                                                              type: object
                                                            ports:
                                                              description: List of ports exposed by the component's service.
                                                              items:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  nodePort:
                                                                    format: int32
                                                                    type: integer
                                                                  port:
                                                                    format: int32
                                                                    type: integer
                                                                  protocol:
                                                                    type: string
                                                                  targetPort:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              type: array
                                                            type:
                                                              description: Determines how the Service is exposed.
                                                              type: string
                                                          type: object
                                                        serviceAccount:
                                                          properties:
                                                            imagePullSecrets:
                                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                              items:
                                                                properties:
                                                                  name:
                                                                    description: Name of the referent.
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    logLevels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Specifies the global logging level settings for the Istio control plane components.
                                                      type: object
                                                    maxWorkloadCertTTL:
                                                      description: The maximum TTL that can be set in issued workload certificates.
                                                      type: string
                                                    mountInternalWasmExtensions:
                                                      description: When this flag is set, the TSB internal WASM extensions will be mounted into the Sidecar, Ingress and Egress gateway pods automatically.
                                                      nullable: true
                                                      type: boolean
                                                    pilotOverlays:
                                                      description: The overlays applied to the Istio pilot component.
                                                      items:
                                                        properties:
                                                          apiVersion:
                                                            description: Resource API version.
                                                            type: string
                                                          kind:
                                                            description: Resource kind.
                                                            type: string
                                                          name:
                                                            description: Name of resource.
                                                            type: string
                                                          patches:
                                                            description: List of patches to apply to resource.
                                                            items:
                                                              properties:
                                                                path:
                                                                  description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                                  type: string
                                                                value:
                                                                  description: Value to add, delete or replace.
                                                                  x-kubernetes-preserve-unknown-fields: true
                                                              type: object
                                                            type: array
                                                        type: object
                                                      type: array
                                                    traceSamplingRate:
                                                      description: The percentage of traces Envoy will sample.
                                                      format: double
                                                      type: number
                                                    trustDomain:
                                                      description: The trust domain corresponds to the trust root of a system.
                                                      type: string
                                                    tsbVersion:
                                                      description: Specifies the tsb release version.
                                                      type: string
                                                  type: object
                                                name:
                                                  description: Name of the IstioRevision.
                                                  type: string
                                              required:
                                                - name
                                                - istio
                                              type: object
                                            type: array
                                        required:
                                          - name
                                          - revisions
                                        type: object
                                      type: array
                                    kubeSpec:
                                      properties:
                                        deployment:
                                          allOf:
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - podSecurityContext
                                                - required:
                                                    - podSecurityContext
                                            - oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - containerSecurityContext
                                                - required:
                                                    - containerSecurityContext
                                          properties:
                                            affinity:
                                              description: The scheduling constraints for the pod.
                                              properties:
                                                nodeAffinity:
                                                  description: Group of node affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                      items:
                                                        properties:
                                                          preference:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      properties:
                                                        nodeSelectorTerms:
                                                          items:
                                                            properties:
                                                              matchExpressions:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchFields:
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      type: string
                                                                    operator:
                                                                      type: string
                                                                    values:
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                podAffinity:
                                                  description: Group of inter-pod affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                podAntiAffinity:
                                                  description: Group of inter-pod anti-affinity scheduling rules.
                                                  properties:
                                                    preferredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          podAffinityTerm:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          weight:
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      type: array
                                                    requiredDuringSchedulingIgnoredDuringExecution:
                                                      items:
                                                        properties:
                                                          labelSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          namespaces:
                                                            items:
                                                              type: string
                                                            type: array
                                                          topologyKey:
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            containerSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - capabilities
                                                    - required:
                                                        - capabilities
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - privileged
                                                    - required:
                                                        - privileged
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - readOnlyRootFilesystem
                                                    - required:
                                                        - readOnlyRootFilesystem
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - allowPrivilegeEscalation
                                                    - required:
                                                        - allowPrivilegeEscalation
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - procMount
                                                    - required:
                                                        - procMount
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                allowPrivilegeEscalation:
                                                  type: boolean
                                                capabilities:
                                                  properties:
                                                    add:
                                                      items:
                                                        type: string
                                                      type: array
                                                    drop:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                privileged:
                                                  type: boolean
                                                procMount:
                                                  type: string
                                                readOnlyRootFilesystem:
                                                  type: boolean
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            env:
                                              description: Environment variables for all containers in the deployment.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                  valueFrom:
                                                    properties:
                                                      configMapKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        type: object
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          resource:
                                                            type: string
                                                        type: object
                                                      secretKeyRef:
                                                        properties:
                                                          key:
                                                            type: string
                                                          localObjectReference:
                                                            properties:
                                                              name:
                                                                description: Name of the referent.
                                                                type: string
                                                            type: object
                                                          optional:
                                                            type: boolean
                                                        type: object
                                                    type: object
                                                type: object
                                              type: array
                                            hpaSpec:
                                              description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                              properties:
                                                maxReplicas:
                                                  format: int32
                                                  type: integer
                                                metrics:
                                                  items:
                                                    properties:
                                                      external:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          metricSelector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      object:
                                                        properties:
                                                          averageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          target:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              kind:
                                                                type: string
                                                              name:
                                                                type: string
                                                            type: object
                                                          targetValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      pods:
                                                        properties:
                                                          metricName:
                                                            type: string
                                                          selector:
                                                            properties:
                                                              matchExpressions:
                                                                description: matchExpressions is a list of label selector requirements.
                                                                items:
                                                                  properties:
                                                                    key:
                                                                      description: key is the label key that the selector applies to.
                                                                      type: string
                                                                    operator:
                                                                      description: operator represents a key's relationship to a set of values.
                                                                      type: string
                                                                    values:
                                                                      description: values is an array of string values.
                                                                      items:
                                                                        type: string
                                                                      type: array
                                                                  type: object
                                                                type: array
                                                              matchLabels:
                                                                additionalProperties:
                                                                  type: string
                                                                description: matchLabels is a map of {key,value} pairs.
                                                                type: object
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      resource:
                                                        properties:
                                                          name:
                                                            type: string
                                                          target:
                                                            properties:
                                                              averageUtilization:
                                                                format: int32
                                                                type: integer
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              type:
                                                                type: string
                                                              value:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          targetAverageUtilization:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                          targetAverageValue:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type:
                                                        type: string
                                                    type: object
                                                  type: array
                                                minReplicas:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key-value map stored with the Deployment.
                                              type: object
                                            podAnnotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                              type: object
                                            podSecurityContext:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seLinuxOptions
                                                    - required:
                                                        - seLinuxOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsUser
                                                    - required:
                                                        - runAsUser
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsNonRoot
                                                    - required:
                                                        - runAsNonRoot
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroup
                                                    - required:
                                                        - fsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - runAsGroup
                                                    - required:
                                                        - runAsGroup
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - windowsOptions
                                                    - required:
                                                        - windowsOptions
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - fsGroupChangePolicy
                                                    - required:
                                                        - fsGroupChangePolicy
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - seccompProfile
                                                    - required:
                                                        - seccompProfile
                                              properties:
                                                fsGroup:
                                                  type: integer
                                                fsGroupChangePolicy:
                                                  type: string
                                                runAsGroup:
                                                  type: integer
                                                runAsNonRoot:
                                                  type: boolean
                                                runAsUser:
                                                  type: integer
                                                seLinuxOptions:
                                                  properties:
                                                    level:
                                                      type: string
                                                    role:
                                                      type: string
                                                    type:
                                                      type: string
                                                    user:
                                                      type: string
                                                  type: object
                                                seccompProfile:
                                                  properties:
                                                    localhostProfile:
                                                      type: string
                                                    type:
                                                      type: string
                                                  type: object
                                                supplementalGroups:
                                                  items:
                                                    type: integer
                                                  type: array
                                                sysctls:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    type: object
                                                  type: array
                                                windowsOptions:
                                                  properties:
                                                    gmsaCredentialSpec:
                                                      type: string
                                                    gmsaCredentialSpecName:
                                                      type: string
                                                    runAsUserName:
                                                      type: string
                                                  type: object
                                              type: object
                                            replicaCount:
                                              description: Number of desired pods.
                                              type: integer
                                            resources:
                                              description: Compute Resources required by the primary container in the deployment PodSpec.
                                              properties:
                                                limits:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            strategy:
                                              description: The deployment strategy to use to replace existing pods with new ones.
                                              properties:
                                                rollingUpdate:
                                                  properties:
                                                    maxSurge:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                    maxUnavailable:
                                                      properties:
                                                        intVal:
                                                          nullable: true
                                                          type: integer
                                                        strVal:
                                                          nullable: true
                                                          type: string
                                                        type:
                                                          type: integer
                                                      type: object
                                                  type: object
                                                type:
                                                  type: string
                                              type: object
                                            tolerations:
                                              description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                              items:
                                                properties:
                                                  effect:
                                                    description: Effect indicates the taint effect to match.
                                                    type: string
                                                  key:
                                                    description: Key is the taint key that the toleration applies to.
                                                    type: string
                                                  operator:
                                                    description: Operator represents a key's relationship to the value.
                                                    type: string
                                                  tolerationSeconds:
                                                    description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                    type: integer
                                                  value:
                                                    description: Value is the taint value the toleration matches to.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                        overlays:
                                          items:
                                            properties:
                                              apiVersion:
                                                description: Resource API version.
                                                type: string
                                              kind:
                                                description: Resource kind.
                                                type: string
                                              name:
                                                description: Name of resource.
                                                type: string
                                              patches:
                                                description: List of patches to apply to resource.
                                                items:
                                                  properties:
                                                    path:
                                                      description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                      type: string
                                                    value:
                                                      description: Value to add, delete or replace.
                                                      x-kubernetes-preserve-unknown-fields: true
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                        service:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              description: Pod annotations are an unstructured key value map stored with the service.
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              description: Labels are an unstructured key value map stored with the deployment.
                                              type: object
                                            ports:
                                              description: List of ports exposed by the component's service.
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  nodePort:
                                                    format: int32
                                                    type: integer
                                                  port:
                                                    format: int32
                                                    type: integer
                                                  protocol:
                                                    type: string
                                                  targetPort:
                                                    properties:
                                                      intVal:
                                                        nullable: true
                                                        type: integer
                                                      strVal:
                                                        nullable: true
                                                        type: string
                                                      type:
                                                        type: integer
                                                    type: object
                                                type: object
                                              type: array
                                            type:
                                              description: Determines how the Service is exposed.
                                              type: string
                                          type: object
                                        serviceAccount:
                                          properties:
                                            imagePullSecrets:
                                              description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                              items:
                                                properties:
                                                  name:
                                                    description: Name of the referent.
                                                    type: string
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    logLevels:
                                      additionalProperties:
                                        type: string
                                      description: Loglevel for XCP.
                                      type: object
                                    remoteDiagnostic:
                                      description: Remote Diagnostic settings on the Control Plane side.
                                      properties:
                                        enabled:
                                          description: Enable Remote Diagnostic on the Control Plane side.
                                          nullable: true
                                          type: boolean
                                      type: object
                                    revision:
                                      type: string
                                  type: object
                              type: object
                            hub:
                              description: TSB container hub path e.g.
                              type: string
                            imagePullSecrets:
                              description: Pull secrets can be specified globally for all components, or defined into the `kubeSpec.serviceAccount` of every component if needed.
                              items:
                                properties:
                                  name:
                                    description: Name of the referent.
                                    type: string
                                type: object
                              type: array
                            managementPlane:
                              description: Configure the management plane to retrieve configuration from.
                              properties:
                                clusterName:
                                  description: The name of the Cluster object that was created in the Management Plane representing this Control Plane cluster.
                                  type: string
                                host:
                                  description: Management plane host address (can be hostname or IPv4/IPv6 address).
                                  type: string
                                port:
                                  description: Port management plane is listening on.
                                  format: int32
                                  type: integer
                                selfSigned:
                                  description: Management plane uses a self signed or private TLS certificate.
                                  type: boolean
                              required:
                                - host
                                - port
                                - clusterName
                              type: object
                            meshExpansion:
                              description: Configure mesh expansion to connect workloads external to Kubernetes to the mesh.
                              properties:
                                customGateway:
                                  description: A custom mesh expansion gateway.
                                  properties:
                                    host:
                                      description: Mesh expansion gateway host address (can be hostname or IP address).
                                      type: string
                                    port:
                                      description: Port mesh expansion gateway is listening on.
                                      format: int32
                                      type: integer
                                  required:
                                    - host
                                    - port
                                  type: object
                                hostManagement:
                                  description: 'EXPERIMENTAL: Settings for the `Tetrate Host Management` component.'
                                  properties:
                                    agent:
                                      description: Settings for the `Tetrate Host Management Agent`.
                                      properties:
                                        version:
                                          description: Version of the `Tetrate Host Management Agent` to use.
                                          type: string
                                      type: object
                                    enabled:
                                      description: To install the component, set the value to `true`.
                                      nullable: true
                                      type: boolean
                                    endpoint:
                                      description: Configuration of the endpoint exposing `Host Management API` to `Host Management Agents`.
                                      properties:
                                        hasNoDnsRecord:
                                          description: To configure `Agents` to connect to the `Host Management Endpoint` using an address of the k8s Service rather than host name, set the value to `true`.
                                          nullable: true
                                          type: boolean
                                        hosts:
                                          description: List of hosts included in the TLS certificate.
                                          items:
                                            type: string
                                          type: array
                                        secretName:
                                          description: Name of the secret that holds TLS certificate chain and private key.
                                          type: string
                                      required:
                                        - hosts
                                        - secretName
                                      type: object
                                    plane:
                                      description: Configure `Tetrate Host Management Plane` component.
                                      properties:
                                        kubeSpec:
                                          description: Configure Kubernetes specific settings.
                                          properties:
                                            deployment:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - podSecurityContext
                                                    - required:
                                                        - podSecurityContext
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - containerSecurityContext
                                                    - required:
                                                        - containerSecurityContext
                                              properties:
                                                affinity:
                                                  description: The scheduling constraints for the pod.
                                                  properties:
                                                    nodeAffinity:
                                                      description: Group of node affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                          items:
                                                            properties:
                                                              preference:
                                                                properties:
                                                                  matchExpressions:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchFields:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          properties:
                                                            nodeSelectorTerms:
                                                              items:
                                                                properties:
                                                                  matchExpressions:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchFields:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    podAffinity:
                                                      description: Group of inter-pod affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              podAffinityTerm:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          type: array
                                                      type: object
                                                    podAntiAffinity:
                                                      description: Group of inter-pod anti-affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              podAffinityTerm:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                containerSecurityContext:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - capabilities
                                                        - required:
                                                            - capabilities
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - privileged
                                                        - required:
                                                            - privileged
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seLinuxOptions
                                                        - required:
                                                            - seLinuxOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - windowsOptions
                                                        - required:
                                                            - windowsOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsUser
                                                        - required:
                                                            - runAsUser
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsGroup
                                                        - required:
                                                            - runAsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsNonRoot
                                                        - required:
                                                            - runAsNonRoot
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - readOnlyRootFilesystem
                                                        - required:
                                                            - readOnlyRootFilesystem
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - allowPrivilegeEscalation
                                                        - required:
                                                            - allowPrivilegeEscalation
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - procMount
                                                        - required:
                                                            - procMount
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seccompProfile
                                                        - required:
                                                            - seccompProfile
                                                  properties:
                                                    allowPrivilegeEscalation:
                                                      type: boolean
                                                    capabilities:
                                                      properties:
                                                        add:
                                                          items:
                                                            type: string
                                                          type: array
                                                        drop:
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    privileged:
                                                      type: boolean
                                                    procMount:
                                                      type: string
                                                    readOnlyRootFilesystem:
                                                      type: boolean
                                                    runAsGroup:
                                                      type: integer
                                                    runAsNonRoot:
                                                      type: boolean
                                                    runAsUser:
                                                      type: integer
                                                    seLinuxOptions:
                                                      properties:
                                                        level:
                                                          type: string
                                                        role:
                                                          type: string
                                                        type:
                                                          type: string
                                                        user:
                                                          type: string
                                                      type: object
                                                    seccompProfile:
                                                      properties:
                                                        localhostProfile:
                                                          type: string
                                                        type:
                                                          type: string
                                                      type: object
                                                    windowsOptions:
                                                      properties:
                                                        gmsaCredentialSpec:
                                                          type: string
                                                        gmsaCredentialSpecName:
                                                          type: string
                                                        runAsUserName:
                                                          type: string
                                                      type: object
                                                  type: object
                                                env:
                                                  description: Environment variables for all containers in the deployment.
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                      valueFrom:
                                                        properties:
                                                          configMapKeyRef:
                                                            properties:
                                                              key:
                                                                type: string
                                                              localObjectReference:
                                                                properties:
                                                                  name:
                                                                    description: Name of the referent.
                                                                    type: string
                                                                type: object
                                                              optional:
                                                                type: boolean
                                                            type: object
                                                          fieldRef:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              fieldPath:
                                                                type: string
                                                            type: object
                                                          resourceFieldRef:
                                                            properties:
                                                              containerName:
                                                                type: string
                                                              divisor:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              resource:
                                                                type: string
                                                            type: object
                                                          secretKeyRef:
                                                            properties:
                                                              key:
                                                                type: string
                                                              localObjectReference:
                                                                properties:
                                                                  name:
                                                                    description: Name of the referent.
                                                                    type: string
                                                                type: object
                                                              optional:
                                                                type: boolean
                                                            type: object
                                                        type: object
                                                    type: object
                                                  type: array
                                                hpaSpec:
                                                  description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                  properties:
                                                    maxReplicas:
                                                      format: int32
                                                      type: integer
                                                    metrics:
                                                      items:
                                                        properties:
                                                          external:
                                                            properties:
                                                              metricName:
                                                                type: string
                                                              metricSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              targetValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          object:
                                                            properties:
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              metricName:
                                                                type: string
                                                              selector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              target:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  kind:
                                                                    type: string
                                                                  name:
                                                                    type: string
                                                                type: object
                                                              targetValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          pods:
                                                            properties:
                                                              metricName:
                                                                type: string
                                                              selector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          resource:
                                                            properties:
                                                              name:
                                                                type: string
                                                              target:
                                                                properties:
                                                                  averageUtilization:
                                                                    format: int32
                                                                    type: integer
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  type:
                                                                    type: string
                                                                  value:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              targetAverageUtilization:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          type:
                                                            type: string
                                                        type: object
                                                      type: array
                                                    minReplicas:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  description: Labels are an unstructured key-value map stored with the Deployment.
                                                  type: object
                                                podAnnotations:
                                                  additionalProperties:
                                                    type: string
                                                  description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                  type: object
                                                podSecurityContext:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seLinuxOptions
                                                        - required:
                                                            - seLinuxOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsUser
                                                        - required:
                                                            - runAsUser
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsNonRoot
                                                        - required:
                                                            - runAsNonRoot
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - fsGroup
                                                        - required:
                                                            - fsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsGroup
                                                        - required:
                                                            - runAsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - windowsOptions
                                                        - required:
                                                            - windowsOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - fsGroupChangePolicy
                                                        - required:
                                                            - fsGroupChangePolicy
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seccompProfile
                                                        - required:
                                                            - seccompProfile
                                                  properties:
                                                    fsGroup:
                                                      type: integer
                                                    fsGroupChangePolicy:
                                                      type: string
                                                    runAsGroup:
                                                      type: integer
                                                    runAsNonRoot:
                                                      type: boolean
                                                    runAsUser:
                                                      type: integer
                                                    seLinuxOptions:
                                                      properties:
                                                        level:
                                                          type: string
                                                        role:
                                                          type: string
                                                        type:
                                                          type: string
                                                        user:
                                                          type: string
                                                      type: object
                                                    seccompProfile:
                                                      properties:
                                                        localhostProfile:
                                                          type: string
                                                        type:
                                                          type: string
                                                      type: object
                                                    supplementalGroups:
                                                      items:
                                                        type: integer
                                                      type: array
                                                    sysctls:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        type: object
                                                      type: array
                                                    windowsOptions:
                                                      properties:
                                                        gmsaCredentialSpec:
                                                          type: string
                                                        gmsaCredentialSpecName:
                                                          type: string
                                                        runAsUserName:
                                                          type: string
                                                      type: object
                                                  type: object
                                                replicaCount:
                                                  description: Number of desired pods.
                                                  type: integer
                                                resources:
                                                  description: Compute Resources required by the primary container in the deployment PodSpec.
                                                  properties:
                                                    limits:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    requests:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                strategy:
                                                  description: The deployment strategy to use to replace existing pods with new ones.
                                                  properties:
                                                    rollingUpdate:
                                                      properties:
                                                        maxSurge:
                                                          properties:
                                                            intVal:
                                                              nullable: true
                                                              type: integer
                                                            strVal:
                                                              nullable: true
                                                              type: string
                                                            type:
                                                              type: integer
                                                          type: object
                                                        maxUnavailable:
                                                          properties:
                                                            intVal:
                                                              nullable: true
                                                              type: integer
                                                            strVal:
                                                              nullable: true
                                                              type: string
                                                            type:
                                                              type: integer
                                                          type: object
                                                      type: object
                                                    type:
                                                      type: string
                                                  type: object
                                                tolerations:
                                                  description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                  items:
                                                    properties:
                                                      effect:
                                                        description: Effect indicates the taint effect to match.
                                                        type: string
                                                      key:
                                                        description: Key is the taint key that the toleration applies to.
                                                        type: string
                                                      operator:
                                                        description: Operator represents a key's relationship to the value.
                                                        type: string
                                                      tolerationSeconds:
                                                        description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                        type: integer
                                                      value:
                                                        description: Value is the taint value the toleration matches to.
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                            overlays:
                                              items:
                                                properties:
                                                  apiVersion:
                                                    description: Resource API version.
                                                    type: string
                                                  kind:
                                                    description: Resource kind.
                                                    type: string
                                                  name:
                                                    description: Name of resource.
                                                    type: string
                                                  patches:
                                                    description: List of patches to apply to resource.
                                                    items:
                                                      properties:
                                                        path:
                                                          description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                          type: string
                                                        value:
                                                          description: Value to add, delete or replace.
                                                          x-kubernetes-preserve-unknown-fields: true
                                                      type: object
                                                    type: array
                                                type: object
                                              type: array
                                            service:
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  description: Pod annotations are an unstructured key value map stored with the service.
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  description: Labels are an unstructured key value map stored with the deployment.
                                                  type: object
                                                ports:
                                                  description: List of ports exposed by the component's service.
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      nodePort:
                                                        format: int32
                                                        type: integer
                                                      port:
                                                        format: int32
                                                        type: integer
                                                      protocol:
                                                        type: string
                                                      targetPort:
                                                        properties:
                                                          intVal:
                                                            nullable: true
                                                            type: integer
                                                          strVal:
                                                            nullable: true
                                                            type: string
                                                          type:
                                                            type: integer
                                                        type: object
                                                    type: object
                                                  type: array
                                                type:
                                                  description: Determines how the Service is exposed.
                                                  type: string
                                              type: object
                                            serviceAccount:
                                              properties:
                                                imagePullSecrets:
                                                  description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                  items:
                                                    properties:
                                                      name:
                                                        description: Name of the referent.
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                          type: object
                                        logLevels:
                                          additionalProperties:
                                            type: string
                                          description: The log level configuration by scopes.
                                          type: object
                                      type: object
                                    repository:
                                      description: Configure `Tetrate Host Management Repository` component.
                                      properties:
                                        kubeSpec:
                                          description: Configure Kubernetes specific settings.
                                          properties:
                                            deployment:
                                              allOf:
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - podSecurityContext
                                                    - required:
                                                        - podSecurityContext
                                                - oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - containerSecurityContext
                                                    - required:
                                                        - containerSecurityContext
                                              properties:
                                                affinity:
                                                  description: The scheduling constraints for the pod.
                                                  properties:
                                                    nodeAffinity:
                                                      description: Group of node affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                          items:
                                                            properties:
                                                              preference:
                                                                properties:
                                                                  matchExpressions:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchFields:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          properties:
                                                            nodeSelectorTerms:
                                                              items:
                                                                properties:
                                                                  matchExpressions:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchFields:
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          type: string
                                                                        operator:
                                                                          type: string
                                                                        values:
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    podAffinity:
                                                      description: Group of inter-pod affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              podAffinityTerm:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          type: array
                                                      type: object
                                                    podAntiAffinity:
                                                      description: Group of inter-pod anti-affinity scheduling rules.
                                                      properties:
                                                        preferredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              podAffinityTerm:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              weight:
                                                                format: int32
                                                                type: integer
                                                            type: object
                                                          type: array
                                                        requiredDuringSchedulingIgnoredDuringExecution:
                                                          items:
                                                            properties:
                                                              labelSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              namespaces:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              topologyKey:
                                                                type: string
                                                            type: object
                                                          type: array
                                                      type: object
                                                  type: object
                                                containerSecurityContext:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - capabilities
                                                        - required:
                                                            - capabilities
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - privileged
                                                        - required:
                                                            - privileged
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seLinuxOptions
                                                        - required:
                                                            - seLinuxOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - windowsOptions
                                                        - required:
                                                            - windowsOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsUser
                                                        - required:
                                                            - runAsUser
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsGroup
                                                        - required:
                                                            - runAsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsNonRoot
                                                        - required:
                                                            - runAsNonRoot
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - readOnlyRootFilesystem
                                                        - required:
                                                            - readOnlyRootFilesystem
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - allowPrivilegeEscalation
                                                        - required:
                                                            - allowPrivilegeEscalation
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - procMount
                                                        - required:
                                                            - procMount
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seccompProfile
                                                        - required:
                                                            - seccompProfile
                                                  properties:
                                                    allowPrivilegeEscalation:
                                                      type: boolean
                                                    capabilities:
                                                      properties:
                                                        add:
                                                          items:
                                                            type: string
                                                          type: array
                                                        drop:
                                                          items:
                                                            type: string
                                                          type: array
                                                      type: object
                                                    privileged:
                                                      type: boolean
                                                    procMount:
                                                      type: string
                                                    readOnlyRootFilesystem:
                                                      type: boolean
                                                    runAsGroup:
                                                      type: integer
                                                    runAsNonRoot:
                                                      type: boolean
                                                    runAsUser:
                                                      type: integer
                                                    seLinuxOptions:
                                                      properties:
                                                        level:
                                                          type: string
                                                        role:
                                                          type: string
                                                        type:
                                                          type: string
                                                        user:
                                                          type: string
                                                      type: object
                                                    seccompProfile:
                                                      properties:
                                                        localhostProfile:
                                                          type: string
                                                        type:
                                                          type: string
                                                      type: object
                                                    windowsOptions:
                                                      properties:
                                                        gmsaCredentialSpec:
                                                          type: string
                                                        gmsaCredentialSpecName:
                                                          type: string
                                                        runAsUserName:
                                                          type: string
                                                      type: object
                                                  type: object
                                                env:
                                                  description: Environment variables for all containers in the deployment.
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                      valueFrom:
                                                        properties:
                                                          configMapKeyRef:
                                                            properties:
                                                              key:
                                                                type: string
                                                              localObjectReference:
                                                                properties:
                                                                  name:
                                                                    description: Name of the referent.
                                                                    type: string
                                                                type: object
                                                              optional:
                                                                type: boolean
                                                            type: object
                                                          fieldRef:
                                                            properties:
                                                              apiVersion:
                                                                type: string
                                                              fieldPath:
                                                                type: string
                                                            type: object
                                                          resourceFieldRef:
                                                            properties:
                                                              containerName:
                                                                type: string
                                                              divisor:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              resource:
                                                                type: string
                                                            type: object
                                                          secretKeyRef:
                                                            properties:
                                                              key:
                                                                type: string
                                                              localObjectReference:
                                                                properties:
                                                                  name:
                                                                    description: Name of the referent.
                                                                    type: string
                                                                type: object
                                                              optional:
                                                                type: boolean
                                                            type: object
                                                        type: object
                                                    type: object
                                                  type: array
                                                hpaSpec:
                                                  description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                  properties:
                                                    maxReplicas:
                                                      format: int32
                                                      type: integer
                                                    metrics:
                                                      items:
                                                        properties:
                                                          external:
                                                            properties:
                                                              metricName:
                                                                type: string
                                                              metricSelector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              targetValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          object:
                                                            properties:
                                                              averageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              metricName:
                                                                type: string
                                                              selector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              target:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  kind:
                                                                    type: string
                                                                  name:
                                                                    type: string
                                                                type: object
                                                              targetValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          pods:
                                                            properties:
                                                              metricName:
                                                                type: string
                                                              selector:
                                                                properties:
                                                                  matchExpressions:
                                                                    description: matchExpressions is a list of label selector requirements.
                                                                    items:
                                                                      properties:
                                                                        key:
                                                                          description: key is the label key that the selector applies to.
                                                                          type: string
                                                                        operator:
                                                                          description: operator represents a key's relationship to a set of values.
                                                                          type: string
                                                                        values:
                                                                          description: values is an array of string values.
                                                                          items:
                                                                            type: string
                                                                          type: array
                                                                      type: object
                                                                    type: array
                                                                  matchLabels:
                                                                    additionalProperties:
                                                                      type: string
                                                                    description: matchLabels is a map of {key,value} pairs.
                                                                    type: object
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          resource:
                                                            properties:
                                                              name:
                                                                type: string
                                                              target:
                                                                properties:
                                                                  averageUtilization:
                                                                    format: int32
                                                                    type: integer
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  type:
                                                                    type: string
                                                                  value:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              targetAverageUtilization:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                              targetAverageValue:
                                                                properties:
                                                                  intVal:
                                                                    nullable: true
                                                                    type: integer
                                                                  strVal:
                                                                    nullable: true
                                                                    type: string
                                                                  type:
                                                                    type: integer
                                                                type: object
                                                            type: object
                                                          type:
                                                            type: string
                                                        type: object
                                                      type: array
                                                    minReplicas:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  description: Labels are an unstructured key-value map stored with the Deployment.
                                                  type: object
                                                podAnnotations:
                                                  additionalProperties:
                                                    type: string
                                                  description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                  type: object
                                                podSecurityContext:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seLinuxOptions
                                                        - required:
                                                            - seLinuxOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsUser
                                                        - required:
                                                            - runAsUser
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsNonRoot
                                                        - required:
                                                            - runAsNonRoot
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - fsGroup
                                                        - required:
                                                            - fsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - runAsGroup
                                                        - required:
                                                            - runAsGroup
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - windowsOptions
                                                        - required:
                                                            - windowsOptions
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - fsGroupChangePolicy
                                                        - required:
                                                            - fsGroupChangePolicy
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - seccompProfile
                                                        - required:
                                                            - seccompProfile
                                                  properties:
                                                    fsGroup:
                                                      type: integer
                                                    fsGroupChangePolicy:
                                                      type: string
                                                    runAsGroup:
                                                      type: integer
                                                    runAsNonRoot:
                                                      type: boolean
                                                    runAsUser:
                                                      type: integer
                                                    seLinuxOptions:
                                                      properties:
                                                        level:
                                                          type: string
                                                        role:
                                                          type: string
                                                        type:
                                                          type: string
                                                        user:
                                                          type: string
                                                      type: object
                                                    seccompProfile:
                                                      properties:
                                                        localhostProfile:
                                                          type: string
                                                        type:
                                                          type: string
                                                      type: object
                                                    supplementalGroups:
                                                      items:
                                                        type: integer
                                                      type: array
                                                    sysctls:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        type: object
                                                      type: array
                                                    windowsOptions:
                                                      properties:
                                                        gmsaCredentialSpec:
                                                          type: string
                                                        gmsaCredentialSpecName:
                                                          type: string
                                                        runAsUserName:
                                                          type: string
                                                      type: object
                                                  type: object
                                                replicaCount:
                                                  description: Number of desired pods.
                                                  type: integer
                                                resources:
                                                  description: Compute Resources required by the primary container in the deployment PodSpec.
                                                  properties:
                                                    limits:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    requests:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                strategy:
                                                  description: The deployment strategy to use to replace existing pods with new ones.
                                                  properties:
                                                    rollingUpdate:
                                                      properties:
                                                        maxSurge:
                                                          properties:
                                                            intVal:
                                                              nullable: true
                                                              type: integer
                                                            strVal:
                                                              nullable: true
                                                              type: string
                                                            type:
                                                              type: integer
                                                          type: object
                                                        maxUnavailable:
                                                          properties:
                                                            intVal:
                                                              nullable: true
                                                              type: integer
                                                            strVal:
                                                              nullable: true
                                                              type: string
                                                            type:
                                                              type: integer
                                                          type: object
                                                      type: object
                                                    type:
                                                      type: string
                                                  type: object
                                                tolerations:
                                                  description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                  items:
                                                    properties:
                                                      effect:
                                                        description: Effect indicates the taint effect to match.
                                                        type: string
                                                      key:
                                                        description: Key is the taint key that the toleration applies to.
                                                        type: string
                                                      operator:
                                                        description: Operator represents a key's relationship to the value.
                                                        type: string
                                                      tolerationSeconds:
                                                        description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                        type: integer
                                                      value:
                                                        description: Value is the taint value the toleration matches to.
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                            overlays:
                                              items:
                                                properties:
                                                  apiVersion:
                                                    description: Resource API version.
                                                    type: string
                                                  kind:
                                                    description: Resource kind.
                                                    type: string
                                                  name:
                                                    description: Name of resource.
                                                    type: string
                                                  patches:
                                                    description: List of patches to apply to resource.
                                                    items:
                                                      properties:
                                                        path:
                                                          description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                          type: string
                                                        value:
                                                          description: Value to add, delete or replace.
                                                          x-kubernetes-preserve-unknown-fields: true
                                                      type: object
                                                    type: array
                                                type: object
                                              type: array
                                            service:
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  description: Pod annotations are an unstructured key value map stored with the service.
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  description: Labels are an unstructured key value map stored with the deployment.
                                                  type: object
                                                ports:
                                                  description: List of ports exposed by the component's service.
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      nodePort:
                                                        format: int32
                                                        type: integer
                                                      port:
                                                        format: int32
                                                        type: integer
                                                      protocol:
                                                        type: string
                                                      targetPort:
                                                        properties:
                                                          intVal:
                                                            nullable: true
                                                            type: integer
                                                          strVal:
                                                            nullable: true
                                                            type: string
                                                          type:
                                                            type: integer
                                                        type: object
                                                    type: object
                                                  type: array
                                                type:
                                                  description: Determines how the Service is exposed.
                                                  type: string
                                              type: object
                                            serviceAccount:
                                              properties:
                                                imagePullSecrets:
                                                  description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                  items:
                                                    properties:
                                                      name:
                                                        description: Name of the referent.
                                                        type: string
                                                    type: object
                                                  type: array
                                              type: object
                                          type: object
                                      type: object
                                  required:
                                    - endpoint
                                  type: object
                                onboarding:
                                  description: Configuration of the `Workload Onboarding Plane`.
                                  properties:
                                    endpoint:
                                      description: Configuration of the endpoint exposing `Workload Onboarding API` to `Workload Onboarding Agents`.
                                      properties:
                                        hosts:
                                          description: List of hosts included in the TLS certificate.
                                          items:
                                            type: string
                                          type: array
                                        secretName:
                                          description: Name of the secret that holds TLS certificate chain and private key.
                                          type: string
                                      required:
                                        - hosts
                                        - secretName
                                      type: object
                                    localRepository:
                                      description: Configuration of the local repository with `DEB` and `RPM` packages of the `Workload Onboarding Agent` and `Istio Sidecar`.
                                      type: object
                                    tokenIssuer:
                                      description: Configuration of the built-in `Workload Onboarding Token Issuer`.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - jwt
                                        - required:
                                            - jwt
                                      properties:
                                        jwt:
                                          description: Configuration of the built-in JWT Token Issuer.
                                          properties:
                                            expiration:
                                              description: Expiration is the duration issued tokens are valid for.
                                              type: string
                                          type: object
                                      type: object
                                    uid:
                                      description: Unique identifier of this particular installation of the `Workload Onboarding Plane`.
                                      type: string
                                    workloads:
                                      description: Configuration of the workload handling.
                                      properties:
                                        authentication:
                                          description: Workload authentication configuration.
                                          properties:
                                            jwt:
                                              description: JWT authentication configuration.
                                              properties:
                                                issuers:
                                                  description: List of permitted JWT issuers.
                                                  items:
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - jwksUri
                                                            - required:
                                                                - jwks
                                                      - required:
                                                          - jwksUri
                                                      - required:
                                                          - jwks
                                                    properties:
                                                      issuer:
                                                        description: JWT `Issuer` identifier.
                                                        type: string
                                                      jwks:
                                                        description: Inlined JSON Web Key Set document.
                                                        type: string
                                                      jwksUri:
                                                        description: URL of the JSON Web Key Set document.
                                                        type: string
                                                      shortName:
                                                        description: Unique short name associated with the issuer.
                                                        type: string
                                                      tokenFields:
                                                        description: Description of the custom fields included in the [OIDC ID Token](https://openid.net/specs/openid-connect-core-1_0.html#IDToken).
                                                        properties:
                                                          attributes:
                                                            description: Field that carries a map of fine-grained attributes associated with the subject of the [OIDC ID Token](https://openid.net/specs/openid-connect-core-1_0.html#IDToken).
                                                            properties:
                                                              jsonPath:
                                                                description: Simple JSON Path which is evaluated against custom claims of the [OIDC ID Token](https://openid.net/specs/openid-connect-core-1_0.html#IDToken) to produce the value of the field.
                                                                type: string
                                                            required:
                                                              - jsonPath
                                                            type: object
                                                        type: object
                                                    required:
                                                      - issuer
                                                      - shortName
                                                    type: object
                                                  type: array
                                              type: object
                                          type: object
                                        deregistration:
                                          description: Workload deregistration configuration.
                                          properties:
                                            propagationDelay:
                                              description: Estimated amount of time it takes to propagate the unregistration event across all affected mesh nodes.
                                              type: string
                                          type: object
                                      type: object
                                  required:
                                    - endpoint
                                  type: object
                                serviceObservability:
                                  description: 'EXPERIMENTAL: Settings for the `Tetrate Service Observability` component.'
                                  properties:
                                    agent:
                                      description: Settings for the `SPM Agent`.
                                      properties:
                                        version:
                                          description: Version of the `SPM Agent` to use.
                                          type: string
                                      type: object
                                    domains:
                                      description: List of domains to consider when discovering services.
                                      items:
                                        type: string
                                      type: array
                                    enabled:
                                      description: To install the component, set the value to `true`.
                                      nullable: true
                                      type: boolean
                                    serviceDiscovery:
                                      description: Configure `Tetrate Service Discovery` component.
                                      properties:
                                        agent:
                                          description: Settings for the `Tetrate Service Discovery Agent`.
                                          properties:
                                            version:
                                              description: Version of the `Tetrate Service Discovery Agent` to use.
                                              type: string
                                          type: object
                                        plane:
                                          description: Configure `Tetrate Service Discovery Plane` component.
                                          properties:
                                            kubeSpec:
                                              description: Configure Kubernetes specific settings.
                                              properties:
                                                deployment:
                                                  allOf:
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - podSecurityContext
                                                        - required:
                                                            - podSecurityContext
                                                    - oneOf:
                                                        - not:
                                                            anyOf:
                                                              - required:
                                                                  - containerSecurityContext
                                                        - required:
                                                            - containerSecurityContext
                                                  properties:
                                                    affinity:
                                                      description: The scheduling constraints for the pod.
                                                      properties:
                                                        nodeAffinity:
                                                          description: Group of node affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions.
                                                              items:
                                                                properties:
                                                                  preference:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              properties:
                                                                nodeSelectorTerms:
                                                                  items:
                                                                    properties:
                                                                      matchExpressions:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchFields:
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              type: string
                                                                            operator:
                                                                              type: string
                                                                            values:
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                    type: object
                                                                  type: array
                                                              type: object
                                                          type: object
                                                        podAffinity:
                                                          description: Group of inter-pod affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                        podAntiAffinity:
                                                          description: Group of inter-pod anti-affinity scheduling rules.
                                                          properties:
                                                            preferredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  podAffinityTerm:
                                                                    properties:
                                                                      labelSelector:
                                                                        properties:
                                                                          matchExpressions:
                                                                            description: matchExpressions is a list of label selector requirements.
                                                                            items:
                                                                              properties:
                                                                                key:
                                                                                  description: key is the label key that the selector applies to.
                                                                                  type: string
                                                                                operator:
                                                                                  description: operator represents a key's relationship to a set of values.
                                                                                  type: string
                                                                                values:
                                                                                  description: values is an array of string values.
                                                                                  items:
                                                                                    type: string
                                                                                  type: array
                                                                              type: object
                                                                            type: array
                                                                          matchLabels:
                                                                            additionalProperties:
                                                                              type: string
                                                                            description: matchLabels is a map of {key,value} pairs.
                                                                            type: object
                                                                        type: object
                                                                      namespaces:
                                                                        items:
                                                                          type: string
                                                                        type: array
                                                                      topologyKey:
                                                                        type: string
                                                                    type: object
                                                                  weight:
                                                                    format: int32
                                                                    type: integer
                                                                type: object
                                                              type: array
                                                            requiredDuringSchedulingIgnoredDuringExecution:
                                                              items:
                                                                properties:
                                                                  labelSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  namespaces:
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                  topologyKey:
                                                                    type: string
                                                                type: object
                                                              type: array
                                                          type: object
                                                      type: object
                                                    containerSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - capabilities
                                                            - required:
                                                                - capabilities
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - privileged
                                                            - required:
                                                                - privileged
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - readOnlyRootFilesystem
                                                            - required:
                                                                - readOnlyRootFilesystem
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - allowPrivilegeEscalation
                                                            - required:
                                                                - allowPrivilegeEscalation
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - procMount
                                                            - required:
                                                                - procMount
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        allowPrivilegeEscalation:
                                                          type: boolean
                                                        capabilities:
                                                          properties:
                                                            add:
                                                              items:
                                                                type: string
                                                              type: array
                                                            drop:
                                                              items:
                                                                type: string
                                                              type: array
                                                          type: object
                                                        privileged:
                                                          type: boolean
                                                        procMount:
                                                          type: string
                                                        readOnlyRootFilesystem:
                                                          type: boolean
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    env:
                                                      description: Environment variables for all containers in the deployment.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                          valueFrom:
                                                            properties:
                                                              configMapKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                              fieldRef:
                                                                properties:
                                                                  apiVersion:
                                                                    type: string
                                                                  fieldPath:
                                                                    type: string
                                                                type: object
                                                              resourceFieldRef:
                                                                properties:
                                                                  containerName:
                                                                    type: string
                                                                  divisor:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  resource:
                                                                    type: string
                                                                type: object
                                                              secretKeyRef:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  localObjectReference:
                                                                    properties:
                                                                      name:
                                                                        description: Name of the referent.
                                                                        type: string
                                                                    type: object
                                                                  optional:
                                                                    type: boolean
                                                                type: object
                                                            type: object
                                                        type: object
                                                      type: array
                                                    hpaSpec:
                                                      description: Horizontal Pod Autoscaler automatically scales the number of pods in a deployment based on a specified metric.
                                                      properties:
                                                        maxReplicas:
                                                          format: int32
                                                          type: integer
                                                        metrics:
                                                          items:
                                                            properties:
                                                              external:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  metricSelector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              object:
                                                                properties:
                                                                  averageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  target:
                                                                    properties:
                                                                      apiVersion:
                                                                        type: string
                                                                      kind:
                                                                        type: string
                                                                      name:
                                                                        type: string
                                                                    type: object
                                                                  targetValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              pods:
                                                                properties:
                                                                  metricName:
                                                                    type: string
                                                                  selector:
                                                                    properties:
                                                                      matchExpressions:
                                                                        description: matchExpressions is a list of label selector requirements.
                                                                        items:
                                                                          properties:
                                                                            key:
                                                                              description: key is the label key that the selector applies to.
                                                                              type: string
                                                                            operator:
                                                                              description: operator represents a key's relationship to a set of values.
                                                                              type: string
                                                                            values:
                                                                              description: values is an array of string values.
                                                                              items:
                                                                                type: string
                                                                              type: array
                                                                          type: object
                                                                        type: array
                                                                      matchLabels:
                                                                        additionalProperties:
                                                                          type: string
                                                                        description: matchLabels is a map of {key,value} pairs.
                                                                        type: object
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              resource:
                                                                properties:
                                                                  name:
                                                                    type: string
                                                                  target:
                                                                    properties:
                                                                      averageUtilization:
                                                                        format: int32
                                                                        type: integer
                                                                      averageValue:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                      type:
                                                                        type: string
                                                                      value:
                                                                        properties:
                                                                          intVal:
                                                                            nullable: true
                                                                            type: integer
                                                                          strVal:
                                                                            nullable: true
                                                                            type: string
                                                                          type:
                                                                            type: integer
                                                                        type: object
                                                                    type: object
                                                                  targetAverageUtilization:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                  targetAverageValue:
                                                                    properties:
                                                                      intVal:
                                                                        nullable: true
                                                                        type: integer
                                                                      strVal:
                                                                        nullable: true
                                                                        type: string
                                                                      type:
                                                                        type: integer
                                                                    type: object
                                                                type: object
                                                              type:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        minReplicas:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key-value map stored with the Deployment.
                                                      type: object
                                                    podAnnotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key-value map stored with the Deployment's Pod template.
                                                      type: object
                                                    podSecurityContext:
                                                      allOf:
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seLinuxOptions
                                                            - required:
                                                                - seLinuxOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsUser
                                                            - required:
                                                                - runAsUser
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsNonRoot
                                                            - required:
                                                                - runAsNonRoot
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroup
                                                            - required:
                                                                - fsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - runAsGroup
                                                            - required:
                                                                - runAsGroup
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - windowsOptions
                                                            - required:
                                                                - windowsOptions
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - fsGroupChangePolicy
                                                            - required:
                                                                - fsGroupChangePolicy
                                                        - oneOf:
                                                            - not:
                                                                anyOf:
                                                                  - required:
                                                                      - seccompProfile
                                                            - required:
                                                                - seccompProfile
                                                      properties:
                                                        fsGroup:
                                                          type: integer
                                                        fsGroupChangePolicy:
                                                          type: string
                                                        runAsGroup:
                                                          type: integer
                                                        runAsNonRoot:
                                                          type: boolean
                                                        runAsUser:
                                                          type: integer
                                                        seLinuxOptions:
                                                          properties:
                                                            level:
                                                              type: string
                                                            role:
                                                              type: string
                                                            type:
                                                              type: string
                                                            user:
                                                              type: string
                                                          type: object
                                                        seccompProfile:
                                                          properties:
                                                            localhostProfile:
                                                              type: string
                                                            type:
                                                              type: string
                                                          type: object
                                                        supplementalGroups:
                                                          items:
                                                            type: integer
                                                          type: array
                                                        sysctls:
                                                          items:
                                                            properties:
                                                              name:
                                                                type: string
                                                              value:
                                                                type: string
                                                            type: object
                                                          type: array
                                                        windowsOptions:
                                                          properties:
                                                            gmsaCredentialSpec:
                                                              type: string
                                                            gmsaCredentialSpecName:
                                                              type: string
                                                            runAsUserName:
                                                              type: string
                                                          type: object
                                                      type: object
                                                    replicaCount:
                                                      description: Number of desired pods.
                                                      type: integer
                                                    resources:
                                                      description: Compute Resources required by the primary container in the deployment PodSpec.
                                                      properties:
                                                        limits:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                        requests:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    strategy:
                                                      description: The deployment strategy to use to replace existing pods with new ones.
                                                      properties:
                                                        rollingUpdate:
                                                          properties:
                                                            maxSurge:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                            maxUnavailable:
                                                              properties:
                                                                intVal:
                                                                  nullable: true
                                                                  type: integer
                                                                strVal:
                                                                  nullable: true
                                                                  type: string
                                                                type:
                                                                  type: integer
                                                              type: object
                                                          type: object
                                                        type:
                                                          type: string
                                                      type: object
                                                    tolerations:
                                                      description: Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
                                                      items:
                                                        properties:
                                                          effect:
                                                            description: Effect indicates the taint effect to match.
                                                            type: string
                                                          key:
                                                            description: Key is the taint key that the toleration applies to.
                                                            type: string
                                                          operator:
                                                            description: Operator represents a key's relationship to the value.
                                                            type: string
                                                          tolerationSeconds:
                                                            description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint.
                                                            type: integer
                                                          value:
                                                            description: Value is the taint value the toleration matches to.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                                overlays:
                                                  items:
                                                    properties:
                                                      apiVersion:
                                                        description: Resource API version.
                                                        type: string
                                                      kind:
                                                        description: Resource kind.
                                                        type: string
                                                      name:
                                                        description: Name of resource.
                                                        type: string
                                                      patches:
                                                        description: List of patches to apply to resource.
                                                        items:
                                                          properties:
                                                            path:
                                                              description: Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list.
                                                              type: string
                                                            value:
                                                              description: Value to add, delete or replace.
                                                              x-kubernetes-preserve-unknown-fields: true
                                                          type: object
                                                        type: array
                                                    type: object
                                                  type: array
                                                service:
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      description: Pod annotations are an unstructured key value map stored with the service.
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      description: Labels are an unstructured key value map stored with the deployment.
                                                      type: object
                                                    ports:
                                                      description: List of ports exposed by the component's service.
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          nodePort:
                                                            format: int32
                                                            type: integer
                                                          port:
                                                            format: int32
                                                            type: integer
                                                          protocol:
                                                            type: string
                                                          targetPort:
                                                            properties:
                                                              intVal:
                                                                nullable: true
                                                                type: integer
                                                              strVal:
                                                                nullable: true
                                                                type: string
                                                              type:
                                                                type: integer
                                                            type: object
                                                        type: object
                                                      type: array
                                                    type:
                                                      description: Determines how the Service is exposed.
                                                      type: string
                                                  type: object
                                                serviceAccount:
                                                  properties:
                                                    imagePullSecrets:
                                                      description: List of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount.
                                                      items:
                                                        properties:
                                                          name:
                                                            description: Name of the referent.
                                                            type: string
                                                        type: object
                                                      type: array
                                                  type: object
                                              type: object
                                            logLevels:
                                              additionalProperties:
                                                type: string
                                              description: The log level configuration by scopes.
                                              type: object
                                          type: object
                                      type: object
                                  type: object
                              type: object
                            meshObservability:
                              description: Configure how the mesh should be observed, which observability functionalities should be enabled to observe your registered services in the mesh, and the store properties that TSB will use to persist application observability data like metrics, traces, logs.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - demoSettings
                                      - required:
                                          - settings
                                - required:
                                    - demoSettings
                                - required:
                                    - settings
                              properties:
                                demoSettings:
                                  properties:
                                    apiEndpointMetricsEnabled:
                                      description: Toggle to process, analyze, and generate api endpoints RED metrics.
                                      type: boolean
                                  type: object
                                settings:
                                  properties:
                                    apiEndpointMetricsEnabled:
                                      description: Toggle to process, analyze, and generate api endpoints RED metrics.
                                      type: boolean
                                  type: object
                              type: object
                            mode:
                              description: Mode in which the Control Plane is deployed.
                              enum:
                                - UNSET
                                - CONTROL
                                - OBSERVE
                              type: string
                            providerSettings:
                              description: Configures Kubernetes provider specific settings.
                              properties:
                                aws:
                                  description: Global settings to AWS.
                                  properties:
                                    serviceAccountName:
                                      description: Service account name to use with IAM role association.
                                      type: string
                                  required:
                                    - serviceAccountName
                                  type: object
                                eks:
                                  description: Settings specific to EKS.
                                  properties:
                                    useNlbByDefault:
                                      description: When true, gateways will be configured to use NLBs with cross zone load balancing enabled when the load balancer type is not configured.
                                      type: boolean
                                  type: object
                                lattice:
                                  description: Settings specific to Lattice.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - enabled
                                    - required:
                                        - enabled
                                  properties:
                                    enabled:
                                      description: Enable/disable the Lattice integration controller.
                                      type: boolean
                                  type: object
                                route53:
                                  description: Settings specific to Route53.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - enabled
                                    - required:
                                        - enabled
                                  properties:
                                    domainFilter:
                                      description: List of domains to limit possible target zones by a domain suffix.
                                      items:
                                        type: string
                                      type: array
                                    enabled:
                                      description: Enable/disable the Route53 integration controller.
                                      type: boolean
                                    evaluateTargetHealth:
                                      description: Control whether to evaluate the health of a DNS target.
                                      nullable: true
                                      type: boolean
                                    filterSettings:
                                      description: Filter target settings.
                                      properties:
                                        annotationFilter:
                                          description: Filter out (remove) targets that matches annotation using label selector semantics.
                                          type: string
                                        excludeDomain:
                                          description: Exclude subdomains.
                                          items:
                                            type: string
                                          type: array
                                        labelFilter:
                                          description: Filter out (remove) targets that matches label selector.
                                          type: string
                                        zoneIdFilter:
                                          description: When using the AWS provider, filter for zones with this ID.
                                          items:
                                            type: string
                                          type: array
                                        zoneTagFilter:
                                          description: When using the AWS provider, filter for zones with this tag.
                                          items:
                                            type: string
                                          type: array
                                        zoneType:
                                          description: Filter out (removes) zones of this type.
                                          enum:
                                            - NONE
                                            - PUBLIC
                                            - PRIVATE
                                          type: string
                                      type: object
                                    interval:
                                      description: Duration of interval between individual synchronizations.
                                      type: string
                                    namespaceSelector:
                                      description: Specifies the namespace to watch.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - namespace
                                              - required:
                                                  - ignoreNamespaces
                                        - required:
                                            - namespace
                                        - required:
                                            - ignoreNamespaces
                                      properties:
                                        ignoreNamespaces:
                                          description: Comma separated list of namespaces to ignore when watching for DNS endpoints.
                                          type: string
                                        namespace:
                                          description: Specifies the namespace to watch for resources.
                                          type: string
                                      type: object
                                    policy:
                                      description: Specifies the policy to use when managing DNS records.
                                      enum:
                                        - SYNC
                                        - UPSERT_ONLY
                                        - CREATE_ONLY
                                      type: string
                                    serviceAccountName:
                                      type: string
                                    ttl:
                                      description: Default TTL (in seconds) value for DNS records.
                                      type: integer
                                  required:
                                    - serviceAccountName
                                  type: object
                              type: object
                            telemetryStore:
                              description: Configure the store that TSB will use to persist application telemetry data.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - elastic
                                      - required:
                                          - banyandb
                                - required:
                                    - elastic
                                - required:
                                    - banyandb
                              properties:
                                banyandb:
                                  properties:
                                    host:
                                      description: BanyanDB host address (can be hostname or IP address).
                                      type: string
                                    port:
                                      description: Port BanyanDB is listening on.
                                      format: int32
                                      type: integer
                                  required:
                                    - host
                                    - port
                                  type: object
                                elastic:
                                  properties:
                                    host:
                                      description: Elasticsearch host address (can be hostname or IP address).
                                      type: string
                                    indexPrefix:
                                      description: The prefix of the ElasticSearch indices and templates.
                                      type: string
                                    port:
                                      description: Port Elasticsearch is listening on.
                                      format: int32
                                      type: integer
                                    protocol:
                                      description: Protocol to communicate with Elasticsearch, defaults to https.
                                      enum:
                                        - https
                                        - http
                                      type: string
                                    selfSigned:
                                      description: Use Self-Signed certificates.
                                      type: boolean
                                    version:
                                      description: 'DEPRECATED: Major version of the Elasticsearch cluster.'
                                      format: int32
                                      type: integer
                                  required:
                                    - host
                                    - port
                                  type: object
                                retentionPeriodDays:
                                  format: int32
                                  type: integer
                                tracesRetentionPeriodDays:
                                  format: int32
                                  type: integer
                              type: object
                            tier1Cluster:
                              description: '**DEPRECATED**: This should not be set through Control plane API Instead use TSB Cluster API.'
                              type: boolean
                          required:
                            - hub
                            - managementPlane
                            - telemetryStore
                          type: object
                      type: object
                    message:
                      type: string
                  type: object
                labels:
                  additionalProperties:
                    type: string
                  description: 'FIXME: this is super clunky to copy each and every metadata field into objects used for multicluster.'
                  type: object
                locality:
                  description: Deprecated.
                  properties:
                    region:
                      description: The geographic location of the cluster.
                      type: string
                  required:
                    - region
                  type: object
                namespaceScope:
                  description: Configure the default scoping of namespaces in this cluster.
                  properties:
                    exceptions:
                      description: Namespaces to be excluded form the default scope.
                      items:
                        type: string
                      type: array
                    scope:
                      enum:
                        - GLOBAL
                        - LOCAL
                      type: string
                  type: object
                namespaces:
                  description: 'TODO(vikas): move this inside cluster state Read-only data for informational purposes.'
                  items:
                    properties:
                      istio:
                        properties:
                          istioInjection:
                            description: Istio injection status for the namespace.
                            enum:
                              - ISTIO_INJECTION_UNDEFINED
                              - ISTIO_INJECTION_ENABLED
                              - ISTIO_INJECTION_DISABLED
                            type: string
                          istioRevision:
                            description: Istio revision of the namespace.
                            type: string
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: The Labels of the namespace.
                        type: object
                      name:
                        type: string
                      services:
                        items:
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            canonicalName:
                              type: string
                            gatewayHost:
                              description: Indicates that this is a service representing a gateway host (used for multi-cluster scenarios).
                              type: boolean
                            hostname:
                              description: The hostname by which this service is accessed.
                              type: string
                            kubernetesExternalAddresses:
                              description: For kubernetes services of type load balancer, this field contains the list of lb hostnames or IPs assigned to the service.
                              items:
                                type: string
                              type: array
                            kubernetesServiceFqdn:
                              description: If this is a gateway host service, this field will indicate the kubernetes service that is running as a gateway and exposing this host to the outside world.
                              type: string
                            kubernetesServiceIp:
                              description: For services running on Kubernetes, the cluster IP of the service in the cluster.
                              type: string
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            meshExternal:
                              type: boolean
                            name:
                              type: string
                            namespace:
                              description: namespace associated with the service.
                              type: string
                            numHops:
                              description: The number of hops from the advertising cluster to the ingress gateway that is exposing the gateway host.
                              type: integer
                            numKubernetesEndpoints:
                              description: The number of kubernetes pods providing this service.
                              type: integer
                            numVmEndpoints:
                              description: The number of VMs providing this service.
                              type: integer
                            ports:
                              description: The set of ports on which this service is exposed.
                              items:
                                properties:
                                  kubernetesNodePort:
                                    description: Indicates the node port attached to a physical deployment on a kubernetes cluster.
                                    type: integer
                                  name:
                                    description: Name assigned to the port.
                                    type: string
                                  number:
                                    description: A valid non-negative integer port number.
                                    type: integer
                                type: object
                              type: array
                            selector:
                              additionalProperties:
                                type: string
                              description: label selectors associated with the service.
                              type: object
                            spiffeIds:
                              description: List of SPIFFE identities used by the workloads of the service.
                              items:
                                type: string
                              type: array
                            state:
                              enum:
                                - INVALID_STATE
                                - EXTERNAL
                                - OBSERVED
                                - CONTROLLED
                              type: string
                            subsets:
                              items:
                                type: string
                              type: array
                            tier1GatewayHost:
                              description: Indicates that this is a service representing a gateway host acting as a tier1 gateway.
                              type: boolean
                            workloads:
                              description: Workloads implementing the Service.
                              items:
                                properties:
                                  address:
                                    description: Routable address of the workload.
                                    type: string
                                  isVm:
                                    description: Indicates whether the workload is kubernetes endpoint or vm.
                                    type: boolean
                                  name:
                                    description: Instance name of the workload.
                                    type: string
                                  proxy:
                                    description: Proxy details.
                                    properties:
                                      controlPlaneAddress:
                                        description: Address/service of control plane entity controlling the proxy like istiod.istio-system.svc:15012.
                                        type: string
                                      envoyVersion:
                                        description: Envoy version of the proxy.
                                        type: string
                                      istioVersion:
                                        description: Istio version of the proxy.
                                        type: string
                                      status:
                                        additionalProperties:
                                          type: string
                                        description: Sync status for each xDS component.
                                        type: object
                                    type: object
                                type: object
                              type: array
                          type: object
                        type: array
                    type: object
                  type: array
                network:
                  description: The network (e.g., VPC) where this cluster is present.
                  type: string
                serviceAccount:
                  description: The service account created with permissions to manage the current cluster.
                  properties:
                    description:
                      description: A description of the resource.
                      type: string
                    displayName:
                      description: User friendly name for the resource.
                      type: string
                    etag:
                      description: The etag for the resource.
                      type: string
                    fqn:
                      description: Fully-qualified name of the resource.
                      type: string
                    keys:
                      description: Keys associated with the service account.
                      items:
                        properties:
                          defaultToken:
                            description: A default access token that can be used to authenticate to TSB on behalf of the service account.
                            type: string
                          encoding:
                            description: Format in which the public and private keys are encoded.
                            enum:
                              - PEM
                              - JWK
                            type: string
                          id:
                            description: Unique identifier for this key-pair.
                            type: string
                          privateKey:
                            description: The encoded private key associated with the service account.
                            type: string
                          publicKey:
                            description: The encoded public key associated with the service account.
                            type: string
                        type: object
                      type: array
                  type: object
                state:
                  properties:
                    discoveredLocality:
                      properties:
                        region:
                          description: The geographic location of the cluster.
                          type: string
                      required:
                        - region
                      type: object
                    istioRevisions:
                      description: Metadata of different Istio revision found in the cluster.
                      items:
                        properties:
                          distribution:
                            description: Istio distribution found in the cluster.
                            enum:
                              - UNKNOWN
                              - TSB
                              - TID
                            type: string
                          revision:
                            type: string
                          version:
                            description: Istio version found in the cluster.
                            type: string
                        type: object
                      type: array
                    istioVersions:
                      description: This shows currently running istio versions in the cluster.
                      items:
                        type: string
                      type: array
                    lastSyncTime:
                      format: date-time
                      type: string
                    mode:
                      description: Mode in which the Control Plane is deployed.
                      enum:
                        - UNSET
                        - CONTROL
                        - OBSERVE
                      type: string
                    provider:
                      description: cluster provider.
                      type: string
                    tsbCpVersion:
                      type: string
                    xcpVersion:
                      type: string
                  type: object
                tier1Cluster:
                  description: 'Deprecated: This flag is still honored for backward compatibility but will be ignored in future releases.'
                  nullable: true
                  type: boolean
                tokenTtl:
                  description: Lifetime of the tokens.
                  type: string
                trustDomain:
                  description: Trust domain for this cluster, used for multi-cluster routing.
                  type: string
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: organizations.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: Organization
    listKind: OrganizationList
    plural: organizations
    shortNames:
      - to
    singular: organization
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.deletionProtectionEnabled
          name: Deletion Protection
          type: boolean
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: '`Organization` is a root of the Service Bridge object hierarchy.'
              properties:
                configGenerationMetadata:
                  description: Default metadata values that will be propagated to the children Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                deletionProtectionEnabled:
                  description: When set, prevents the resource from being deleted.
                  type: boolean
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                profiles:
                  description: List of profiles attached to the Organization to be used to propagate default and mandatory configurations down to the children.
                  items:
                    type: string
                  type: array
                systemNamespaces:
                  description: List of namespaces that will be considered as system namespaces for the organization and will not be able to be onboarded into TSB.
                  items:
                    type: string
                  type: array
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: organizationsettings.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: OrganizationSetting
    listKind: OrganizationSettingList
    plural: organizationsettings
    shortNames:
      - tos
    singular: organizationsetting
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: Organization Setting allows configuring global settings for the organization.
              properties:
                defaultSecuritySetting:
                  description: Security settings for all proxy workloads in this organization.
                  properties:
                    authentication:
                      description: 'DEPRECATED: Specifies whether the proxy workloads should accept only mutual TLS authenticated traffic or allow legacy plaintext traffic as well.'
                      enum:
                        - UNSET
                        - OPTIONAL
                        - REQUIRED
                      type: string
                    authenticationSettings:
                      description: Authentication settings is used to set workload-to-workload traffic and end-user/origin authentication configuration.
                      properties:
                        http:
                          description: HTTP request authentication is used to configure authentication of origin/end-user credentials like JSON Web Token (JWT).
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - jwt
                                  - required:
                                      - rules
                            - required:
                                - jwt
                            - required:
                                - rules
                          properties:
                            jwt:
                              description: Authenticate an HTTP request from a JWT Token attached to it.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                - required:
                                    - jwksUri
                                - required:
                                    - jwks
                              properties:
                                audiences:
                                  description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                  items:
                                    type: string
                                  type: array
                                fromCookies:
                                  description: List of cookie names from which JWT is expected.
                                  items:
                                    type: string
                                  type: array
                                fromHeaders:
                                  description: This field specifies the locations to extract JWT token.
                                  items:
                                    properties:
                                      name:
                                        description: The HTTP header name.
                                        type: string
                                      prefix:
                                        description: The prefix that should be stripped before decoding the token.
                                        type: string
                                    required:
                                      - name
                                    type: object
                                  type: array
                                issuer:
                                  description: Identifies the issuer that issued the JWT.
                                  type: string
                                jwks:
                                  description: JSON Web Key Set of public keys to validate signature of the JWT.
                                  type: string
                                jwksUri:
                                  description: URL of the provider's public key set to validate signature of the JWT.
                                  type: string
                                outputClaimToHeaders:
                                  description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                  items:
                                    properties:
                                      claim:
                                        description: The name of the claim to be copied from.
                                        type: string
                                      header:
                                        description: The name of the header to be created.
                                        type: string
                                    required:
                                      - header
                                      - claim
                                    type: object
                                  type: array
                                outputPayloadToHeader:
                                  description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                  type: string
                              required:
                                - issuer
                              type: object
                            oidc:
                              properties:
                                authScopes:
                                  description: Optional list of OAuth scopes to be claimed in the authorization request.
                                  items:
                                    type: string
                                  type: array
                                authType:
                                  description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                  enum:
                                    - DEFAULT_AUTH_TYPE
                                    - URL_ENCODED_BODY
                                    - BASIC_AUTH
                                  type: string
                                clientId:
                                  description: The client_id to be used in the authorize calls.
                                  type: string
                                clientTokenSecret:
                                  description: The name of the Kubernetes secret containing the client secret.
                                  type: string
                                grantType:
                                  enum:
                                    - DEFAULT_GRANT_TYPE
                                    - AUTHORIZATION_CODE
                                  type: string
                                provider:
                                  description: The OIDC Provider configuration.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    authorizationEndpoint:
                                      description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                      type: string
                                    issuer:
                                      description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                      type: string
                                    jwks:
                                      description: JSON string with the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    jwksUri:
                                      description: URI for the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    tls:
                                      description: The TLS settings used by the clients to connect with the OIDC provider.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    tokenEndpoint:
                                      description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                redirectPathMatcher:
                                  description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                  type: string
                                redirectUri:
                                  description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                  type: string
                                signoutPath:
                                  description: The path to sign a user out, clearing their credential cookies.
                                  type: string
                                useRefreshToken:
                                  description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                  nullable: true
                                  type: boolean
                              required:
                                - clientId
                                - clientTokenSecret
                                - redirectUri
                                - provider
                              type: object
                            requireJwt:
                              description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                              nullable: true
                              type: boolean
                            rules:
                              description: List of rules how to authenticate an HTTP request.
                              properties:
                                jwt:
                                  description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                  items:
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - jwksUri
                                            - required:
                                                - jwks
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                    properties:
                                      audiences:
                                        description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                        items:
                                          type: string
                                        type: array
                                      fromCookies:
                                        description: List of cookie names from which JWT is expected.
                                        items:
                                          type: string
                                        type: array
                                      fromHeaders:
                                        description: This field specifies the locations to extract JWT token.
                                        items:
                                          properties:
                                            name:
                                              description: The HTTP header name.
                                              type: string
                                            prefix:
                                              description: The prefix that should be stripped before decoding the token.
                                              type: string
                                          required:
                                            - name
                                          type: object
                                        type: array
                                      issuer:
                                        description: Identifies the issuer that issued the JWT.
                                        type: string
                                      jwks:
                                        description: JSON Web Key Set of public keys to validate signature of the JWT.
                                        type: string
                                      jwksUri:
                                        description: URL of the provider's public key set to validate signature of the JWT.
                                        type: string
                                      outputClaimToHeaders:
                                        description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                        items:
                                          properties:
                                            claim:
                                              description: The name of the claim to be copied from.
                                              type: string
                                            header:
                                              description: The name of the header to be created.
                                              type: string
                                          required:
                                            - header
                                            - claim
                                          type: object
                                        type: array
                                      outputPayloadToHeader:
                                        description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                        type: string
                                    required:
                                      - issuer
                                    type: object
                                  type: array
                              type: object
                          type: object
                        trafficMode:
                          enum:
                            - UNSET
                            - OPTIONAL
                            - REQUIRED
                          type: string
                      type: object
                    authorization:
                      description: The set of service accounts in one or more namespaces allowed or denied to access a workload (and hence its sidecar) in the mesh.
                      properties:
                        http:
                          description: This is for configuring HTTP request authorization.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - external
                                  - required:
                                      - local
                            - required:
                                - external
                            - required:
                                - local
                          properties:
                            external:
                              properties:
                                allowedUpstreamHeaders:
                                  description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                  items:
                                    type: string
                                  type: array
                                includeRequestHeaders:
                                  items:
                                    type: string
                                  type: array
                                pathPrefix:
                                  description: Sets a prefix to the value of authorization request header Path.
                                  type: string
                                timeout:
                                  description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                  type: string
                                tls:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                uri:
                                  type: string
                              type: object
                            local:
                              properties:
                                rules:
                                  items:
                                    properties:
                                      from:
                                        description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                        items:
                                          properties:
                                            jwt:
                                              description: JWT configuration to identity the subject.
                                              properties:
                                                iss:
                                                  type: string
                                                other:
                                                  additionalProperties:
                                                    type: string
                                                  description: A set of arbitrary claims that are required to qualify the subject.
                                                  type: object
                                                sub:
                                                  type: string
                                              type: object
                                          type: object
                                        type: array
                                      name:
                                        description: A friendly name to identify the binding.
                                        type: string
                                      to:
                                        description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                        items:
                                          properties:
                                            methods:
                                              description: The HTTP methods that are allowed by this rule.
                                              items:
                                                type: string
                                              type: array
                                            paths:
                                              description: The request path where the request is made against.
                                              items:
                                                type: string
                                              type: array
                                          type: object
                                        type: array
                                    required:
                                      - name
                                    type: object
                                  type: array
                              type: object
                          type: object
                        identityMatch:
                          description: identity_match specifies the strategy for client identity verification to be employed during the evaluation of authorization (authz) rules within the service.
                          enum:
                            - UNKNOWN
                            - PEER_CERTIFICATE
                            - PERMISSIVE
                            - SOURCE_IDENTITY
                          type: string
                        mode:
                          description: A short cut for specifying the set of allowed callers.
                          enum:
                            - UNSET
                            - NAMESPACE
                            - GROUP
                            - WORKSPACE
                            - CLUSTER
                            - DISABLED
                            - CUSTOM
                            - RULES
                          type: string
                        rules:
                          description: When the mode is `RULES`, you can allow or deny workload-to-workload communication by specifying in the `rules` field which target workloads are allowed or denied to communicate with other target workloads.
                          properties:
                            allow:
                              description: Allow specifies a list of rules.
                              items:
                                properties:
                                  from:
                                    description: From specifies the source of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the source of a request.
                                        type: string
                                    type: object
                                  to:
                                    description: To specifies the destination of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the destination of a request.
                                        type: string
                                    type: object
                                required:
                                  - from
                                  - to
                                type: object
                              type: array
                            deny:
                              description: Deny specifies a list of rules.
                              items:
                                properties:
                                  from:
                                    description: From specifies the source of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the source of a request.
                                        type: string
                                    type: object
                                  to:
                                    description: To specifies the destination of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the destination of a request.
                                        type: string
                                    type: object
                                required:
                                  - from
                                  - to
                                type: object
                              type: array
                            denyAll:
                              description: Deny all specifies whether all requests should be rejected.
                              type: boolean
                          type: object
                        serviceAccounts:
                          description: When the mode is `CUSTOM`, `serviceAccounts` specify the allowed set of service accounts (and the workloads using them).
                          items:
                            type: string
                          type: array
                      type: object
                    configGenerationMetadata:
                      description: Metadata values that will be add into the Istio generated configurations.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                          type: object
                      type: object
                    description:
                      description: A description of the resource.
                      type: string
                    displayName:
                      description: User friendly name for the resource.
                      type: string
                    etag:
                      description: The etag for the resource.
                      type: string
                    extension:
                      description: Extensions specifies all the WasmExtensions assigned to this SecuritySettings with the specific configuration for each extension.
                      items:
                        properties:
                          config:
                            description: Configuration parameters sent to the WASM plugin execution.
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          fqn:
                            description: Fqn of the extension to be executed.
                            type: string
                          match:
                            description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                            items:
                              properties:
                                mode:
                                  description: Criteria for selecting traffic by their direction.
                                  enum:
                                    - UNDEFINED
                                    - CLIENT
                                    - SERVER
                                    - CLIENT_AND_SERVER
                                  type: string
                                ports:
                                  description: Criteria for selecting traffic by their destination port.
                                  items:
                                    properties:
                                      number:
                                        type: integer
                                    required:
                                      - number
                                    type: object
                                  type: array
                              type: object
                            type: array
                        required:
                          - fqn
                        type: object
                      type: array
                    fqn:
                      description: Fully-qualified name of the resource.
                      type: string
                    propagationStrategy:
                      description: Propagation strategy specifies how a security setting is propagated along the configuration hierarchy.
                      enum:
                        - REPLACE
                        - STRICTER
                      type: string
                    waf:
                      description: 'NOTICE: this feature is in alpha stage and under active development.'
                      properties:
                        rules:
                          description: Rules to be leveraged by WAF.
                          items:
                            type: string
                          type: array
                      required:
                        - rules
                      type: object
                  type: object
                defaultTrafficSetting:
                  description: Traffic settings for all proxy workloads in this organization.
                  properties:
                    configGenerationMetadata:
                      description: Metadata values that will be add into the Istio generated configurations.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                          type: object
                      type: object
                    description:
                      description: A description of the resource.
                      type: string
                    displayName:
                      description: User friendly name for the resource.
                      type: string
                    egress:
                      description: Specifies the details of the egress proxy to which unknown traffic should be forwarded to from the proxy workload.
                      properties:
                        host:
                          description: Specifies the egress gateway hostname.
                          type: string
                        port:
                          description: Deprecated.
                          format: int32
                          type: integer
                      required:
                        - host
                      type: object
                    etag:
                      description: The etag for the resource.
                      type: string
                    fqn:
                      description: Fully-qualified name of the resource.
                      type: string
                    inbound:
                      description: Configures inbound traffic.
                      properties:
                        failoverSettings:
                          description: Failover settings apply to all clients accessing the hostname defined in this section.
                          properties:
                            automaticLoadBalancing:
                              properties:
                                enabled:
                                  description: Whether to enable automatic load balancing.
                                  nullable: true
                                  type: boolean
                              type: object
                            failoverPriority:
                              description: FailoverPriority specifies the failover priority for traffic.
                              items:
                                type: string
                              type: array
                            regionalFailover:
                              description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                              items:
                                properties:
                                  from:
                                    description: Originating region.
                                    type: string
                                  to:
                                    description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                    type: string
                                type: object
                              type: array
                            topologyChoice:
                              description: TopologyChoice specifies the topology preference for traffic priority.
                              enum:
                                - NONE
                                - CLUSTER
                                - LOCALITY
                              type: string
                          type: object
                        rateLimiting:
                          description: Configuration for rate limiting requests.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - settings
                                  - required:
                                      - externalService
                                  - required:
                                      - local
                            - required:
                                - settings
                            - required:
                                - externalService
                            - required:
                                - local
                          properties:
                            externalService:
                              description: Configure ratelimiting using an external ratelimit server.
                              properties:
                                domain:
                                  description: The rate limit domain to use when calling the rate limit service.
                                  type: string
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rateLimitServerUri:
                                  description: The URI at which the external rate limit server can be reached.
                                  type: string
                                rules:
                                  description: A set of rate limit rules.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions that are to be applied for this rate limit configuration.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - sourceCluster
                                                  - required:
                                                      - destinationCluster
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - requestHeaders
                                                  - required:
                                                      - headerValueMatch
                                            - required:
                                                - sourceCluster
                                            - required:
                                                - destinationCluster
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - requestHeaders
                                            - required:
                                                - headerValueMatch
                                          properties:
                                            destinationCluster:
                                              description: Rate limit on destination envoy cluster.
                                              type: object
                                            headerValueMatch:
                                              description: Rate limit on the existence of certain request headers.
                                              properties:
                                                descriptorValue:
                                                  description: The value to use in the descriptor entry.
                                                  type: string
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                headers:
                                                  additionalProperties:
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - exact
                                                            - required:
                                                                - prefix
                                                            - required:
                                                                - regex
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                    properties:
                                                      exact:
                                                        description: Exact string match.
                                                        type: string
                                                      prefix:
                                                        description: Prefix-based match.
                                                        type: string
                                                      regex:
                                                        description: ECMAscript style regex-based match.
                                                        type: string
                                                    type: object
                                                  description: Specifies a set of headers that the rate limit action should match on.
                                                  type: object
                                              required:
                                                - headers
                                                - descriptorValue
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on remote address of client.
                                              type: object
                                            requestHeaders:
                                              description: Rate limit on the value of certain request headers.
                                              properties:
                                                descriptorKey:
                                                  description: The key to use in the descriptor entry.
                                                  type: string
                                                headerName:
                                                  description: The header name to be queried from the request headers.
                                                  type: string
                                              required:
                                                - headerName
                                                - descriptorKey
                                              type: object
                                            sourceCluster:
                                              description: Rate limit on source envoy cluster.
                                              type: object
                                          type: object
                                        type: array
                                    required:
                                      - dimensions
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the external rate limit server RPC.
                                  type: string
                                tls:
                                  description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                              required:
                                - domain
                                - rateLimitServerUri
                                - rules
                              type: object
                            local:
                              description: Apply rate limits internally in the Envoy proxy.
                              properties:
                                maxWildcardDimensions:
                                  description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                  nullable: true
                                  type: integer
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  nullable: true
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  nullable: true
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  nullable: true
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      tokenBucket:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          fillInterval:
                                            description: The fill interval that tokens are added to the bucket.
                                            type: string
                                          maxTokens:
                                            description: The maximum tokens that the bucket can hold.
                                            nullable: true
                                            type: integer
                                          tokensPerFill:
                                            description: The number of tokens added to the bucket during each fill interval.
                                            nullable: true
                                            type: integer
                                        required:
                                          - maxTokens
                                          - fillInterval
                                        type: object
                                    required:
                                      - dimensions
                                      - tokenBucket
                                    type: object
                                  type: array
                              required:
                                - rules
                              type: object
                            settings:
                              properties:
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      limit:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          requestsPerUnit:
                                            description: Specifies the value of the rate limit.
                                            type: integer
                                          unit:
                                            description: Specifies the unit of time for rate limit.
                                            enum:
                                              - UNKNOWN
                                              - SECOND
                                              - MINUTE
                                              - HOUR
                                              - DAY
                                            type: string
                                        required:
                                          - requestsPerUnit
                                          - unit
                                        type: object
                                    required:
                                      - dimensions
                                      - limit
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the rate limit server RPC.
                                  type: string
                              required:
                                - rules
                              type: object
                          type: object
                        resilience:
                          description: Resiliency configuration for inbound connections.
                          properties:
                            connectionPool:
                              description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                              properties:
                                tcp:
                                  properties:
                                    keepAlive:
                                      description: Keep Alive Settings.
                                      properties:
                                        idleTime:
                                          description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                          nullable: true
                                          type: integer
                                        interval:
                                          description: The number of seconds between keep-alive probes.
                                          nullable: true
                                          type: integer
                                        probes:
                                          description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                          nullable: true
                                          type: integer
                                      type: object
                                  type: object
                              type: object
                            meshTimeout:
                              description: Configures the max connection and stream durations for HTTP and TCP connections.
                              properties:
                                maxConnectionDuration:
                                  description: This specifies the duration of time after which a downstream and upstream connection will be drained and/or closed, starting from when it was first established.
                                  type: string
                                maxDownstreamConnectionDuration:
                                  description: The maximum duration of a TCP connection.
                                  type: string
                                maxStreamDuration:
                                  description: The max stream duration is the maximum time that a stream’s lifetime will span.
                                  type: string
                                proxyType:
                                  description: Specifies the type of proxy to which to apply the mesh timeout settings.
                                  enum:
                                    - ANY
                                    - SIDECAR
                                    - GATEWAY
                                  type: string
                              type: object
                          type: object
                      type: object
                    outbound:
                      description: Configures outbound traffic.
                      properties:
                        egress:
                          description: Specifies the details of the egress proxy to which traffic to services that are not part to the mesh should be forwarded to from the proxy workloads.
                          properties:
                            host:
                              description: Specifies the egress gateway hostname.
                              type: string
                          required:
                            - host
                          type: object
                        reachability:
                          description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                          properties:
                            hosts:
                              description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                              items:
                                type: string
                              type: array
                            mode:
                              description: A short cut for specifying the set of services accessed by the workload.
                              enum:
                                - UNSET
                                - NAMESPACE
                                - GROUP
                                - WORKSPACE
                                - CLUSTER
                                - CUSTOM
                              type: string
                          type: object
                        upstreamTrafficSettings:
                          description: List of hosts and the associated traffic settings to be used by the clients sending traffic to them.
                          items:
                            properties:
                              hosts:
                                description: List of hosts for which the settings will be created.
                                items:
                                  type: string
                                type: array
                              settings:
                                description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                properties:
                                  authentication:
                                    description: Configuration for connection authentication parameters.
                                    properties:
                                      trafficMode:
                                        description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                        enum:
                                          - UNSET
                                          - OPTIONAL
                                          - REQUIRED
                                        type: string
                                    type: object
                                  loadBalancer:
                                    description: Load balancing settings for the clients.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - simple
                                            - required:
                                                - consistentHash
                                      - required:
                                          - simple
                                      - required:
                                          - consistentHash
                                    properties:
                                      consistentHash:
                                        allOf:
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - httpHeaderName
                                                    - required:
                                                        - httpCookie
                                                    - required:
                                                        - useSourceIp
                                                    - required:
                                                        - httpQueryParameterName
                                              - required:
                                                  - httpHeaderName
                                              - required:
                                                  - httpCookie
                                              - required:
                                                  - useSourceIp
                                              - required:
                                                  - httpQueryParameterName
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - ringHash
                                                    - required:
                                                        - maglev
                                              - required:
                                                  - ringHash
                                              - required:
                                                  - maglev
                                        description: Use consistent hash load balancing which can provide soft session affinity.
                                        properties:
                                          httpCookie:
                                            description: Hash based on HTTP cookie.
                                            properties:
                                              name:
                                                description: Name of the cookie.
                                                type: string
                                              path:
                                                description: Path to set for the cookie.
                                                type: string
                                              ttl:
                                                description: Lifetime of the cookie.
                                                type: string
                                            required:
                                              - name
                                              - ttl
                                            type: object
                                          httpHeaderName:
                                            description: Hash based on a specific HTTP header.
                                            type: string
                                          httpQueryParameterName:
                                            description: Hash based on a specific HTTP query parameter.
                                            type: string
                                          maglev:
                                            description: The Maglev load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              tableSize:
                                                description: The table size for Maglev hashing.
                                                type: integer
                                            required:
                                              - tableSize
                                            type: object
                                          ringHash:
                                            description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              minimumRingSize:
                                                description: The minimum number of virtual nodes to use for the hash ring.
                                                type: integer
                                            type: object
                                          useSourceIp:
                                            description: Hash based on the source IP address.
                                            type: boolean
                                        type: object
                                      simple:
                                        description: Use standard load balancing algorithms that require no tuning.
                                        enum:
                                          - UNSPECIFIED
                                          - RANDOM
                                          - PASSTHROUGH
                                          - ROUND_ROBIN
                                          - LEAST_REQUEST
                                        type: string
                                    type: object
                                  resilience:
                                    description: Resilience settings for the clients.
                                    properties:
                                      circuitBreakerSensitivity:
                                        description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                        enum:
                                          - UNSET
                                          - LOW
                                          - MEDIUM
                                          - HIGH
                                          - CUSTOM
                                        type: string
                                      connectionPool:
                                        description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                        properties:
                                          http:
                                            properties:
                                              maxRequests:
                                                description: Maximum number of active requests to the service.
                                                type: integer
                                              maxRequestsPerConnection:
                                                description: Maximum number of requests per connection to the service.
                                                type: integer
                                              requestTimeout:
                                                description: Timeout for HTTP requests.
                                                type: string
                                              retries:
                                                description: Retry policy for HTTP requests.
                                                properties:
                                                  attempts:
                                                    description: Number of retries for a given request.
                                                    format: int32
                                                    type: integer
                                                  perTryTimeout:
                                                    description: Timeout per retry attempt for a given request.
                                                    type: string
                                                  retryBackOff:
                                                    description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                    properties:
                                                      baseInterval:
                                                        description: The base interval between retry attempts.
                                                        type: string
                                                      maxInterval:
                                                        description: The maximum interval between retry attempts.
                                                        type: string
                                                    required:
                                                      - baseInterval
                                                    type: object
                                                  retryOn:
                                                    description: Specifies the conditions under which retry takes place.
                                                    type: string
                                                required:
                                                  - attempts
                                                type: object
                                            type: object
                                          tcp:
                                            properties:
                                              connectTimeout:
                                                description: TCP connection timeout.
                                                type: string
                                              keepAlive:
                                                description: Keep Alive Settings.
                                                properties:
                                                  idleTime:
                                                    description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                    nullable: true
                                                    type: integer
                                                  interval:
                                                    description: The number of seconds between keep-alive probes.
                                                    nullable: true
                                                    type: integer
                                                  probes:
                                                    description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                    nullable: true
                                                    type: integer
                                                type: object
                                              maxConnections:
                                                description: Maximum number of HTTP1 /TCP connections to the service.
                                                type: integer
                                            type: object
                                        type: object
                                      outlierDetection:
                                        description: Outlier detection settings for the upstream host when custom mode is used.
                                        properties:
                                          baseEjectionTime:
                                            description: The base time that a host is ejected for.
                                            type: string
                                          consecutive5xx:
                                            description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveGatewayFailure:
                                            description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveLocalOriginFailure:
                                            nullable: true
                                            type: integer
                                          enforcingConsecutive5xx:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveGatewayFailure:
                                            description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveLocalOriginFailure:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                            nullable: true
                                            type: integer
                                          interval:
                                            description: The time interval between ejection analysis sweeps.
                                            type: string
                                          maxEjectionPercent:
                                            description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                            nullable: true
                                            type: integer
                                          maxEjectionTime:
                                            description: The maximum time that a host is ejected for.
                                            type: string
                                          splitExternalLocalOriginErrors:
                                            description: Determines whether to distinguish local origin failures from external errors.
                                            type: boolean
                                        type: object
                                    type: object
                                type: object
                            type: object
                          type: array
                      type: object
                    rateLimiting:
                      description: Configuration for rate limiting requests.
                      oneOf:
                        - not:
                            anyOf:
                              - required:
                                  - settings
                              - required:
                                  - externalService
                              - required:
                                  - local
                        - required:
                            - settings
                        - required:
                            - externalService
                        - required:
                            - local
                      properties:
                        externalService:
                          description: Configure ratelimiting using an external ratelimit server.
                          properties:
                            domain:
                              description: The rate limit domain to use when calling the rate limit service.
                              type: string
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rateLimitServerUri:
                              description: The URI at which the external rate limit server can be reached.
                              type: string
                            rules:
                              description: A set of rate limit rules.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions that are to be applied for this rate limit configuration.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - sourceCluster
                                              - required:
                                                  - destinationCluster
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - requestHeaders
                                              - required:
                                                  - headerValueMatch
                                        - required:
                                            - sourceCluster
                                        - required:
                                            - destinationCluster
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - requestHeaders
                                        - required:
                                            - headerValueMatch
                                      properties:
                                        destinationCluster:
                                          description: Rate limit on destination envoy cluster.
                                          type: object
                                        headerValueMatch:
                                          description: Rate limit on the existence of certain request headers.
                                          properties:
                                            descriptorValue:
                                              description: The value to use in the descriptor entry.
                                              type: string
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            headers:
                                              additionalProperties:
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                              description: Specifies a set of headers that the rate limit action should match on.
                                              type: object
                                          required:
                                            - headers
                                            - descriptorValue
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on remote address of client.
                                          type: object
                                        requestHeaders:
                                          description: Rate limit on the value of certain request headers.
                                          properties:
                                            descriptorKey:
                                              description: The key to use in the descriptor entry.
                                              type: string
                                            headerName:
                                              description: The header name to be queried from the request headers.
                                              type: string
                                          required:
                                            - headerName
                                            - descriptorKey
                                          type: object
                                        sourceCluster:
                                          description: Rate limit on source envoy cluster.
                                          type: object
                                      type: object
                                    type: array
                                required:
                                  - dimensions
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the external rate limit server RPC.
                              type: string
                            tls:
                              description: Configure TLS parameters to be used when connecting to the external rate limit server.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                - required:
                                    - files
                                - required:
                                    - secretName
                              properties:
                                files:
                                  description: TLS key source from files.
                                  properties:
                                    caCertificates:
                                      description: File containing CA certificates to verify the certificates presented by the server.
                                      type: string
                                    clientCertificate:
                                      description: Certificate file to authenticate the client.
                                      type: string
                                    privateKey:
                                      description: Private key file associated with the client certificate.
                                      type: string
                                  type: object
                                mode:
                                  enum:
                                    - DISABLED
                                    - SIMPLE
                                    - MUTUAL
                                  type: string
                                secretName:
                                  description: TLS key source from a Kubernetes Secret.
                                  type: string
                                subjectAltNames:
                                  items:
                                    type: string
                                  type: array
                              type: object
                          required:
                            - domain
                            - rateLimitServerUri
                            - rules
                          type: object
                        local:
                          description: Apply rate limits internally in the Envoy proxy.
                          properties:
                            maxWildcardDimensions:
                              description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                              nullable: true
                              type: integer
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              nullable: true
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              nullable: true
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              nullable: true
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  tokenBucket:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      fillInterval:
                                        description: The fill interval that tokens are added to the bucket.
                                        type: string
                                      maxTokens:
                                        description: The maximum tokens that the bucket can hold.
                                        nullable: true
                                        type: integer
                                      tokensPerFill:
                                        description: The number of tokens added to the bucket during each fill interval.
                                        nullable: true
                                        type: integer
                                    required:
                                      - maxTokens
                                      - fillInterval
                                    type: object
                                required:
                                  - dimensions
                                  - tokenBucket
                                type: object
                              type: array
                          required:
                            - rules
                          type: object
                        settings:
                          properties:
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  limit:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      requestsPerUnit:
                                        description: Specifies the value of the rate limit.
                                        type: integer
                                      unit:
                                        description: Specifies the unit of time for rate limit.
                                        enum:
                                          - UNKNOWN
                                          - SECOND
                                          - MINUTE
                                          - HOUR
                                          - DAY
                                        type: string
                                    required:
                                      - requestsPerUnit
                                      - unit
                                    type: object
                                required:
                                  - dimensions
                                  - limit
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the rate limit server RPC.
                              type: string
                          required:
                            - rules
                          type: object
                      type: object
                    reachability:
                      description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                      properties:
                        hosts:
                          description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                          items:
                            type: string
                          type: array
                        mode:
                          description: A short cut for specifying the set of services accessed by the workload.
                          enum:
                            - UNSET
                            - NAMESPACE
                            - GROUP
                            - WORKSPACE
                            - CLUSTER
                            - CUSTOM
                          type: string
                      type: object
                    resilience:
                      description: Resilience settings such as timeouts, retries, etc., affecting outbound traffic from proxy workloads.
                      properties:
                        circuitBreakerSensitivity:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.circuitBreakerSensitivity`.
                          enum:
                            - UNSET
                            - LOW
                            - MEDIUM
                            - HIGH
                          type: string
                        httpRequestTimeout:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.requestTimeout`.
                          type: string
                        httpRetries:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.retries`.
                          properties:
                            attempts:
                              description: Number of retries for a given request.
                              format: int32
                              type: integer
                            perTryTimeout:
                              description: Timeout per retry attempt for a given request.
                              type: string
                            retryBackOff:
                              description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                              properties:
                                baseInterval:
                                  description: The base interval between retry attempts.
                                  type: string
                                maxInterval:
                                  description: The maximum interval between retry attempts.
                                  type: string
                              required:
                                - baseInterval
                              type: object
                            retryOn:
                              description: Specifies the conditions under which retry takes place.
                              type: string
                          required:
                            - attempts
                          type: object
                        keepAlive:
                          description: Keep Alive Settings.
                          properties:
                            tcp:
                              description: TCP Keep Alive settings associated with the upstream and downstream TCP connections.
                              properties:
                                downstream:
                                  description: TCP Keep Alive Settings associated with the downstream (client) connection.
                                  properties:
                                    idleTime:
                                      description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                      nullable: true
                                      type: integer
                                    interval:
                                      description: The number of seconds between keep-alive probes.
                                      nullable: true
                                      type: integer
                                    probes:
                                      description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                      nullable: true
                                      type: integer
                                  type: object
                                upstream:
                                  description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.tcp.keepAlive`.
                                  properties:
                                    idleTime:
                                      description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                      nullable: true
                                      type: integer
                                    interval:
                                      description: The number of seconds between keep-alive probes.
                                      nullable: true
                                      type: integer
                                    probes:
                                      description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                      nullable: true
                                      type: integer
                                  type: object
                              type: object
                          type: object
                      type: object
                    upstreamTrafficSettings:
                      description: List of hosts and the associated traffic settings to be used by the clients that are downstreams to the defined upstream hosts.
                      items:
                        properties:
                          hosts:
                            description: List of hosts for which the settings will be created.
                            items:
                              type: string
                            type: array
                          settings:
                            description: A single setting to be applied to all the clients connecting to the upstream hosts.
                            properties:
                              authentication:
                                description: Configuration for connection authentication parameters.
                                properties:
                                  trafficMode:
                                    description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                    enum:
                                      - UNSET
                                      - OPTIONAL
                                      - REQUIRED
                                    type: string
                                type: object
                              loadBalancer:
                                description: Load balancing settings for the clients.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - simple
                                        - required:
                                            - consistentHash
                                  - required:
                                      - simple
                                  - required:
                                      - consistentHash
                                properties:
                                  consistentHash:
                                    allOf:
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - httpHeaderName
                                                - required:
                                                    - httpCookie
                                                - required:
                                                    - useSourceIp
                                                - required:
                                                    - httpQueryParameterName
                                          - required:
                                              - httpHeaderName
                                          - required:
                                              - httpCookie
                                          - required:
                                              - useSourceIp
                                          - required:
                                              - httpQueryParameterName
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - ringHash
                                                - required:
                                                    - maglev
                                          - required:
                                              - ringHash
                                          - required:
                                              - maglev
                                    description: Use consistent hash load balancing which can provide soft session affinity.
                                    properties:
                                      httpCookie:
                                        description: Hash based on HTTP cookie.
                                        properties:
                                          name:
                                            description: Name of the cookie.
                                            type: string
                                          path:
                                            description: Path to set for the cookie.
                                            type: string
                                          ttl:
                                            description: Lifetime of the cookie.
                                            type: string
                                        required:
                                          - name
                                          - ttl
                                        type: object
                                      httpHeaderName:
                                        description: Hash based on a specific HTTP header.
                                        type: string
                                      httpQueryParameterName:
                                        description: Hash based on a specific HTTP query parameter.
                                        type: string
                                      maglev:
                                        description: The Maglev load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          tableSize:
                                            description: The table size for Maglev hashing.
                                            type: integer
                                        required:
                                          - tableSize
                                        type: object
                                      ringHash:
                                        description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          minimumRingSize:
                                            description: The minimum number of virtual nodes to use for the hash ring.
                                            type: integer
                                        type: object
                                      useSourceIp:
                                        description: Hash based on the source IP address.
                                        type: boolean
                                    type: object
                                  simple:
                                    description: Use standard load balancing algorithms that require no tuning.
                                    enum:
                                      - UNSPECIFIED
                                      - RANDOM
                                      - PASSTHROUGH
                                      - ROUND_ROBIN
                                      - LEAST_REQUEST
                                    type: string
                                type: object
                              resilience:
                                description: Resilience settings for the clients.
                                properties:
                                  circuitBreakerSensitivity:
                                    description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                    enum:
                                      - UNSET
                                      - LOW
                                      - MEDIUM
                                      - HIGH
                                      - CUSTOM
                                    type: string
                                  connectionPool:
                                    description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                    properties:
                                      http:
                                        properties:
                                          maxRequests:
                                            description: Maximum number of active requests to the service.
                                            type: integer
                                          maxRequestsPerConnection:
                                            description: Maximum number of requests per connection to the service.
                                            type: integer
                                          requestTimeout:
                                            description: Timeout for HTTP requests.
                                            type: string
                                          retries:
                                            description: Retry policy for HTTP requests.
                                            properties:
                                              attempts:
                                                description: Number of retries for a given request.
                                                format: int32
                                                type: integer
                                              perTryTimeout:
                                                description: Timeout per retry attempt for a given request.
                                                type: string
                                              retryBackOff:
                                                description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                properties:
                                                  baseInterval:
                                                    description: The base interval between retry attempts.
                                                    type: string
                                                  maxInterval:
                                                    description: The maximum interval between retry attempts.
                                                    type: string
                                                required:
                                                  - baseInterval
                                                type: object
                                              retryOn:
                                                description: Specifies the conditions under which retry takes place.
                                                type: string
                                            required:
                                              - attempts
                                            type: object
                                        type: object
                                      tcp:
                                        properties:
                                          connectTimeout:
                                            description: TCP connection timeout.
                                            type: string
                                          keepAlive:
                                            description: Keep Alive Settings.
                                            properties:
                                              idleTime:
                                                description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                nullable: true
                                                type: integer
                                              interval:
                                                description: The number of seconds between keep-alive probes.
                                                nullable: true
                                                type: integer
                                              probes:
                                                description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                nullable: true
                                                type: integer
                                            type: object
                                          maxConnections:
                                            description: Maximum number of HTTP1 /TCP connections to the service.
                                            type: integer
                                        type: object
                                    type: object
                                  outlierDetection:
                                    description: Outlier detection settings for the upstream host when custom mode is used.
                                    properties:
                                      baseEjectionTime:
                                        description: The base time that a host is ejected for.
                                        type: string
                                      consecutive5xx:
                                        description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveGatewayFailure:
                                        description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveLocalOriginFailure:
                                        nullable: true
                                        type: integer
                                      enforcingConsecutive5xx:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveGatewayFailure:
                                        description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveLocalOriginFailure:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                        nullable: true
                                        type: integer
                                      interval:
                                        description: The time interval between ejection analysis sweeps.
                                        type: string
                                      maxEjectionPercent:
                                        description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                        nullable: true
                                        type: integer
                                      maxEjectionTime:
                                        description: The maximum time that a host is ejected for.
                                        type: string
                                      splitExternalLocalOriginErrors:
                                        description: Determines whether to distinguish local origin failures from external errors.
                                        type: boolean
                                    type: object
                                type: object
                            type: object
                        type: object
                      type: array
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                failoverSettings:
                  description: Failover settings for all proxies connecting to a host exposed in this organization.
                  properties:
                    automaticLoadBalancing:
                      properties:
                        enabled:
                          description: Whether to enable automatic load balancing.
                          nullable: true
                          type: boolean
                      type: object
                    failoverPriority:
                      description: FailoverPriority specifies the failover priority for traffic.
                      items:
                        type: string
                      type: array
                    regionalFailover:
                      description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                      items:
                        properties:
                          from:
                            description: Originating region.
                            type: string
                          to:
                            description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                            type: string
                        type: object
                      type: array
                    topologyChoice:
                      description: TopologyChoice specifies the topology preference for traffic priority.
                      enum:
                        - NONE
                        - CLUSTER
                        - LOCALITY
                      type: string
                  type: object
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                networkSettings:
                  description: Reachability between clusters on various networks.
                  properties:
                    networkReachability:
                      additionalProperties:
                        type: string
                      description: Reachability between clusters on various networks.
                      type: object
                  type: object
                regionalFailover:
                  description: Default locality routing settings for all gateways.
                  items:
                    properties:
                      from:
                        description: Originating region.
                        type: string
                      to:
                        description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                        type: string
                    type: object
                  type: array
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: serviceaccounts.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: ServiceAccount
    listKind: ServiceAccountList
    plural: serviceaccounts
    shortNames:
      - tsa
    singular: serviceaccount
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: '`ServiceAccount` represents a service account that can be used to access the TSB platform.'
              properties:
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                keys:
                  description: Keys associated with the service account.
                  items:
                    properties:
                      defaultToken:
                        description: A default access token that can be used to authenticate to TSB on behalf of the service account.
                        type: string
                      encoding:
                        description: Format in which the public and private keys are encoded.
                        enum:
                          - PEM
                          - JWK
                        type: string
                      id:
                        description: Unique identifier for this key-pair.
                        type: string
                      privateKey:
                        description: The encoded private key associated with the service account.
                        type: string
                      publicKey:
                        description: The encoded public key associated with the service account.
                        type: string
                    type: object
                  type: array
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: teams.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: Team
    listKind: TeamList
    plural: teams
    shortNames:
      - ttm
    singular: team
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.sourceType
          name: Source
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: '`Team` is a named collection of users, service accounts, and other teams.'
              properties:
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                members:
                  description: List of members under the team.
                  items:
                    type: string
                  type: array
                sourceType:
                  description: Where the team comes from.
                  enum:
                    - INVALID
                    - LDAP
                    - LOCAL
                    - AZURE
                    - MANUAL
                  type: string
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: tenants.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: Tenant
    listKind: TenantList
    plural: tenants
    shortNames:
      - tt
    singular: tenant
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.deletionProtectionEnabled
          name: Deletion Protection
          type: boolean
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: '`Tenant` is a self-contained entity within an organization in the Service Bridge object hierarchy.'
              properties:
                configGenerationMetadata:
                  description: Default metadata values that will be propagated to the children Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                deletionProtectionEnabled:
                  description: When set, prevents the resource from being deleted.
                  type: boolean
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                profiles:
                  description: List of profiles attached to the tenant to be used to propagate default and mandatory configurations down to the children.
                  items:
                    type: string
                  type: array
                securityDomain:
                  description: Security domains can be used to group different resources under the same security domain.
                  type: string
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: tenantsettings.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: TenantSetting
    listKind: TenantSettingList
    plural: tenantsettings
    shortNames:
      - tts
    singular: tenantsetting
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: Tenant Setting allows configuring default settings for the tenant.
              properties:
                defaultSecuritySetting:
                  description: Security settings for all proxy workloads in this tenant.
                  properties:
                    authentication:
                      description: 'DEPRECATED: Specifies whether the proxy workloads should accept only mutual TLS authenticated traffic or allow legacy plaintext traffic as well.'
                      enum:
                        - UNSET
                        - OPTIONAL
                        - REQUIRED
                      type: string
                    authenticationSettings:
                      description: Authentication settings is used to set workload-to-workload traffic and end-user/origin authentication configuration.
                      properties:
                        http:
                          description: HTTP request authentication is used to configure authentication of origin/end-user credentials like JSON Web Token (JWT).
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - jwt
                                  - required:
                                      - rules
                            - required:
                                - jwt
                            - required:
                                - rules
                          properties:
                            jwt:
                              description: Authenticate an HTTP request from a JWT Token attached to it.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                - required:
                                    - jwksUri
                                - required:
                                    - jwks
                              properties:
                                audiences:
                                  description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                  items:
                                    type: string
                                  type: array
                                fromCookies:
                                  description: List of cookie names from which JWT is expected.
                                  items:
                                    type: string
                                  type: array
                                fromHeaders:
                                  description: This field specifies the locations to extract JWT token.
                                  items:
                                    properties:
                                      name:
                                        description: The HTTP header name.
                                        type: string
                                      prefix:
                                        description: The prefix that should be stripped before decoding the token.
                                        type: string
                                    required:
                                      - name
                                    type: object
                                  type: array
                                issuer:
                                  description: Identifies the issuer that issued the JWT.
                                  type: string
                                jwks:
                                  description: JSON Web Key Set of public keys to validate signature of the JWT.
                                  type: string
                                jwksUri:
                                  description: URL of the provider's public key set to validate signature of the JWT.
                                  type: string
                                outputClaimToHeaders:
                                  description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                  items:
                                    properties:
                                      claim:
                                        description: The name of the claim to be copied from.
                                        type: string
                                      header:
                                        description: The name of the header to be created.
                                        type: string
                                    required:
                                      - header
                                      - claim
                                    type: object
                                  type: array
                                outputPayloadToHeader:
                                  description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                  type: string
                              required:
                                - issuer
                              type: object
                            oidc:
                              properties:
                                authScopes:
                                  description: Optional list of OAuth scopes to be claimed in the authorization request.
                                  items:
                                    type: string
                                  type: array
                                authType:
                                  description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                  enum:
                                    - DEFAULT_AUTH_TYPE
                                    - URL_ENCODED_BODY
                                    - BASIC_AUTH
                                  type: string
                                clientId:
                                  description: The client_id to be used in the authorize calls.
                                  type: string
                                clientTokenSecret:
                                  description: The name of the Kubernetes secret containing the client secret.
                                  type: string
                                grantType:
                                  enum:
                                    - DEFAULT_GRANT_TYPE
                                    - AUTHORIZATION_CODE
                                  type: string
                                provider:
                                  description: The OIDC Provider configuration.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    authorizationEndpoint:
                                      description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                      type: string
                                    issuer:
                                      description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                      type: string
                                    jwks:
                                      description: JSON string with the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    jwksUri:
                                      description: URI for the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    tls:
                                      description: The TLS settings used by the clients to connect with the OIDC provider.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    tokenEndpoint:
                                      description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                redirectPathMatcher:
                                  description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                  type: string
                                redirectUri:
                                  description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                  type: string
                                signoutPath:
                                  description: The path to sign a user out, clearing their credential cookies.
                                  type: string
                                useRefreshToken:
                                  description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                  nullable: true
                                  type: boolean
                              required:
                                - clientId
                                - clientTokenSecret
                                - redirectUri
                                - provider
                              type: object
                            requireJwt:
                              description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                              nullable: true
                              type: boolean
                            rules:
                              description: List of rules how to authenticate an HTTP request.
                              properties:
                                jwt:
                                  description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                  items:
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - jwksUri
                                            - required:
                                                - jwks
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                    properties:
                                      audiences:
                                        description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                        items:
                                          type: string
                                        type: array
                                      fromCookies:
                                        description: List of cookie names from which JWT is expected.
                                        items:
                                          type: string
                                        type: array
                                      fromHeaders:
                                        description: This field specifies the locations to extract JWT token.
                                        items:
                                          properties:
                                            name:
                                              description: The HTTP header name.
                                              type: string
                                            prefix:
                                              description: The prefix that should be stripped before decoding the token.
                                              type: string
                                          required:
                                            - name
                                          type: object
                                        type: array
                                      issuer:
                                        description: Identifies the issuer that issued the JWT.
                                        type: string
                                      jwks:
                                        description: JSON Web Key Set of public keys to validate signature of the JWT.
                                        type: string
                                      jwksUri:
                                        description: URL of the provider's public key set to validate signature of the JWT.
                                        type: string
                                      outputClaimToHeaders:
                                        description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                        items:
                                          properties:
                                            claim:
                                              description: The name of the claim to be copied from.
                                              type: string
                                            header:
                                              description: The name of the header to be created.
                                              type: string
                                          required:
                                            - header
                                            - claim
                                          type: object
                                        type: array
                                      outputPayloadToHeader:
                                        description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                        type: string
                                    required:
                                      - issuer
                                    type: object
                                  type: array
                              type: object
                          type: object
                        trafficMode:
                          enum:
                            - UNSET
                            - OPTIONAL
                            - REQUIRED
                          type: string
                      type: object
                    authorization:
                      description: The set of service accounts in one or more namespaces allowed or denied to access a workload (and hence its sidecar) in the mesh.
                      properties:
                        http:
                          description: This is for configuring HTTP request authorization.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - external
                                  - required:
                                      - local
                            - required:
                                - external
                            - required:
                                - local
                          properties:
                            external:
                              properties:
                                allowedUpstreamHeaders:
                                  description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                  items:
                                    type: string
                                  type: array
                                includeRequestHeaders:
                                  items:
                                    type: string
                                  type: array
                                pathPrefix:
                                  description: Sets a prefix to the value of authorization request header Path.
                                  type: string
                                timeout:
                                  description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                  type: string
                                tls:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                uri:
                                  type: string
                              type: object
                            local:
                              properties:
                                rules:
                                  items:
                                    properties:
                                      from:
                                        description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                        items:
                                          properties:
                                            jwt:
                                              description: JWT configuration to identity the subject.
                                              properties:
                                                iss:
                                                  type: string
                                                other:
                                                  additionalProperties:
                                                    type: string
                                                  description: A set of arbitrary claims that are required to qualify the subject.
                                                  type: object
                                                sub:
                                                  type: string
                                              type: object
                                          type: object
                                        type: array
                                      name:
                                        description: A friendly name to identify the binding.
                                        type: string
                                      to:
                                        description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                        items:
                                          properties:
                                            methods:
                                              description: The HTTP methods that are allowed by this rule.
                                              items:
                                                type: string
                                              type: array
                                            paths:
                                              description: The request path where the request is made against.
                                              items:
                                                type: string
                                              type: array
                                          type: object
                                        type: array
                                    required:
                                      - name
                                    type: object
                                  type: array
                              type: object
                          type: object
                        identityMatch:
                          description: identity_match specifies the strategy for client identity verification to be employed during the evaluation of authorization (authz) rules within the service.
                          enum:
                            - UNKNOWN
                            - PEER_CERTIFICATE
                            - PERMISSIVE
                            - SOURCE_IDENTITY
                          type: string
                        mode:
                          description: A short cut for specifying the set of allowed callers.
                          enum:
                            - UNSET
                            - NAMESPACE
                            - GROUP
                            - WORKSPACE
                            - CLUSTER
                            - DISABLED
                            - CUSTOM
                            - RULES
                          type: string
                        rules:
                          description: When the mode is `RULES`, you can allow or deny workload-to-workload communication by specifying in the `rules` field which target workloads are allowed or denied to communicate with other target workloads.
                          properties:
                            allow:
                              description: Allow specifies a list of rules.
                              items:
                                properties:
                                  from:
                                    description: From specifies the source of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the source of a request.
                                        type: string
                                    type: object
                                  to:
                                    description: To specifies the destination of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the destination of a request.
                                        type: string
                                    type: object
                                required:
                                  - from
                                  - to
                                type: object
                              type: array
                            deny:
                              description: Deny specifies a list of rules.
                              items:
                                properties:
                                  from:
                                    description: From specifies the source of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the source of a request.
                                        type: string
                                    type: object
                                  to:
                                    description: To specifies the destination of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the destination of a request.
                                        type: string
                                    type: object
                                required:
                                  - from
                                  - to
                                type: object
                              type: array
                            denyAll:
                              description: Deny all specifies whether all requests should be rejected.
                              type: boolean
                          type: object
                        serviceAccounts:
                          description: When the mode is `CUSTOM`, `serviceAccounts` specify the allowed set of service accounts (and the workloads using them).
                          items:
                            type: string
                          type: array
                      type: object
                    configGenerationMetadata:
                      description: Metadata values that will be add into the Istio generated configurations.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                          type: object
                      type: object
                    description:
                      description: A description of the resource.
                      type: string
                    displayName:
                      description: User friendly name for the resource.
                      type: string
                    etag:
                      description: The etag for the resource.
                      type: string
                    extension:
                      description: Extensions specifies all the WasmExtensions assigned to this SecuritySettings with the specific configuration for each extension.
                      items:
                        properties:
                          config:
                            description: Configuration parameters sent to the WASM plugin execution.
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          fqn:
                            description: Fqn of the extension to be executed.
                            type: string
                          match:
                            description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                            items:
                              properties:
                                mode:
                                  description: Criteria for selecting traffic by their direction.
                                  enum:
                                    - UNDEFINED
                                    - CLIENT
                                    - SERVER
                                    - CLIENT_AND_SERVER
                                  type: string
                                ports:
                                  description: Criteria for selecting traffic by their destination port.
                                  items:
                                    properties:
                                      number:
                                        type: integer
                                    required:
                                      - number
                                    type: object
                                  type: array
                              type: object
                            type: array
                        required:
                          - fqn
                        type: object
                      type: array
                    fqn:
                      description: Fully-qualified name of the resource.
                      type: string
                    propagationStrategy:
                      description: Propagation strategy specifies how a security setting is propagated along the configuration hierarchy.
                      enum:
                        - REPLACE
                        - STRICTER
                      type: string
                    waf:
                      description: 'NOTICE: this feature is in alpha stage and under active development.'
                      properties:
                        rules:
                          description: Rules to be leveraged by WAF.
                          items:
                            type: string
                          type: array
                      required:
                        - rules
                      type: object
                  type: object
                defaultTrafficSetting:
                  description: Traffic settings for all proxy workloads in this tenant.
                  properties:
                    configGenerationMetadata:
                      description: Metadata values that will be add into the Istio generated configurations.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                          type: object
                      type: object
                    description:
                      description: A description of the resource.
                      type: string
                    displayName:
                      description: User friendly name for the resource.
                      type: string
                    egress:
                      description: Specifies the details of the egress proxy to which unknown traffic should be forwarded to from the proxy workload.
                      properties:
                        host:
                          description: Specifies the egress gateway hostname.
                          type: string
                        port:
                          description: Deprecated.
                          format: int32
                          type: integer
                      required:
                        - host
                      type: object
                    etag:
                      description: The etag for the resource.
                      type: string
                    fqn:
                      description: Fully-qualified name of the resource.
                      type: string
                    inbound:
                      description: Configures inbound traffic.
                      properties:
                        failoverSettings:
                          description: Failover settings apply to all clients accessing the hostname defined in this section.
                          properties:
                            automaticLoadBalancing:
                              properties:
                                enabled:
                                  description: Whether to enable automatic load balancing.
                                  nullable: true
                                  type: boolean
                              type: object
                            failoverPriority:
                              description: FailoverPriority specifies the failover priority for traffic.
                              items:
                                type: string
                              type: array
                            regionalFailover:
                              description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                              items:
                                properties:
                                  from:
                                    description: Originating region.
                                    type: string
                                  to:
                                    description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                    type: string
                                type: object
                              type: array
                            topologyChoice:
                              description: TopologyChoice specifies the topology preference for traffic priority.
                              enum:
                                - NONE
                                - CLUSTER
                                - LOCALITY
                              type: string
                          type: object
                        rateLimiting:
                          description: Configuration for rate limiting requests.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - settings
                                  - required:
                                      - externalService
                                  - required:
                                      - local
                            - required:
                                - settings
                            - required:
                                - externalService
                            - required:
                                - local
                          properties:
                            externalService:
                              description: Configure ratelimiting using an external ratelimit server.
                              properties:
                                domain:
                                  description: The rate limit domain to use when calling the rate limit service.
                                  type: string
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rateLimitServerUri:
                                  description: The URI at which the external rate limit server can be reached.
                                  type: string
                                rules:
                                  description: A set of rate limit rules.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions that are to be applied for this rate limit configuration.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - sourceCluster
                                                  - required:
                                                      - destinationCluster
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - requestHeaders
                                                  - required:
                                                      - headerValueMatch
                                            - required:
                                                - sourceCluster
                                            - required:
                                                - destinationCluster
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - requestHeaders
                                            - required:
                                                - headerValueMatch
                                          properties:
                                            destinationCluster:
                                              description: Rate limit on destination envoy cluster.
                                              type: object
                                            headerValueMatch:
                                              description: Rate limit on the existence of certain request headers.
                                              properties:
                                                descriptorValue:
                                                  description: The value to use in the descriptor entry.
                                                  type: string
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                headers:
                                                  additionalProperties:
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - exact
                                                            - required:
                                                                - prefix
                                                            - required:
                                                                - regex
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                    properties:
                                                      exact:
                                                        description: Exact string match.
                                                        type: string
                                                      prefix:
                                                        description: Prefix-based match.
                                                        type: string
                                                      regex:
                                                        description: ECMAscript style regex-based match.
                                                        type: string
                                                    type: object
                                                  description: Specifies a set of headers that the rate limit action should match on.
                                                  type: object
                                              required:
                                                - headers
                                                - descriptorValue
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on remote address of client.
                                              type: object
                                            requestHeaders:
                                              description: Rate limit on the value of certain request headers.
                                              properties:
                                                descriptorKey:
                                                  description: The key to use in the descriptor entry.
                                                  type: string
                                                headerName:
                                                  description: The header name to be queried from the request headers.
                                                  type: string
                                              required:
                                                - headerName
                                                - descriptorKey
                                              type: object
                                            sourceCluster:
                                              description: Rate limit on source envoy cluster.
                                              type: object
                                          type: object
                                        type: array
                                    required:
                                      - dimensions
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the external rate limit server RPC.
                                  type: string
                                tls:
                                  description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                              required:
                                - domain
                                - rateLimitServerUri
                                - rules
                              type: object
                            local:
                              description: Apply rate limits internally in the Envoy proxy.
                              properties:
                                maxWildcardDimensions:
                                  description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                  nullable: true
                                  type: integer
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  nullable: true
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  nullable: true
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  nullable: true
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      tokenBucket:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          fillInterval:
                                            description: The fill interval that tokens are added to the bucket.
                                            type: string
                                          maxTokens:
                                            description: The maximum tokens that the bucket can hold.
                                            nullable: true
                                            type: integer
                                          tokensPerFill:
                                            description: The number of tokens added to the bucket during each fill interval.
                                            nullable: true
                                            type: integer
                                        required:
                                          - maxTokens
                                          - fillInterval
                                        type: object
                                    required:
                                      - dimensions
                                      - tokenBucket
                                    type: object
                                  type: array
                              required:
                                - rules
                              type: object
                            settings:
                              properties:
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      limit:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          requestsPerUnit:
                                            description: Specifies the value of the rate limit.
                                            type: integer
                                          unit:
                                            description: Specifies the unit of time for rate limit.
                                            enum:
                                              - UNKNOWN
                                              - SECOND
                                              - MINUTE
                                              - HOUR
                                              - DAY
                                            type: string
                                        required:
                                          - requestsPerUnit
                                          - unit
                                        type: object
                                    required:
                                      - dimensions
                                      - limit
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the rate limit server RPC.
                                  type: string
                              required:
                                - rules
                              type: object
                          type: object
                        resilience:
                          description: Resiliency configuration for inbound connections.
                          properties:
                            connectionPool:
                              description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                              properties:
                                tcp:
                                  properties:
                                    keepAlive:
                                      description: Keep Alive Settings.
                                      properties:
                                        idleTime:
                                          description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                          nullable: true
                                          type: integer
                                        interval:
                                          description: The number of seconds between keep-alive probes.
                                          nullable: true
                                          type: integer
                                        probes:
                                          description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                          nullable: true
                                          type: integer
                                      type: object
                                  type: object
                              type: object
                            meshTimeout:
                              description: Configures the max connection and stream durations for HTTP and TCP connections.
                              properties:
                                maxConnectionDuration:
                                  description: This specifies the duration of time after which a downstream and upstream connection will be drained and/or closed, starting from when it was first established.
                                  type: string
                                maxDownstreamConnectionDuration:
                                  description: The maximum duration of a TCP connection.
                                  type: string
                                maxStreamDuration:
                                  description: The max stream duration is the maximum time that a stream’s lifetime will span.
                                  type: string
                                proxyType:
                                  description: Specifies the type of proxy to which to apply the mesh timeout settings.
                                  enum:
                                    - ANY
                                    - SIDECAR
                                    - GATEWAY
                                  type: string
                              type: object
                          type: object
                      type: object
                    outbound:
                      description: Configures outbound traffic.
                      properties:
                        egress:
                          description: Specifies the details of the egress proxy to which traffic to services that are not part to the mesh should be forwarded to from the proxy workloads.
                          properties:
                            host:
                              description: Specifies the egress gateway hostname.
                              type: string
                          required:
                            - host
                          type: object
                        reachability:
                          description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                          properties:
                            hosts:
                              description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                              items:
                                type: string
                              type: array
                            mode:
                              description: A short cut for specifying the set of services accessed by the workload.
                              enum:
                                - UNSET
                                - NAMESPACE
                                - GROUP
                                - WORKSPACE
                                - CLUSTER
                                - CUSTOM
                              type: string
                          type: object
                        upstreamTrafficSettings:
                          description: List of hosts and the associated traffic settings to be used by the clients sending traffic to them.
                          items:
                            properties:
                              hosts:
                                description: List of hosts for which the settings will be created.
                                items:
                                  type: string
                                type: array
                              settings:
                                description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                properties:
                                  authentication:
                                    description: Configuration for connection authentication parameters.
                                    properties:
                                      trafficMode:
                                        description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                        enum:
                                          - UNSET
                                          - OPTIONAL
                                          - REQUIRED
                                        type: string
                                    type: object
                                  loadBalancer:
                                    description: Load balancing settings for the clients.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - simple
                                            - required:
                                                - consistentHash
                                      - required:
                                          - simple
                                      - required:
                                          - consistentHash
                                    properties:
                                      consistentHash:
                                        allOf:
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - httpHeaderName
                                                    - required:
                                                        - httpCookie
                                                    - required:
                                                        - useSourceIp
                                                    - required:
                                                        - httpQueryParameterName
                                              - required:
                                                  - httpHeaderName
                                              - required:
                                                  - httpCookie
                                              - required:
                                                  - useSourceIp
                                              - required:
                                                  - httpQueryParameterName
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - ringHash
                                                    - required:
                                                        - maglev
                                              - required:
                                                  - ringHash
                                              - required:
                                                  - maglev
                                        description: Use consistent hash load balancing which can provide soft session affinity.
                                        properties:
                                          httpCookie:
                                            description: Hash based on HTTP cookie.
                                            properties:
                                              name:
                                                description: Name of the cookie.
                                                type: string
                                              path:
                                                description: Path to set for the cookie.
                                                type: string
                                              ttl:
                                                description: Lifetime of the cookie.
                                                type: string
                                            required:
                                              - name
                                              - ttl
                                            type: object
                                          httpHeaderName:
                                            description: Hash based on a specific HTTP header.
                                            type: string
                                          httpQueryParameterName:
                                            description: Hash based on a specific HTTP query parameter.
                                            type: string
                                          maglev:
                                            description: The Maglev load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              tableSize:
                                                description: The table size for Maglev hashing.
                                                type: integer
                                            required:
                                              - tableSize
                                            type: object
                                          ringHash:
                                            description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              minimumRingSize:
                                                description: The minimum number of virtual nodes to use for the hash ring.
                                                type: integer
                                            type: object
                                          useSourceIp:
                                            description: Hash based on the source IP address.
                                            type: boolean
                                        type: object
                                      simple:
                                        description: Use standard load balancing algorithms that require no tuning.
                                        enum:
                                          - UNSPECIFIED
                                          - RANDOM
                                          - PASSTHROUGH
                                          - ROUND_ROBIN
                                          - LEAST_REQUEST
                                        type: string
                                    type: object
                                  resilience:
                                    description: Resilience settings for the clients.
                                    properties:
                                      circuitBreakerSensitivity:
                                        description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                        enum:
                                          - UNSET
                                          - LOW
                                          - MEDIUM
                                          - HIGH
                                          - CUSTOM
                                        type: string
                                      connectionPool:
                                        description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                        properties:
                                          http:
                                            properties:
                                              maxRequests:
                                                description: Maximum number of active requests to the service.
                                                type: integer
                                              maxRequestsPerConnection:
                                                description: Maximum number of requests per connection to the service.
                                                type: integer
                                              requestTimeout:
                                                description: Timeout for HTTP requests.
                                                type: string
                                              retries:
                                                description: Retry policy for HTTP requests.
                                                properties:
                                                  attempts:
                                                    description: Number of retries for a given request.
                                                    format: int32
                                                    type: integer
                                                  perTryTimeout:
                                                    description: Timeout per retry attempt for a given request.
                                                    type: string
                                                  retryBackOff:
                                                    description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                    properties:
                                                      baseInterval:
                                                        description: The base interval between retry attempts.
                                                        type: string
                                                      maxInterval:
                                                        description: The maximum interval between retry attempts.
                                                        type: string
                                                    required:
                                                      - baseInterval
                                                    type: object
                                                  retryOn:
                                                    description: Specifies the conditions under which retry takes place.
                                                    type: string
                                                required:
                                                  - attempts
                                                type: object
                                            type: object
                                          tcp:
                                            properties:
                                              connectTimeout:
                                                description: TCP connection timeout.
                                                type: string
                                              keepAlive:
                                                description: Keep Alive Settings.
                                                properties:
                                                  idleTime:
                                                    description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                    nullable: true
                                                    type: integer
                                                  interval:
                                                    description: The number of seconds between keep-alive probes.
                                                    nullable: true
                                                    type: integer
                                                  probes:
                                                    description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                    nullable: true
                                                    type: integer
                                                type: object
                                              maxConnections:
                                                description: Maximum number of HTTP1 /TCP connections to the service.
                                                type: integer
                                            type: object
                                        type: object
                                      outlierDetection:
                                        description: Outlier detection settings for the upstream host when custom mode is used.
                                        properties:
                                          baseEjectionTime:
                                            description: The base time that a host is ejected for.
                                            type: string
                                          consecutive5xx:
                                            description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveGatewayFailure:
                                            description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveLocalOriginFailure:
                                            nullable: true
                                            type: integer
                                          enforcingConsecutive5xx:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveGatewayFailure:
                                            description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveLocalOriginFailure:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                            nullable: true
                                            type: integer
                                          interval:
                                            description: The time interval between ejection analysis sweeps.
                                            type: string
                                          maxEjectionPercent:
                                            description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                            nullable: true
                                            type: integer
                                          maxEjectionTime:
                                            description: The maximum time that a host is ejected for.
                                            type: string
                                          splitExternalLocalOriginErrors:
                                            description: Determines whether to distinguish local origin failures from external errors.
                                            type: boolean
                                        type: object
                                    type: object
                                type: object
                            type: object
                          type: array
                      type: object
                    rateLimiting:
                      description: Configuration for rate limiting requests.
                      oneOf:
                        - not:
                            anyOf:
                              - required:
                                  - settings
                              - required:
                                  - externalService
                              - required:
                                  - local
                        - required:
                            - settings
                        - required:
                            - externalService
                        - required:
                            - local
                      properties:
                        externalService:
                          description: Configure ratelimiting using an external ratelimit server.
                          properties:
                            domain:
                              description: The rate limit domain to use when calling the rate limit service.
                              type: string
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rateLimitServerUri:
                              description: The URI at which the external rate limit server can be reached.
                              type: string
                            rules:
                              description: A set of rate limit rules.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions that are to be applied for this rate limit configuration.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - sourceCluster
                                              - required:
                                                  - destinationCluster
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - requestHeaders
                                              - required:
                                                  - headerValueMatch
                                        - required:
                                            - sourceCluster
                                        - required:
                                            - destinationCluster
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - requestHeaders
                                        - required:
                                            - headerValueMatch
                                      properties:
                                        destinationCluster:
                                          description: Rate limit on destination envoy cluster.
                                          type: object
                                        headerValueMatch:
                                          description: Rate limit on the existence of certain request headers.
                                          properties:
                                            descriptorValue:
                                              description: The value to use in the descriptor entry.
                                              type: string
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            headers:
                                              additionalProperties:
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                              description: Specifies a set of headers that the rate limit action should match on.
                                              type: object
                                          required:
                                            - headers
                                            - descriptorValue
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on remote address of client.
                                          type: object
                                        requestHeaders:
                                          description: Rate limit on the value of certain request headers.
                                          properties:
                                            descriptorKey:
                                              description: The key to use in the descriptor entry.
                                              type: string
                                            headerName:
                                              description: The header name to be queried from the request headers.
                                              type: string
                                          required:
                                            - headerName
                                            - descriptorKey
                                          type: object
                                        sourceCluster:
                                          description: Rate limit on source envoy cluster.
                                          type: object
                                      type: object
                                    type: array
                                required:
                                  - dimensions
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the external rate limit server RPC.
                              type: string
                            tls:
                              description: Configure TLS parameters to be used when connecting to the external rate limit server.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                - required:
                                    - files
                                - required:
                                    - secretName
                              properties:
                                files:
                                  description: TLS key source from files.
                                  properties:
                                    caCertificates:
                                      description: File containing CA certificates to verify the certificates presented by the server.
                                      type: string
                                    clientCertificate:
                                      description: Certificate file to authenticate the client.
                                      type: string
                                    privateKey:
                                      description: Private key file associated with the client certificate.
                                      type: string
                                  type: object
                                mode:
                                  enum:
                                    - DISABLED
                                    - SIMPLE
                                    - MUTUAL
                                  type: string
                                secretName:
                                  description: TLS key source from a Kubernetes Secret.
                                  type: string
                                subjectAltNames:
                                  items:
                                    type: string
                                  type: array
                              type: object
                          required:
                            - domain
                            - rateLimitServerUri
                            - rules
                          type: object
                        local:
                          description: Apply rate limits internally in the Envoy proxy.
                          properties:
                            maxWildcardDimensions:
                              description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                              nullable: true
                              type: integer
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              nullable: true
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              nullable: true
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              nullable: true
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  tokenBucket:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      fillInterval:
                                        description: The fill interval that tokens are added to the bucket.
                                        type: string
                                      maxTokens:
                                        description: The maximum tokens that the bucket can hold.
                                        nullable: true
                                        type: integer
                                      tokensPerFill:
                                        description: The number of tokens added to the bucket during each fill interval.
                                        nullable: true
                                        type: integer
                                    required:
                                      - maxTokens
                                      - fillInterval
                                    type: object
                                required:
                                  - dimensions
                                  - tokenBucket
                                type: object
                              type: array
                          required:
                            - rules
                          type: object
                        settings:
                          properties:
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  limit:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      requestsPerUnit:
                                        description: Specifies the value of the rate limit.
                                        type: integer
                                      unit:
                                        description: Specifies the unit of time for rate limit.
                                        enum:
                                          - UNKNOWN
                                          - SECOND
                                          - MINUTE
                                          - HOUR
                                          - DAY
                                        type: string
                                    required:
                                      - requestsPerUnit
                                      - unit
                                    type: object
                                required:
                                  - dimensions
                                  - limit
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the rate limit server RPC.
                              type: string
                          required:
                            - rules
                          type: object
                      type: object
                    reachability:
                      description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                      properties:
                        hosts:
                          description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                          items:
                            type: string
                          type: array
                        mode:
                          description: A short cut for specifying the set of services accessed by the workload.
                          enum:
                            - UNSET
                            - NAMESPACE
                            - GROUP
                            - WORKSPACE
                            - CLUSTER
                            - CUSTOM
                          type: string
                      type: object
                    resilience:
                      description: Resilience settings such as timeouts, retries, etc., affecting outbound traffic from proxy workloads.
                      properties:
                        circuitBreakerSensitivity:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.circuitBreakerSensitivity`.
                          enum:
                            - UNSET
                            - LOW
                            - MEDIUM
                            - HIGH
                          type: string
                        httpRequestTimeout:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.requestTimeout`.
                          type: string
                        httpRetries:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.retries`.
                          properties:
                            attempts:
                              description: Number of retries for a given request.
                              format: int32
                              type: integer
                            perTryTimeout:
                              description: Timeout per retry attempt for a given request.
                              type: string
                            retryBackOff:
                              description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                              properties:
                                baseInterval:
                                  description: The base interval between retry attempts.
                                  type: string
                                maxInterval:
                                  description: The maximum interval between retry attempts.
                                  type: string
                              required:
                                - baseInterval
                              type: object
                            retryOn:
                              description: Specifies the conditions under which retry takes place.
                              type: string
                          required:
                            - attempts
                          type: object
                        keepAlive:
                          description: Keep Alive Settings.
                          properties:
                            tcp:
                              description: TCP Keep Alive settings associated with the upstream and downstream TCP connections.
                              properties:
                                downstream:
                                  description: TCP Keep Alive Settings associated with the downstream (client) connection.
                                  properties:
                                    idleTime:
                                      description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                      nullable: true
                                      type: integer
                                    interval:
                                      description: The number of seconds between keep-alive probes.
                                      nullable: true
                                      type: integer
                                    probes:
                                      description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                      nullable: true
                                      type: integer
                                  type: object
                                upstream:
                                  description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.tcp.keepAlive`.
                                  properties:
                                    idleTime:
                                      description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                      nullable: true
                                      type: integer
                                    interval:
                                      description: The number of seconds between keep-alive probes.
                                      nullable: true
                                      type: integer
                                    probes:
                                      description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                      nullable: true
                                      type: integer
                                  type: object
                              type: object
                          type: object
                      type: object
                    upstreamTrafficSettings:
                      description: List of hosts and the associated traffic settings to be used by the clients that are downstreams to the defined upstream hosts.
                      items:
                        properties:
                          hosts:
                            description: List of hosts for which the settings will be created.
                            items:
                              type: string
                            type: array
                          settings:
                            description: A single setting to be applied to all the clients connecting to the upstream hosts.
                            properties:
                              authentication:
                                description: Configuration for connection authentication parameters.
                                properties:
                                  trafficMode:
                                    description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                    enum:
                                      - UNSET
                                      - OPTIONAL
                                      - REQUIRED
                                    type: string
                                type: object
                              loadBalancer:
                                description: Load balancing settings for the clients.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - simple
                                        - required:
                                            - consistentHash
                                  - required:
                                      - simple
                                  - required:
                                      - consistentHash
                                properties:
                                  consistentHash:
                                    allOf:
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - httpHeaderName
                                                - required:
                                                    - httpCookie
                                                - required:
                                                    - useSourceIp
                                                - required:
                                                    - httpQueryParameterName
                                          - required:
                                              - httpHeaderName
                                          - required:
                                              - httpCookie
                                          - required:
                                              - useSourceIp
                                          - required:
                                              - httpQueryParameterName
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - ringHash
                                                - required:
                                                    - maglev
                                          - required:
                                              - ringHash
                                          - required:
                                              - maglev
                                    description: Use consistent hash load balancing which can provide soft session affinity.
                                    properties:
                                      httpCookie:
                                        description: Hash based on HTTP cookie.
                                        properties:
                                          name:
                                            description: Name of the cookie.
                                            type: string
                                          path:
                                            description: Path to set for the cookie.
                                            type: string
                                          ttl:
                                            description: Lifetime of the cookie.
                                            type: string
                                        required:
                                          - name
                                          - ttl
                                        type: object
                                      httpHeaderName:
                                        description: Hash based on a specific HTTP header.
                                        type: string
                                      httpQueryParameterName:
                                        description: Hash based on a specific HTTP query parameter.
                                        type: string
                                      maglev:
                                        description: The Maglev load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          tableSize:
                                            description: The table size for Maglev hashing.
                                            type: integer
                                        required:
                                          - tableSize
                                        type: object
                                      ringHash:
                                        description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          minimumRingSize:
                                            description: The minimum number of virtual nodes to use for the hash ring.
                                            type: integer
                                        type: object
                                      useSourceIp:
                                        description: Hash based on the source IP address.
                                        type: boolean
                                    type: object
                                  simple:
                                    description: Use standard load balancing algorithms that require no tuning.
                                    enum:
                                      - UNSPECIFIED
                                      - RANDOM
                                      - PASSTHROUGH
                                      - ROUND_ROBIN
                                      - LEAST_REQUEST
                                    type: string
                                type: object
                              resilience:
                                description: Resilience settings for the clients.
                                properties:
                                  circuitBreakerSensitivity:
                                    description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                    enum:
                                      - UNSET
                                      - LOW
                                      - MEDIUM
                                      - HIGH
                                      - CUSTOM
                                    type: string
                                  connectionPool:
                                    description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                    properties:
                                      http:
                                        properties:
                                          maxRequests:
                                            description: Maximum number of active requests to the service.
                                            type: integer
                                          maxRequestsPerConnection:
                                            description: Maximum number of requests per connection to the service.
                                            type: integer
                                          requestTimeout:
                                            description: Timeout for HTTP requests.
                                            type: string
                                          retries:
                                            description: Retry policy for HTTP requests.
                                            properties:
                                              attempts:
                                                description: Number of retries for a given request.
                                                format: int32
                                                type: integer
                                              perTryTimeout:
                                                description: Timeout per retry attempt for a given request.
                                                type: string
                                              retryBackOff:
                                                description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                properties:
                                                  baseInterval:
                                                    description: The base interval between retry attempts.
                                                    type: string
                                                  maxInterval:
                                                    description: The maximum interval between retry attempts.
                                                    type: string
                                                required:
                                                  - baseInterval
                                                type: object
                                              retryOn:
                                                description: Specifies the conditions under which retry takes place.
                                                type: string
                                            required:
                                              - attempts
                                            type: object
                                        type: object
                                      tcp:
                                        properties:
                                          connectTimeout:
                                            description: TCP connection timeout.
                                            type: string
                                          keepAlive:
                                            description: Keep Alive Settings.
                                            properties:
                                              idleTime:
                                                description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                nullable: true
                                                type: integer
                                              interval:
                                                description: The number of seconds between keep-alive probes.
                                                nullable: true
                                                type: integer
                                              probes:
                                                description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                nullable: true
                                                type: integer
                                            type: object
                                          maxConnections:
                                            description: Maximum number of HTTP1 /TCP connections to the service.
                                            type: integer
                                        type: object
                                    type: object
                                  outlierDetection:
                                    description: Outlier detection settings for the upstream host when custom mode is used.
                                    properties:
                                      baseEjectionTime:
                                        description: The base time that a host is ejected for.
                                        type: string
                                      consecutive5xx:
                                        description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveGatewayFailure:
                                        description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveLocalOriginFailure:
                                        nullable: true
                                        type: integer
                                      enforcingConsecutive5xx:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveGatewayFailure:
                                        description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveLocalOriginFailure:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                        nullable: true
                                        type: integer
                                      interval:
                                        description: The time interval between ejection analysis sweeps.
                                        type: string
                                      maxEjectionPercent:
                                        description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                        nullable: true
                                        type: integer
                                      maxEjectionTime:
                                        description: The maximum time that a host is ejected for.
                                        type: string
                                      splitExternalLocalOriginErrors:
                                        description: Determines whether to distinguish local origin failures from external errors.
                                        type: boolean
                                    type: object
                                type: object
                            type: object
                        type: object
                      type: array
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: users.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: User
    listKind: UserList
    plural: users
    shortNames:
      - tu
    singular: user
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.loginName
          name: Login Name
          type: string
        - jsonPath: .spec.email
          name: Email
          type: string
        - jsonPath: .spec.sourceType
          name: Source
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: '`User` represents a user that has been loaded from a configured Identity Provider (IdP) that can log into the platform.'
              properties:
                displayName:
                  description: User friendly name for the resource.
                  type: string
                email:
                  description: Email for the user where alerts and other notifications will be sent.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                firstName:
                  description: The first name of the user.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                lastName:
                  description: The last name of the user, if any.
                  type: string
                loginName:
                  description: The username used in the login credentials.
                  type: string
                sourceType:
                  description: Where the user comes from.
                  enum:
                    - INVALID
                    - LDAP
                    - LOCAL
                    - AZURE
                    - MANUAL
                  type: string
              required:
                - loginName
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: workspaces.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: Workspace
    listKind: WorkspaceList
    plural: workspaces
    shortNames:
      - twk
    singular: workspace
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.privileged
          name: Privileged
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - jsonPath: .spec.deletionProtectionEnabled
          name: Deletion Protection
          type: boolean
        - jsonPath: .spec.namespaceSelector.names
          name: Namespace Selector
          priority: 1
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: A Workspace carves a chunk of the cluster resources owned by a tenant into an isolated configuration domain.
              properties:
                configGenerationMetadata:
                  description: Default metadata values that will be propagated to the children Istio generated configurations.
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                      type: object
                  type: object
                deletionProtectionEnabled:
                  description: When set, prevents the resource from being deleted.
                  type: boolean
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                isolationBoundary:
                  description: Istio Isolation Boundary name to which this workspace belongs.
                  type: string
                namespaceSelector:
                  description: Set of namespaces owned exclusively by this workspace.
                  properties:
                    names:
                      description: 'Under the tenant/workspace/group: - `*/ns1` implies `ns1` namespace in any cluster.'
                      items:
                        type: string
                      type: array
                  required:
                    - names
                  type: object
                privileged:
                  description: If set to true, allows Gateways in the workspace to route to services in other workspaces.
                  nullable: true
                  type: boolean
                profiles:
                  description: List of profiles attached to the workspace to be used to propagate default and mandatory configurations down to the children.
                  items:
                    type: string
                  type: array
                securityDomain:
                  description: Security domains can be used to group different resources under the same security domain.
                  type: string
              required:
                - namespaceSelector
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: workspacesettings.tsb.tetrate.io
spec:
  group: tsb.tetrate.io
  names:
    categories:
      - tetrate-io
      - tsb-tetrate-io
    kind: WorkspaceSetting
    listKind: WorkspaceSettingList
    plural: workspacesettings
    shortNames:
      - tws
    singular: workspacesetting
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/workspace']
          name: Workspace
          type: string
        - jsonPath: .metadata.annotations['tsb\.tetrate\.io\/tenant']
          name: Tenant
          type: string
        - description: Details about the synchronization of this object to the TSB Management Plane.
          jsonPath: .status.conditions[?(@.type contains "Ready")].reason
          name: Sync Status
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: Workspace setting allows configuring the default traffic, security and east-west gateway settings for all the workloads in the namespaces owned by the workspace.
              properties:
                defaultEastWestGatewaySettings:
                  description: Default east west gateway settings specifies workspace-wide east-west gateway configuration.
                  items:
                    properties:
                      configGenerationMetadata:
                        description: Metadata values that will be add into the Istio generated configurations.
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                            type: object
                          labels:
                            additionalProperties:
                              type: string
                            description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                            type: object
                        type: object
                      exposedServices:
                        description: Exposed services is used to specify the match criteria to select specific services for internal multicluster routing (east-west routing between clusters).
                        items:
                          properties:
                            serviceLabels:
                              additionalProperties:
                                type: string
                              type: object
                          required:
                            - serviceLabels
                          type: object
                        type: array
                      workloadSelector:
                        description: Specify the gateway workloads (pod labels and Kubernetes namespace) under the gateway group that should be configured with this gateway.
                        properties:
                          labels:
                            additionalProperties:
                              type: string
                            description: One or more labels that indicate a specific set of pods/VMs in the namespace.
                            type: object
                          namespace:
                            description: The namespace where the workload resides.
                            type: string
                        required:
                          - namespace
                          - labels
                        type: object
                    required:
                      - workloadSelector
                    type: object
                  type: array
                defaultSecuritySetting:
                  description: Security settings for all proxy workloads in this workspace.
                  properties:
                    authentication:
                      description: 'DEPRECATED: Specifies whether the proxy workloads should accept only mutual TLS authenticated traffic or allow legacy plaintext traffic as well.'
                      enum:
                        - UNSET
                        - OPTIONAL
                        - REQUIRED
                      type: string
                    authenticationSettings:
                      description: Authentication settings is used to set workload-to-workload traffic and end-user/origin authentication configuration.
                      properties:
                        http:
                          description: HTTP request authentication is used to configure authentication of origin/end-user credentials like JSON Web Token (JWT).
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - jwt
                                  - required:
                                      - rules
                            - required:
                                - jwt
                            - required:
                                - rules
                          properties:
                            jwt:
                              description: Authenticate an HTTP request from a JWT Token attached to it.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                - required:
                                    - jwksUri
                                - required:
                                    - jwks
                              properties:
                                audiences:
                                  description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                  items:
                                    type: string
                                  type: array
                                fromCookies:
                                  description: List of cookie names from which JWT is expected.
                                  items:
                                    type: string
                                  type: array
                                fromHeaders:
                                  description: This field specifies the locations to extract JWT token.
                                  items:
                                    properties:
                                      name:
                                        description: The HTTP header name.
                                        type: string
                                      prefix:
                                        description: The prefix that should be stripped before decoding the token.
                                        type: string
                                    required:
                                      - name
                                    type: object
                                  type: array
                                issuer:
                                  description: Identifies the issuer that issued the JWT.
                                  type: string
                                jwks:
                                  description: JSON Web Key Set of public keys to validate signature of the JWT.
                                  type: string
                                jwksUri:
                                  description: URL of the provider's public key set to validate signature of the JWT.
                                  type: string
                                outputClaimToHeaders:
                                  description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                  items:
                                    properties:
                                      claim:
                                        description: The name of the claim to be copied from.
                                        type: string
                                      header:
                                        description: The name of the header to be created.
                                        type: string
                                    required:
                                      - header
                                      - claim
                                    type: object
                                  type: array
                                outputPayloadToHeader:
                                  description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                  type: string
                              required:
                                - issuer
                              type: object
                            oidc:
                              properties:
                                authScopes:
                                  description: Optional list of OAuth scopes to be claimed in the authorization request.
                                  items:
                                    type: string
                                  type: array
                                authType:
                                  description: Defines how client_id and client_secret are sent in OAuth client to OAuth server requests.
                                  enum:
                                    - DEFAULT_AUTH_TYPE
                                    - URL_ENCODED_BODY
                                    - BASIC_AUTH
                                  type: string
                                clientId:
                                  description: The client_id to be used in the authorize calls.
                                  type: string
                                clientTokenSecret:
                                  description: The name of the Kubernetes secret containing the client secret.
                                  type: string
                                grantType:
                                  enum:
                                    - DEFAULT_GRANT_TYPE
                                    - AUTHORIZATION_CODE
                                  type: string
                                provider:
                                  description: The OIDC Provider configuration.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - jwksUri
                                          - required:
                                              - jwks
                                    - required:
                                        - jwksUri
                                    - required:
                                        - jwks
                                  properties:
                                    authorizationEndpoint:
                                      description: The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
                                      type: string
                                    issuer:
                                      description: The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
                                      type: string
                                    jwks:
                                      description: JSON string with the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    jwksUri:
                                      description: URI for the OIDC provider's JSON Web Key Sets.
                                      type: string
                                    tls:
                                      description: The TLS settings used by the clients to connect with the OIDC provider.
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - files
                                              - required:
                                                  - secretName
                                        - required:
                                            - files
                                        - required:
                                            - secretName
                                      properties:
                                        files:
                                          description: TLS key source from files.
                                          properties:
                                            caCertificates:
                                              description: File containing CA certificates to verify the certificates presented by the server.
                                              type: string
                                            clientCertificate:
                                              description: Certificate file to authenticate the client.
                                              type: string
                                            privateKey:
                                              description: Private key file associated with the client certificate.
                                              type: string
                                          type: object
                                        mode:
                                          enum:
                                            - DISABLED
                                            - SIMPLE
                                            - MUTUAL
                                          type: string
                                        secretName:
                                          description: TLS key source from a Kubernetes Secret.
                                          type: string
                                        subjectAltNames:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    tokenEndpoint:
                                      description: The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
                                      type: string
                                  required:
                                    - issuer
                                  type: object
                                redirectPathMatcher:
                                  description: Matching criteria used to determine whether a path appears to be the result of a redirect from the authorization server.
                                  type: string
                                redirectUri:
                                  description: 'The redirect URI passed to the authorization endpoint It can also be formulated from request parameters For example: %REQ(x-forwarded-proto)%://%REQ(:authority)%/callback This URI should not contain any query parameters.'
                                  type: string
                                signoutPath:
                                  description: The path to sign a user out, clearing their credential cookies.
                                  type: string
                                useRefreshToken:
                                  description: Enable automatic access token refresh using associated refresh token [(see RFC 6749 section 6)](https://datatracker.ietf.org/doc/html/rfc6749#section-6) provided that the OAuth server supports that.
                                  nullable: true
                                  type: boolean
                              required:
                                - clientId
                                - clientTokenSecret
                                - redirectUri
                                - provider
                              type: object
                            requireJwt:
                              description: If set to true, JWT authentication is mandatory and enforced with strict validation.
                              nullable: true
                              type: boolean
                            rules:
                              description: List of rules how to authenticate an HTTP request.
                              properties:
                                jwt:
                                  description: List of rules how to authenticate an HTTP request from a JWT Token attached to it.
                                  items:
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - jwksUri
                                            - required:
                                                - jwks
                                      - required:
                                          - jwksUri
                                      - required:
                                          - jwks
                                    properties:
                                      audiences:
                                        description: The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3).
                                        items:
                                          type: string
                                        type: array
                                      fromCookies:
                                        description: List of cookie names from which JWT is expected.
                                        items:
                                          type: string
                                        type: array
                                      fromHeaders:
                                        description: This field specifies the locations to extract JWT token.
                                        items:
                                          properties:
                                            name:
                                              description: The HTTP header name.
                                              type: string
                                            prefix:
                                              description: The prefix that should be stripped before decoding the token.
                                              type: string
                                          required:
                                            - name
                                          type: object
                                        type: array
                                      issuer:
                                        description: Identifies the issuer that issued the JWT.
                                        type: string
                                      jwks:
                                        description: JSON Web Key Set of public keys to validate signature of the JWT.
                                        type: string
                                      jwksUri:
                                        description: URL of the provider's public key set to validate signature of the JWT.
                                        type: string
                                      outputClaimToHeaders:
                                        description: This field specifies a list of operations to copy the claim to HTTP headers on a successfully verified token.
                                        items:
                                          properties:
                                            claim:
                                              description: The name of the claim to be copied from.
                                              type: string
                                            header:
                                              description: The name of the header to be created.
                                              type: string
                                          required:
                                            - header
                                            - claim
                                          type: object
                                        type: array
                                      outputPayloadToHeader:
                                        description: This field specifies the header name to output a successfully verified JWT payload to the backend.
                                        type: string
                                    required:
                                      - issuer
                                    type: object
                                  type: array
                              type: object
                          type: object
                        trafficMode:
                          enum:
                            - UNSET
                            - OPTIONAL
                            - REQUIRED
                          type: string
                      type: object
                    authorization:
                      description: The set of service accounts in one or more namespaces allowed or denied to access a workload (and hence its sidecar) in the mesh.
                      properties:
                        http:
                          description: This is for configuring HTTP request authorization.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - external
                                  - required:
                                      - local
                            - required:
                                - external
                            - required:
                                - local
                          properties:
                            external:
                              properties:
                                allowedUpstreamHeaders:
                                  description: List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
                                  items:
                                    type: string
                                  type: array
                                includeRequestHeaders:
                                  items:
                                    type: string
                                  type: array
                                pathPrefix:
                                  description: Sets a prefix to the value of authorization request header Path.
                                  type: string
                                timeout:
                                  description: Timeout controls how long the proxy waits for the external authorization backend to respond.
                                  type: string
                                tls:
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                uri:
                                  type: string
                              type: object
                            local:
                              properties:
                                rules:
                                  items:
                                    properties:
                                      from:
                                        description: Subjects configure the actors (end users, other services) that are allowed to access the target resource.
                                        items:
                                          properties:
                                            jwt:
                                              description: JWT configuration to identity the subject.
                                              properties:
                                                iss:
                                                  type: string
                                                other:
                                                  additionalProperties:
                                                    type: string
                                                  description: A set of arbitrary claims that are required to qualify the subject.
                                                  type: object
                                                sub:
                                                  type: string
                                              type: object
                                          type: object
                                        type: array
                                      name:
                                        description: A friendly name to identify the binding.
                                        type: string
                                      to:
                                        description: A set of HTTP rules that need to be satisfied by the HTTP requests to get access to the target resource.
                                        items:
                                          properties:
                                            methods:
                                              description: The HTTP methods that are allowed by this rule.
                                              items:
                                                type: string
                                              type: array
                                            paths:
                                              description: The request path where the request is made against.
                                              items:
                                                type: string
                                              type: array
                                          type: object
                                        type: array
                                    required:
                                      - name
                                    type: object
                                  type: array
                              type: object
                          type: object
                        identityMatch:
                          description: identity_match specifies the strategy for client identity verification to be employed during the evaluation of authorization (authz) rules within the service.
                          enum:
                            - UNKNOWN
                            - PEER_CERTIFICATE
                            - PERMISSIVE
                            - SOURCE_IDENTITY
                          type: string
                        mode:
                          description: A short cut for specifying the set of allowed callers.
                          enum:
                            - UNSET
                            - NAMESPACE
                            - GROUP
                            - WORKSPACE
                            - CLUSTER
                            - DISABLED
                            - CUSTOM
                            - RULES
                          type: string
                        rules:
                          description: When the mode is `RULES`, you can allow or deny workload-to-workload communication by specifying in the `rules` field which target workloads are allowed or denied to communicate with other target workloads.
                          properties:
                            allow:
                              description: Allow specifies a list of rules.
                              items:
                                properties:
                                  from:
                                    description: From specifies the source of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the source of a request.
                                        type: string
                                    type: object
                                  to:
                                    description: To specifies the destination of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the destination of a request.
                                        type: string
                                    type: object
                                required:
                                  - from
                                  - to
                                type: object
                              type: array
                            deny:
                              description: Deny specifies a list of rules.
                              items:
                                properties:
                                  from:
                                    description: From specifies the source of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the source of a request.
                                        type: string
                                    type: object
                                  to:
                                    description: To specifies the destination of a request.
                                    properties:
                                      fqn:
                                        description: The target resource identified by FQN which will be the destination of a request.
                                        type: string
                                    type: object
                                required:
                                  - from
                                  - to
                                type: object
                              type: array
                            denyAll:
                              description: Deny all specifies whether all requests should be rejected.
                              type: boolean
                          type: object
                        serviceAccounts:
                          description: When the mode is `CUSTOM`, `serviceAccounts` specify the allowed set of service accounts (and the workloads using them).
                          items:
                            type: string
                          type: array
                      type: object
                    configGenerationMetadata:
                      description: Metadata values that will be add into the Istio generated configurations.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                          type: object
                      type: object
                    description:
                      description: A description of the resource.
                      type: string
                    displayName:
                      description: User friendly name for the resource.
                      type: string
                    etag:
                      description: The etag for the resource.
                      type: string
                    extension:
                      description: Extensions specifies all the WasmExtensions assigned to this SecuritySettings with the specific configuration for each extension.
                      items:
                        properties:
                          config:
                            description: Configuration parameters sent to the WASM plugin execution.
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          fqn:
                            description: Fqn of the extension to be executed.
                            type: string
                          match:
                            description: Specifies the criteria to determine which traffic is passed to WasmExtension.
                            items:
                              properties:
                                mode:
                                  description: Criteria for selecting traffic by their direction.
                                  enum:
                                    - UNDEFINED
                                    - CLIENT
                                    - SERVER
                                    - CLIENT_AND_SERVER
                                  type: string
                                ports:
                                  description: Criteria for selecting traffic by their destination port.
                                  items:
                                    properties:
                                      number:
                                        type: integer
                                    required:
                                      - number
                                    type: object
                                  type: array
                              type: object
                            type: array
                        required:
                          - fqn
                        type: object
                      type: array
                    fqn:
                      description: Fully-qualified name of the resource.
                      type: string
                    propagationStrategy:
                      description: Propagation strategy specifies how a security setting is propagated along the configuration hierarchy.
                      enum:
                        - REPLACE
                        - STRICTER
                      type: string
                    waf:
                      description: 'NOTICE: this feature is in alpha stage and under active development.'
                      properties:
                        rules:
                          description: Rules to be leveraged by WAF.
                          items:
                            type: string
                          type: array
                      required:
                        - rules
                      type: object
                  type: object
                defaultTrafficSetting:
                  description: Traffic settings for all proxy workloads in this workspace.
                  properties:
                    configGenerationMetadata:
                      description: Metadata values that will be add into the Istio generated configurations.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.annotations` field of the Istio generated configurations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Set of key value paris that will be added into the `metadata.labels` field of the Istio generated configurations.
                          type: object
                      type: object
                    description:
                      description: A description of the resource.
                      type: string
                    displayName:
                      description: User friendly name for the resource.
                      type: string
                    egress:
                      description: Specifies the details of the egress proxy to which unknown traffic should be forwarded to from the proxy workload.
                      properties:
                        host:
                          description: Specifies the egress gateway hostname.
                          type: string
                        port:
                          description: Deprecated.
                          format: int32
                          type: integer
                      required:
                        - host
                      type: object
                    etag:
                      description: The etag for the resource.
                      type: string
                    fqn:
                      description: Fully-qualified name of the resource.
                      type: string
                    inbound:
                      description: Configures inbound traffic.
                      properties:
                        failoverSettings:
                          description: Failover settings apply to all clients accessing the hostname defined in this section.
                          properties:
                            automaticLoadBalancing:
                              properties:
                                enabled:
                                  description: Whether to enable automatic load balancing.
                                  nullable: true
                                  type: boolean
                              type: object
                            failoverPriority:
                              description: FailoverPriority specifies the failover priority for traffic.
                              items:
                                type: string
                              type: array
                            regionalFailover:
                              description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                              items:
                                properties:
                                  from:
                                    description: Originating region.
                                    type: string
                                  to:
                                    description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                                    type: string
                                type: object
                              type: array
                            topologyChoice:
                              description: TopologyChoice specifies the topology preference for traffic priority.
                              enum:
                                - NONE
                                - CLUSTER
                                - LOCALITY
                              type: string
                          type: object
                        rateLimiting:
                          description: Configuration for rate limiting requests.
                          oneOf:
                            - not:
                                anyOf:
                                  - required:
                                      - settings
                                  - required:
                                      - externalService
                                  - required:
                                      - local
                            - required:
                                - settings
                            - required:
                                - externalService
                            - required:
                                - local
                          properties:
                            externalService:
                              description: Configure ratelimiting using an external ratelimit server.
                              properties:
                                domain:
                                  description: The rate limit domain to use when calling the rate limit service.
                                  type: string
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rateLimitServerUri:
                                  description: The URI at which the external rate limit server can be reached.
                                  type: string
                                rules:
                                  description: A set of rate limit rules.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions that are to be applied for this rate limit configuration.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - sourceCluster
                                                  - required:
                                                      - destinationCluster
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - requestHeaders
                                                  - required:
                                                      - headerValueMatch
                                            - required:
                                                - sourceCluster
                                            - required:
                                                - destinationCluster
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - requestHeaders
                                            - required:
                                                - headerValueMatch
                                          properties:
                                            destinationCluster:
                                              description: Rate limit on destination envoy cluster.
                                              type: object
                                            headerValueMatch:
                                              description: Rate limit on the existence of certain request headers.
                                              properties:
                                                descriptorValue:
                                                  description: The value to use in the descriptor entry.
                                                  type: string
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                headers:
                                                  additionalProperties:
                                                    oneOf:
                                                      - not:
                                                          anyOf:
                                                            - required:
                                                                - exact
                                                            - required:
                                                                - prefix
                                                            - required:
                                                                - regex
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                    properties:
                                                      exact:
                                                        description: Exact string match.
                                                        type: string
                                                      prefix:
                                                        description: Prefix-based match.
                                                        type: string
                                                      regex:
                                                        description: ECMAscript style regex-based match.
                                                        type: string
                                                    type: object
                                                  description: Specifies a set of headers that the rate limit action should match on.
                                                  type: object
                                              required:
                                                - headers
                                                - descriptorValue
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on remote address of client.
                                              type: object
                                            requestHeaders:
                                              description: Rate limit on the value of certain request headers.
                                              properties:
                                                descriptorKey:
                                                  description: The key to use in the descriptor entry.
                                                  type: string
                                                headerName:
                                                  description: The header name to be queried from the request headers.
                                                  type: string
                                              required:
                                                - headerName
                                                - descriptorKey
                                              type: object
                                            sourceCluster:
                                              description: Rate limit on source envoy cluster.
                                              type: object
                                          type: object
                                        type: array
                                    required:
                                      - dimensions
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the external rate limit server RPC.
                                  type: string
                                tls:
                                  description: Configure TLS parameters to be used when connecting to the external rate limit server.
                                  oneOf:
                                    - not:
                                        anyOf:
                                          - required:
                                              - files
                                          - required:
                                              - secretName
                                    - required:
                                        - files
                                    - required:
                                        - secretName
                                  properties:
                                    files:
                                      description: TLS key source from files.
                                      properties:
                                        caCertificates:
                                          description: File containing CA certificates to verify the certificates presented by the server.
                                          type: string
                                        clientCertificate:
                                          description: Certificate file to authenticate the client.
                                          type: string
                                        privateKey:
                                          description: Private key file associated with the client certificate.
                                          type: string
                                      type: object
                                    mode:
                                      enum:
                                        - DISABLED
                                        - SIMPLE
                                        - MUTUAL
                                      type: string
                                    secretName:
                                      description: TLS key source from a Kubernetes Secret.
                                      type: string
                                    subjectAltNames:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                              required:
                                - domain
                                - rateLimitServerUri
                                - rules
                              type: object
                            local:
                              description: Apply rate limits internally in the Envoy proxy.
                              properties:
                                maxWildcardDimensions:
                                  description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                                  nullable: true
                                  type: integer
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  nullable: true
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  nullable: true
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  nullable: true
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      tokenBucket:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          fillInterval:
                                            description: The fill interval that tokens are added to the bucket.
                                            type: string
                                          maxTokens:
                                            description: The maximum tokens that the bucket can hold.
                                            nullable: true
                                            type: integer
                                          tokensPerFill:
                                            description: The number of tokens added to the bucket during each fill interval.
                                            nullable: true
                                            type: integer
                                        required:
                                          - maxTokens
                                          - fillInterval
                                        type: object
                                    required:
                                      - dimensions
                                      - tokenBucket
                                    type: object
                                  type: array
                              required:
                                - rules
                              type: object
                            settings:
                              properties:
                                failClosed:
                                  description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                                  type: boolean
                                rules:
                                  description: A list of rules for ratelimiting.
                                  items:
                                    properties:
                                      dimensions:
                                        description: A list of dimensions to define each ratelimit rule.
                                        items:
                                          oneOf:
                                            - not:
                                                anyOf:
                                                  - required:
                                                      - remoteAddress
                                                  - required:
                                                      - header
                                            - required:
                                                - remoteAddress
                                            - required:
                                                - header
                                          properties:
                                            header:
                                              description: Rate limit on certain HTTP headers.
                                              properties:
                                                dontMatch:
                                                  description: If set to true, the condition will be met when the header value does not match.
                                                  type: boolean
                                                name:
                                                  description: Name of the header to match on.
                                                  type: string
                                                value:
                                                  description: Value of the header to match on if matching on a specific value.
                                                  oneOf:
                                                    - not:
                                                        anyOf:
                                                          - required:
                                                              - exact
                                                          - required:
                                                              - prefix
                                                          - required:
                                                              - regex
                                                    - required:
                                                        - exact
                                                    - required:
                                                        - prefix
                                                    - required:
                                                        - regex
                                                  properties:
                                                    exact:
                                                      description: Exact string match.
                                                      type: string
                                                    prefix:
                                                      description: Prefix-based match.
                                                      type: string
                                                    regex:
                                                      description: ECMAscript style regex-based match.
                                                      type: string
                                                  type: object
                                              required:
                                                - name
                                              type: object
                                            remoteAddress:
                                              description: Rate limit on the remote address of client.
                                              properties:
                                                value:
                                                  description: Ratelimit on a specific remote address.
                                                  type: string
                                              required:
                                                - value
                                              type: object
                                          type: object
                                        type: array
                                      limit:
                                        description: The ratelimit value that will be configured for the above rules.
                                        properties:
                                          requestsPerUnit:
                                            description: Specifies the value of the rate limit.
                                            type: integer
                                          unit:
                                            description: Specifies the unit of time for rate limit.
                                            enum:
                                              - UNKNOWN
                                              - SECOND
                                              - MINUTE
                                              - HOUR
                                              - DAY
                                            type: string
                                        required:
                                          - requestsPerUnit
                                          - unit
                                        type: object
                                    required:
                                      - dimensions
                                      - limit
                                    type: object
                                  type: array
                                timeout:
                                  description: The timeout in seconds for the rate limit server RPC.
                                  type: string
                              required:
                                - rules
                              type: object
                          type: object
                        resilience:
                          description: Resiliency configuration for inbound connections.
                          properties:
                            connectionPool:
                              description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                              properties:
                                tcp:
                                  properties:
                                    keepAlive:
                                      description: Keep Alive Settings.
                                      properties:
                                        idleTime:
                                          description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                          nullable: true
                                          type: integer
                                        interval:
                                          description: The number of seconds between keep-alive probes.
                                          nullable: true
                                          type: integer
                                        probes:
                                          description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                          nullable: true
                                          type: integer
                                      type: object
                                  type: object
                              type: object
                            meshTimeout:
                              description: Configures the max connection and stream durations for HTTP and TCP connections.
                              properties:
                                maxConnectionDuration:
                                  description: This specifies the duration of time after which a downstream and upstream connection will be drained and/or closed, starting from when it was first established.
                                  type: string
                                maxDownstreamConnectionDuration:
                                  description: The maximum duration of a TCP connection.
                                  type: string
                                maxStreamDuration:
                                  description: The max stream duration is the maximum time that a stream’s lifetime will span.
                                  type: string
                                proxyType:
                                  description: Specifies the type of proxy to which to apply the mesh timeout settings.
                                  enum:
                                    - ANY
                                    - SIDECAR
                                    - GATEWAY
                                  type: string
                              type: object
                          type: object
                      type: object
                    outbound:
                      description: Configures outbound traffic.
                      properties:
                        egress:
                          description: Specifies the details of the egress proxy to which traffic to services that are not part to the mesh should be forwarded to from the proxy workloads.
                          properties:
                            host:
                              description: Specifies the egress gateway hostname.
                              type: string
                          required:
                            - host
                          type: object
                        reachability:
                          description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                          properties:
                            hosts:
                              description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                              items:
                                type: string
                              type: array
                            mode:
                              description: A short cut for specifying the set of services accessed by the workload.
                              enum:
                                - UNSET
                                - NAMESPACE
                                - GROUP
                                - WORKSPACE
                                - CLUSTER
                                - CUSTOM
                              type: string
                          type: object
                        upstreamTrafficSettings:
                          description: List of hosts and the associated traffic settings to be used by the clients sending traffic to them.
                          items:
                            properties:
                              hosts:
                                description: List of hosts for which the settings will be created.
                                items:
                                  type: string
                                type: array
                              settings:
                                description: A single setting to be applied to all the clients connecting to the upstream hosts.
                                properties:
                                  authentication:
                                    description: Configuration for connection authentication parameters.
                                    properties:
                                      trafficMode:
                                        description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                        enum:
                                          - UNSET
                                          - OPTIONAL
                                          - REQUIRED
                                        type: string
                                    type: object
                                  loadBalancer:
                                    description: Load balancing settings for the clients.
                                    oneOf:
                                      - not:
                                          anyOf:
                                            - required:
                                                - simple
                                            - required:
                                                - consistentHash
                                      - required:
                                          - simple
                                      - required:
                                          - consistentHash
                                    properties:
                                      consistentHash:
                                        allOf:
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - httpHeaderName
                                                    - required:
                                                        - httpCookie
                                                    - required:
                                                        - useSourceIp
                                                    - required:
                                                        - httpQueryParameterName
                                              - required:
                                                  - httpHeaderName
                                              - required:
                                                  - httpCookie
                                              - required:
                                                  - useSourceIp
                                              - required:
                                                  - httpQueryParameterName
                                          - oneOf:
                                              - not:
                                                  anyOf:
                                                    - required:
                                                        - ringHash
                                                    - required:
                                                        - maglev
                                              - required:
                                                  - ringHash
                                              - required:
                                                  - maglev
                                        description: Use consistent hash load balancing which can provide soft session affinity.
                                        properties:
                                          httpCookie:
                                            description: Hash based on HTTP cookie.
                                            properties:
                                              name:
                                                description: Name of the cookie.
                                                type: string
                                              path:
                                                description: Path to set for the cookie.
                                                type: string
                                              ttl:
                                                description: Lifetime of the cookie.
                                                type: string
                                            required:
                                              - name
                                              - ttl
                                            type: object
                                          httpHeaderName:
                                            description: Hash based on a specific HTTP header.
                                            type: string
                                          httpQueryParameterName:
                                            description: Hash based on a specific HTTP query parameter.
                                            type: string
                                          maglev:
                                            description: The Maglev load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              tableSize:
                                                description: The table size for Maglev hashing.
                                                type: integer
                                            required:
                                              - tableSize
                                            type: object
                                          ringHash:
                                            description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                            properties:
                                              minimumRingSize:
                                                description: The minimum number of virtual nodes to use for the hash ring.
                                                type: integer
                                            type: object
                                          useSourceIp:
                                            description: Hash based on the source IP address.
                                            type: boolean
                                        type: object
                                      simple:
                                        description: Use standard load balancing algorithms that require no tuning.
                                        enum:
                                          - UNSPECIFIED
                                          - RANDOM
                                          - PASSTHROUGH
                                          - ROUND_ROBIN
                                          - LEAST_REQUEST
                                        type: string
                                    type: object
                                  resilience:
                                    description: Resilience settings for the clients.
                                    properties:
                                      circuitBreakerSensitivity:
                                        description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                        enum:
                                          - UNSET
                                          - LOW
                                          - MEDIUM
                                          - HIGH
                                          - CUSTOM
                                        type: string
                                      connectionPool:
                                        description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                        properties:
                                          http:
                                            properties:
                                              maxRequests:
                                                description: Maximum number of active requests to the service.
                                                type: integer
                                              maxRequestsPerConnection:
                                                description: Maximum number of requests per connection to the service.
                                                type: integer
                                              requestTimeout:
                                                description: Timeout for HTTP requests.
                                                type: string
                                              retries:
                                                description: Retry policy for HTTP requests.
                                                properties:
                                                  attempts:
                                                    description: Number of retries for a given request.
                                                    format: int32
                                                    type: integer
                                                  perTryTimeout:
                                                    description: Timeout per retry attempt for a given request.
                                                    type: string
                                                  retryBackOff:
                                                    description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                    properties:
                                                      baseInterval:
                                                        description: The base interval between retry attempts.
                                                        type: string
                                                      maxInterval:
                                                        description: The maximum interval between retry attempts.
                                                        type: string
                                                    required:
                                                      - baseInterval
                                                    type: object
                                                  retryOn:
                                                    description: Specifies the conditions under which retry takes place.
                                                    type: string
                                                required:
                                                  - attempts
                                                type: object
                                            type: object
                                          tcp:
                                            properties:
                                              connectTimeout:
                                                description: TCP connection timeout.
                                                type: string
                                              keepAlive:
                                                description: Keep Alive Settings.
                                                properties:
                                                  idleTime:
                                                    description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                    nullable: true
                                                    type: integer
                                                  interval:
                                                    description: The number of seconds between keep-alive probes.
                                                    nullable: true
                                                    type: integer
                                                  probes:
                                                    description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                    nullable: true
                                                    type: integer
                                                type: object
                                              maxConnections:
                                                description: Maximum number of HTTP1 /TCP connections to the service.
                                                type: integer
                                            type: object
                                        type: object
                                      outlierDetection:
                                        description: Outlier detection settings for the upstream host when custom mode is used.
                                        properties:
                                          baseEjectionTime:
                                            description: The base time that a host is ejected for.
                                            type: string
                                          consecutive5xx:
                                            description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveGatewayFailure:
                                            description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                            nullable: true
                                            type: integer
                                          consecutiveLocalOriginFailure:
                                            nullable: true
                                            type: integer
                                          enforcingConsecutive5xx:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveGatewayFailure:
                                            description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                            nullable: true
                                            type: integer
                                          enforcingConsecutiveLocalOriginFailure:
                                            description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                            nullable: true
                                            type: integer
                                          interval:
                                            description: The time interval between ejection analysis sweeps.
                                            type: string
                                          maxEjectionPercent:
                                            description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                            nullable: true
                                            type: integer
                                          maxEjectionTime:
                                            description: The maximum time that a host is ejected for.
                                            type: string
                                          splitExternalLocalOriginErrors:
                                            description: Determines whether to distinguish local origin failures from external errors.
                                            type: boolean
                                        type: object
                                    type: object
                                type: object
                            type: object
                          type: array
                      type: object
                    rateLimiting:
                      description: Configuration for rate limiting requests.
                      oneOf:
                        - not:
                            anyOf:
                              - required:
                                  - settings
                              - required:
                                  - externalService
                              - required:
                                  - local
                        - required:
                            - settings
                        - required:
                            - externalService
                        - required:
                            - local
                      properties:
                        externalService:
                          description: Configure ratelimiting using an external ratelimit server.
                          properties:
                            domain:
                              description: The rate limit domain to use when calling the rate limit service.
                              type: string
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rateLimitServerUri:
                              description: The URI at which the external rate limit server can be reached.
                              type: string
                            rules:
                              description: A set of rate limit rules.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions that are to be applied for this rate limit configuration.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - sourceCluster
                                              - required:
                                                  - destinationCluster
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - requestHeaders
                                              - required:
                                                  - headerValueMatch
                                        - required:
                                            - sourceCluster
                                        - required:
                                            - destinationCluster
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - requestHeaders
                                        - required:
                                            - headerValueMatch
                                      properties:
                                        destinationCluster:
                                          description: Rate limit on destination envoy cluster.
                                          type: object
                                        headerValueMatch:
                                          description: Rate limit on the existence of certain request headers.
                                          properties:
                                            descriptorValue:
                                              description: The value to use in the descriptor entry.
                                              type: string
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            headers:
                                              additionalProperties:
                                                oneOf:
                                                  - not:
                                                      anyOf:
                                                        - required:
                                                            - exact
                                                        - required:
                                                            - prefix
                                                        - required:
                                                            - regex
                                                  - required:
                                                      - exact
                                                  - required:
                                                      - prefix
                                                  - required:
                                                      - regex
                                                properties:
                                                  exact:
                                                    description: Exact string match.
                                                    type: string
                                                  prefix:
                                                    description: Prefix-based match.
                                                    type: string
                                                  regex:
                                                    description: ECMAscript style regex-based match.
                                                    type: string
                                                type: object
                                              description: Specifies a set of headers that the rate limit action should match on.
                                              type: object
                                          required:
                                            - headers
                                            - descriptorValue
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on remote address of client.
                                          type: object
                                        requestHeaders:
                                          description: Rate limit on the value of certain request headers.
                                          properties:
                                            descriptorKey:
                                              description: The key to use in the descriptor entry.
                                              type: string
                                            headerName:
                                              description: The header name to be queried from the request headers.
                                              type: string
                                          required:
                                            - headerName
                                            - descriptorKey
                                          type: object
                                        sourceCluster:
                                          description: Rate limit on source envoy cluster.
                                          type: object
                                      type: object
                                    type: array
                                required:
                                  - dimensions
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the external rate limit server RPC.
                              type: string
                            tls:
                              description: Configure TLS parameters to be used when connecting to the external rate limit server.
                              oneOf:
                                - not:
                                    anyOf:
                                      - required:
                                          - files
                                      - required:
                                          - secretName
                                - required:
                                    - files
                                - required:
                                    - secretName
                              properties:
                                files:
                                  description: TLS key source from files.
                                  properties:
                                    caCertificates:
                                      description: File containing CA certificates to verify the certificates presented by the server.
                                      type: string
                                    clientCertificate:
                                      description: Certificate file to authenticate the client.
                                      type: string
                                    privateKey:
                                      description: Private key file associated with the client certificate.
                                      type: string
                                  type: object
                                mode:
                                  enum:
                                    - DISABLED
                                    - SIMPLE
                                    - MUTUAL
                                  type: string
                                secretName:
                                  description: TLS key source from a Kubernetes Secret.
                                  type: string
                                subjectAltNames:
                                  items:
                                    type: string
                                  type: array
                              type: object
                          required:
                            - domain
                            - rateLimitServerUri
                            - rules
                          type: object
                        local:
                          description: Apply rate limits internally in the Envoy proxy.
                          properties:
                            maxWildcardDimensions:
                              description: The maximum number of unique values that will be kept for dimensions with a wildcard.
                              nullable: true
                              type: integer
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              nullable: true
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              nullable: true
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              nullable: true
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  tokenBucket:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      fillInterval:
                                        description: The fill interval that tokens are added to the bucket.
                                        type: string
                                      maxTokens:
                                        description: The maximum tokens that the bucket can hold.
                                        nullable: true
                                        type: integer
                                      tokensPerFill:
                                        description: The number of tokens added to the bucket during each fill interval.
                                        nullable: true
                                        type: integer
                                    required:
                                      - maxTokens
                                      - fillInterval
                                    type: object
                                required:
                                  - dimensions
                                  - tokenBucket
                                type: object
                              type: array
                          required:
                            - rules
                          type: object
                        settings:
                          properties:
                            failClosed:
                              description: If the rate limit service is unavailable, the request will fail if failClosed is set to true.
                              type: boolean
                            rules:
                              description: A list of rules for ratelimiting.
                              items:
                                properties:
                                  dimensions:
                                    description: A list of dimensions to define each ratelimit rule.
                                    items:
                                      oneOf:
                                        - not:
                                            anyOf:
                                              - required:
                                                  - remoteAddress
                                              - required:
                                                  - header
                                        - required:
                                            - remoteAddress
                                        - required:
                                            - header
                                      properties:
                                        header:
                                          description: Rate limit on certain HTTP headers.
                                          properties:
                                            dontMatch:
                                              description: If set to true, the condition will be met when the header value does not match.
                                              type: boolean
                                            name:
                                              description: Name of the header to match on.
                                              type: string
                                            value:
                                              description: Value of the header to match on if matching on a specific value.
                                              oneOf:
                                                - not:
                                                    anyOf:
                                                      - required:
                                                          - exact
                                                      - required:
                                                          - prefix
                                                      - required:
                                                          - regex
                                                - required:
                                                    - exact
                                                - required:
                                                    - prefix
                                                - required:
                                                    - regex
                                              properties:
                                                exact:
                                                  description: Exact string match.
                                                  type: string
                                                prefix:
                                                  description: Prefix-based match.
                                                  type: string
                                                regex:
                                                  description: ECMAscript style regex-based match.
                                                  type: string
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        remoteAddress:
                                          description: Rate limit on the remote address of client.
                                          properties:
                                            value:
                                              description: Ratelimit on a specific remote address.
                                              type: string
                                          required:
                                            - value
                                          type: object
                                      type: object
                                    type: array
                                  limit:
                                    description: The ratelimit value that will be configured for the above rules.
                                    properties:
                                      requestsPerUnit:
                                        description: Specifies the value of the rate limit.
                                        type: integer
                                      unit:
                                        description: Specifies the unit of time for rate limit.
                                        enum:
                                          - UNKNOWN
                                          - SECOND
                                          - MINUTE
                                          - HOUR
                                          - DAY
                                        type: string
                                    required:
                                      - requestsPerUnit
                                      - unit
                                    type: object
                                required:
                                  - dimensions
                                  - limit
                                type: object
                              type: array
                            timeout:
                              description: The timeout in seconds for the rate limit server RPC.
                              type: string
                          required:
                            - rules
                          type: object
                      type: object
                    reachability:
                      description: The set of services and hosts accessed by a workload (and hence its sidecar) in the mesh.
                      properties:
                        hosts:
                          description: When the mode is `CUSTOM`, `hosts` specify the set of services that the sidecar should be able to reach.
                          items:
                            type: string
                          type: array
                        mode:
                          description: A short cut for specifying the set of services accessed by the workload.
                          enum:
                            - UNSET
                            - NAMESPACE
                            - GROUP
                            - WORKSPACE
                            - CLUSTER
                            - CUSTOM
                          type: string
                      type: object
                    resilience:
                      description: Resilience settings such as timeouts, retries, etc., affecting outbound traffic from proxy workloads.
                      properties:
                        circuitBreakerSensitivity:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.circuitBreakerSensitivity`.
                          enum:
                            - UNSET
                            - LOW
                            - MEDIUM
                            - HIGH
                          type: string
                        httpRequestTimeout:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.requestTimeout`.
                          type: string
                        httpRetries:
                          description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.http.retries`.
                          properties:
                            attempts:
                              description: Number of retries for a given request.
                              format: int32
                              type: integer
                            perTryTimeout:
                              description: Timeout per retry attempt for a given request.
                              type: string
                            retryBackOff:
                              description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                              properties:
                                baseInterval:
                                  description: The base interval between retry attempts.
                                  type: string
                                maxInterval:
                                  description: The maximum interval between retry attempts.
                                  type: string
                              required:
                                - baseInterval
                              type: object
                            retryOn:
                              description: Specifies the conditions under which retry takes place.
                              type: string
                          required:
                            - attempts
                          type: object
                        keepAlive:
                          description: Keep Alive Settings.
                          properties:
                            tcp:
                              description: TCP Keep Alive settings associated with the upstream and downstream TCP connections.
                              properties:
                                downstream:
                                  description: TCP Keep Alive Settings associated with the downstream (client) connection.
                                  properties:
                                    idleTime:
                                      description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                      nullable: true
                                      type: integer
                                    interval:
                                      description: The number of seconds between keep-alive probes.
                                      nullable: true
                                      type: integer
                                    probes:
                                      description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                      nullable: true
                                      type: integer
                                  type: object
                                upstream:
                                  description: This field is DEPRECATED in favor of `upstreamTrafficSettings.resilience.connectionPool.tcp.keepAlive`.
                                  properties:
                                    idleTime:
                                      description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                      nullable: true
                                      type: integer
                                    interval:
                                      description: The number of seconds between keep-alive probes.
                                      nullable: true
                                      type: integer
                                    probes:
                                      description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                      nullable: true
                                      type: integer
                                  type: object
                              type: object
                          type: object
                      type: object
                    upstreamTrafficSettings:
                      description: List of hosts and the associated traffic settings to be used by the clients that are downstreams to the defined upstream hosts.
                      items:
                        properties:
                          hosts:
                            description: List of hosts for which the settings will be created.
                            items:
                              type: string
                            type: array
                          settings:
                            description: A single setting to be applied to all the clients connecting to the upstream hosts.
                            properties:
                              authentication:
                                description: Configuration for connection authentication parameters.
                                properties:
                                  trafficMode:
                                    description: If set to `REQUIRED`, client sidecars under this configuration will be configured to initiate mTLS connections using mesh-generated client certificates to services that do not have a sidecar injected.
                                    enum:
                                      - UNSET
                                      - OPTIONAL
                                      - REQUIRED
                                    type: string
                                type: object
                              loadBalancer:
                                description: Load balancing settings for the clients.
                                oneOf:
                                  - not:
                                      anyOf:
                                        - required:
                                            - simple
                                        - required:
                                            - consistentHash
                                  - required:
                                      - simple
                                  - required:
                                      - consistentHash
                                properties:
                                  consistentHash:
                                    allOf:
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - httpHeaderName
                                                - required:
                                                    - httpCookie
                                                - required:
                                                    - useSourceIp
                                                - required:
                                                    - httpQueryParameterName
                                          - required:
                                              - httpHeaderName
                                          - required:
                                              - httpCookie
                                          - required:
                                              - useSourceIp
                                          - required:
                                              - httpQueryParameterName
                                      - oneOf:
                                          - not:
                                              anyOf:
                                                - required:
                                                    - ringHash
                                                - required:
                                                    - maglev
                                          - required:
                                              - ringHash
                                          - required:
                                              - maglev
                                    description: Use consistent hash load balancing which can provide soft session affinity.
                                    properties:
                                      httpCookie:
                                        description: Hash based on HTTP cookie.
                                        properties:
                                          name:
                                            description: Name of the cookie.
                                            type: string
                                          path:
                                            description: Path to set for the cookie.
                                            type: string
                                          ttl:
                                            description: Lifetime of the cookie.
                                            type: string
                                        required:
                                          - name
                                          - ttl
                                        type: object
                                      httpHeaderName:
                                        description: Hash based on a specific HTTP header.
                                        type: string
                                      httpQueryParameterName:
                                        description: Hash based on a specific HTTP query parameter.
                                        type: string
                                      maglev:
                                        description: The Maglev load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          tableSize:
                                            description: The table size for Maglev hashing.
                                            type: integer
                                        required:
                                          - tableSize
                                        type: object
                                      ringHash:
                                        description: The ring/modulo hash load balancer implements consistent hashing to backend hosts.
                                        properties:
                                          minimumRingSize:
                                            description: The minimum number of virtual nodes to use for the hash ring.
                                            type: integer
                                        type: object
                                      useSourceIp:
                                        description: Hash based on the source IP address.
                                        type: boolean
                                    type: object
                                  simple:
                                    description: Use standard load balancing algorithms that require no tuning.
                                    enum:
                                      - UNSPECIFIED
                                      - RANDOM
                                      - PASSTHROUGH
                                      - ROUND_ROBIN
                                      - LEAST_REQUEST
                                    type: string
                                type: object
                              resilience:
                                description: Resilience settings for the clients.
                                properties:
                                  circuitBreakerSensitivity:
                                    description: Circuit breakers in Envoy are applied per endpoint in a load balancing pool.
                                    enum:
                                      - UNSET
                                      - LOW
                                      - MEDIUM
                                      - HIGH
                                      - CUSTOM
                                    type: string
                                  connectionPool:
                                    description: Configures tolerance and other settings for TCP/HTTP connections to the service.
                                    properties:
                                      http:
                                        properties:
                                          maxRequests:
                                            description: Maximum number of active requests to the service.
                                            type: integer
                                          maxRequestsPerConnection:
                                            description: Maximum number of requests per connection to the service.
                                            type: integer
                                          requestTimeout:
                                            description: Timeout for HTTP requests.
                                            type: string
                                          retries:
                                            description: Retry policy for HTTP requests.
                                            properties:
                                              attempts:
                                                description: Number of retries for a given request.
                                                format: int32
                                                type: integer
                                              perTryTimeout:
                                                description: Timeout per retry attempt for a given request.
                                                type: string
                                              retryBackOff:
                                                description: Specifies the parameters that controls the interval between retry attempts, i.e., how soon the next retry should be attempted after a failure.
                                                properties:
                                                  baseInterval:
                                                    description: The base interval between retry attempts.
                                                    type: string
                                                  maxInterval:
                                                    description: The maximum interval between retry attempts.
                                                    type: string
                                                required:
                                                  - baseInterval
                                                type: object
                                              retryOn:
                                                description: Specifies the conditions under which retry takes place.
                                                type: string
                                            required:
                                              - attempts
                                            type: object
                                        type: object
                                      tcp:
                                        properties:
                                          connectTimeout:
                                            description: TCP connection timeout.
                                            type: string
                                          keepAlive:
                                            description: Keep Alive Settings.
                                            properties:
                                              idleTime:
                                                description: The number of seconds a connection needs to be idle before keep-alive probes start being sent.
                                                nullable: true
                                                type: integer
                                              interval:
                                                description: The number of seconds between keep-alive probes.
                                                nullable: true
                                                type: integer
                                              probes:
                                                description: The total number of unacknowledged probes to send before deciding the connection is dead.
                                                nullable: true
                                                type: integer
                                            type: object
                                          maxConnections:
                                            description: Maximum number of HTTP1 /TCP connections to the service.
                                            type: integer
                                        type: object
                                    type: object
                                  outlierDetection:
                                    description: Outlier detection settings for the upstream host when custom mode is used.
                                    properties:
                                      baseEjectionTime:
                                        description: The base time that a host is ejected for.
                                        type: string
                                      consecutive5xx:
                                        description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveGatewayFailure:
                                        description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs.
                                        nullable: true
                                        type: integer
                                      consecutiveLocalOriginFailure:
                                        nullable: true
                                        type: integer
                                      enforcingConsecutive5xx:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive 5xx.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveGatewayFailure:
                                        description: The percentage of a host to be ejected when an outlier status is detected through consecutive gateway failures.
                                        nullable: true
                                        type: integer
                                      enforcingConsecutiveLocalOriginFailure:
                                        description: The percentage of a host to be actually ejected when an outlier status is detected through consecutive locally originated failures.
                                        nullable: true
                                        type: integer
                                      interval:
                                        description: The time interval between ejection analysis sweeps.
                                        type: string
                                      maxEjectionPercent:
                                        description: The maximum % of an upstream cluster that can be ejected due to outlier detection.
                                        nullable: true
                                        type: integer
                                      maxEjectionTime:
                                        description: The maximum time that a host is ejected for.
                                        type: string
                                      splitExternalLocalOriginErrors:
                                        description: Determines whether to distinguish local origin failures from external errors.
                                        type: boolean
                                    type: object
                                type: object
                            type: object
                        type: object
                      type: array
                  type: object
                description:
                  description: A description of the resource.
                  type: string
                displayName:
                  description: User friendly name for the resource.
                  type: string
                etag:
                  description: The etag for the resource.
                  type: string
                failoverSettings:
                  description: Failover settings for all proxies connecting to a host exposed in this workspace.
                  properties:
                    automaticLoadBalancing:
                      properties:
                        enabled:
                          description: Whether to enable automatic load balancing.
                          nullable: true
                          type: boolean
                      type: object
                    failoverPriority:
                      description: FailoverPriority specifies the failover priority for traffic.
                      items:
                        type: string
                      type: array
                    regionalFailover:
                      description: Locality routing settings for all gateways in the Workspace/Organization for which this is defined.
                      items:
                        properties:
                          from:
                            description: Originating region.
                            type: string
                          to:
                            description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                            type: string
                        type: object
                      type: array
                    topologyChoice:
                      description: TopologyChoice specifies the topology preference for traffic priority.
                      enum:
                        - NONE
                        - CLUSTER
                        - LOCALITY
                      type: string
                  type: object
                fqn:
                  description: Fully-qualified name of the resource.
                  type: string
                hostsReachability:
                  description: Hosts reachability defines the list of hostnames that this workspace can reach.
                  properties:
                    hostnames:
                      description: The Gateway hostname that can be one of the following.
                      items:
                        oneOf:
                          - not:
                              anyOf:
                                - required:
                                    - exact
                                - required:
                                    - prefix
                                - required:
                                    - regex
                          - required:
                              - exact
                          - required:
                              - prefix
                          - required:
                              - regex
                        properties:
                          exact:
                            description: Exact string match.
                            type: string
                          prefix:
                            description: Prefix-based match.
                            type: string
                          regex:
                            description: ECMAscript style regex-based match.
                            type: string
                        type: object
                      type: array
                  required:
                    - hostnames
                  type: object
                regionalFailover:
                  description: Locality routing settings for all gateways in the workspace.
                  items:
                    properties:
                      from:
                        description: Originating region.
                        type: string
                      to:
                        description: Destination region the traffic will fail over to when endpoints in the 'from' region become unhealthy.
                        type: string
                    type: object
                  type: array
              type: object
            status:
              type: object
              x-kubernetes-preserve-unknown-fields: true
          type: object
      served: true
      storage: true
      subresources:
        status: {}
