$schema: "http://json-schema.org/draft-06/schema#"

title: networkservices v1 EdgeCacheOrigin export schema
description: A gcloud export/import command YAML validation schema.
type: object
required:
- name
- originAddress
additionalProperties: false
properties:
  COMMENT:
    type: object
    description: User specified info ignored by gcloud import.
    additionalProperties: false
    properties:
      template-id:
        type: string
      region:
        type: string
      description:
        type: string
      date:
        type: string
      version:
        type: string
  UNKNOWN:
    type: array
    description: Unknown API fields that cannot be imported.
    items:
      type: string
  awsV4Authentication:
    description: Enable AWS Signature Version 4 origin authentication.
    $ref: AWSV4Signature.yaml
  description:
    description: A human-readable description of the resource.
    type: string
  failoverOrigin:
    description: |-
      The EdgeCacheOrigin resource to try when the current origin cannot be
      reached. After max_attempts is reached, the configured failover_origin is
      used to fulfil the request. The following are both valid paths to an
      `EdgeCacheOrigin` resource: * `projects/my-
      project/locations/global/edgeCacheOrigins/my-origin` * `my-origin` The
      value of max_attempts_timeout dictates the timeout across all origins.
    type: string
  flexShielding:
    description: |-
      The FlexShieldingOptions to be used for all routes to this origin. If not
      set, defaults to a global caching layer in front of the origin.
    $ref: FlexShieldingOptions.yaml
  labels:
    description: |-
      A set of label tags associated with the EdgeCacheOrigin resource.
    $ref: LabelsValue.yaml
  maxAttempts:
    description: |-
      The maximum number of attempts to cache fill from this origin. Another
      attempt is made when a cache fill fails with one of the retry_conditions
      or following a redirect response matching one of the
      origin_redirect.redirect_conditions. Once the maximum attempts to this
      origin have failed, the failover origin][], if specified, is used. The
      failover origin can have its own `max_attempts`, `retry_conditions`,
      `redirect_conditions`, and `failover_origin` values to control its cache
      fill failures. The total number of allowed attempts to cache fill across
      this and failover origins is limited to four. The total time allowed for
      cache fill attempts across this and failover origins can be controlled
      with `max_attempts_timeout`. The last valid, non-retried response from all
      origins is returned to the client. If no origin returns a valid response,
      an `HTTP 502` error is returned to the client. Defaults to 1. Must be a
      value greater than 0 and less than 5.
    type: integer
  name:
    description: |-
      The name of the resource as provided by the client when the resource is
      created. The name must be 1-64 characters long, and match the regular
      expression `[a-zA-Z]([a-zA-Z0-9_-])*`, which means that the first
      character must be a letter, and all following characters must be a dash,
      an underscore, a letter, or a digit.
    type: string
  originAddress:
    description: |-
      A fully qualified domain name (FQDN), an IPv4 or IPv6 address reachable
      over the public internet, or the address of a Google Cloud Storage bucket.
      This address is used as the origin for cache requests. The following are
      example origins: - **FQDN**: `media- backend.example.com` - **IPv4**:
      `35.218.1.1` - **IPv6**: `2607:f8b0:4012:809::200e` - **Google Cloud
      Storage**: `gs://bucketname` or `bucketname.storage.googleapis.com` The
      following limitations apply to fully-qualified domain names: * They must
      be resolvable through public DNS. * They must not contain a protocol (such
      as `https://`). * They must not contain any slashes. When providing an IP
      address, it must be publicly routable. IPv6 addresses must not be enclosed
      in square brackets.
    type: string
  originOverrideAction:
    description: |-
      The override actions, including URL rewrites and header additions, for
      requests that use this origin.
    $ref: OriginOverrideAction.yaml
  originRedirect:
    description: Follow redirects from this origin.
    $ref: OriginRedirect.yaml
  port:
    description: |-
      The port to connect to the origin on. Defaults to port **443** for HTTP2
      and HTTPS protocols and port **80** for HTTP.
    type: integer
  protocol:
    description: |-
      The protocol to use to connect to the configured origin. Defaults to
      HTTP2, which is strongly recommended for both security and performance.
      When using HTTP2 or HTTPS as the protocol, a valid, publicly-signed,
      unexpired TLS (SSL) certificate must be presented by the origin server.
    type: string
    enum:
    - HTTP
    - HTTP2
    - HTTPS
    - PROTOCOL_UNSPECIFIED
  retryConditions:
    description: |-
      Specifies one or more retry conditions for the configured origin. If the
      failure mode during a connection attempt to the origin matches the
      configured `retryConditions` values, the origin request retries up to
      max_attempts times. The failover origin, if configured, is then used to
      satisfy the request. The default `retry_conditions` value is
      `CONNECT_FAILURE`. `retry_conditions` values apply to this origin, and not
      to subsequent failover origins, which can specify their own
      `retry_conditions` and `max_attempts` values. For a list of valid values,
      see RetryConditions.
    type: array
    items:
      type: string
      enum:
      - CONNECT_FAILURE
      - FORBIDDEN
      - GATEWAY_ERROR
      - HTTP_5XX
      - NOT_FOUND
      - RETRIABLE_4XX
      - RETRY_CONDITIONS_UNSPECIFIED
  timeout:
    description: |-
      The connection and HTTP timeout configuration for this origin.
    $ref: Timeout.yaml
