import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * EdgeCacheOrigin represents a HTTP-reachable backend for an EdgeCacheService.
 *
 * To get more information about EdgeCacheOrigin, see:
 *
 * * [API documentation](https://cloud.google.com/media-cdn/docs/reference/rest/v1/projects.locations.edgeCacheOrigins)
 *
 * ## Example Usage
 *
 * ### Network Services Edge Cache Origin Basic
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const _default = new gcp.networkservices.EdgeCacheOrigin("default", {
 *     name: "my-origin",
 *     originAddress: "gs://media-edge-default",
 *     description: "The default bucket for media edge test",
 * });
 * ```
 * ### Network Services Edge Cache Origin Advanced
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const fallback = new gcp.networkservices.EdgeCacheOrigin("fallback", {
 *     name: "my-fallback",
 *     originAddress: "fallback.example.com",
 *     description: "The default bucket for media edge test",
 *     maxAttempts: 3,
 *     protocol: "HTTP",
 *     port: 80,
 *     retryConditions: [
 *         "CONNECT_FAILURE",
 *         "NOT_FOUND",
 *         "HTTP_5XX",
 *         "FORBIDDEN",
 *     ],
 *     timeout: {
 *         connectTimeout: "10s",
 *         maxAttemptsTimeout: "20s",
 *         responseTimeout: "60s",
 *         readTimeout: "5s",
 *     },
 *     originOverrideAction: {
 *         urlRewrite: {
 *             hostRewrite: "example.com",
 *         },
 *         headerAction: {
 *             requestHeadersToAdds: [{
 *                 headerName: "x-header",
 *                 headerValue: "value",
 *                 replace: true,
 *             }],
 *         },
 *     },
 *     originRedirect: {
 *         redirectConditions: [
 *             "MOVED_PERMANENTLY",
 *             "FOUND",
 *             "SEE_OTHER",
 *             "TEMPORARY_REDIRECT",
 *             "PERMANENT_REDIRECT",
 *         ],
 *     },
 * });
 * const _default = new gcp.networkservices.EdgeCacheOrigin("default", {
 *     name: "my-origin",
 *     originAddress: "gs://media-edge-default",
 *     failoverOrigin: fallback.id,
 *     description: "The default bucket for media edge test",
 *     maxAttempts: 2,
 *     labels: {
 *         a: "b",
 *     },
 *     timeout: {
 *         connectTimeout: "10s",
 *     },
 * });
 * ```
 * ### Network Services Edge Cache Origin V4auth
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const secret_basic = new gcp.secretmanager.Secret("secret-basic", {
 *     secretId: "secret-name",
 *     replication: {
 *         auto: {},
 *     },
 * });
 * const secret_version_basic = new gcp.secretmanager.SecretVersion("secret-version-basic", {
 *     secret: secret_basic.id,
 *     secretData: "secret-data",
 * });
 * const _default = new gcp.networkservices.EdgeCacheOrigin("default", {
 *     name: "my-origin",
 *     originAddress: "gs://media-edge-default",
 *     description: "The default bucket for V4 authentication",
 *     awsV4Authentication: {
 *         accessKeyId: "ACCESSKEYID",
 *         secretAccessKeyVersion: secret_version_basic.id,
 *         originRegion: "auto",
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * EdgeCacheOrigin can be imported using any of these accepted formats:
 *
 * * `projects/{{project}}/locations/global/edgeCacheOrigins/{{name}}`
 * * `{{project}}/{{name}}`
 * * `{{name}}`
 *
 * When using the `pulumi import` command, EdgeCacheOrigin can be imported using one of the formats above. For example:
 *
 * ```sh
 * $ pulumi import gcp:networkservices/edgeCacheOrigin:EdgeCacheOrigin default projects/{{project}}/locations/global/edgeCacheOrigins/{{name}}
 * $ pulumi import gcp:networkservices/edgeCacheOrigin:EdgeCacheOrigin default {{project}}/{{name}}
 * $ pulumi import gcp:networkservices/edgeCacheOrigin:EdgeCacheOrigin default {{name}}
 * ```
 */
export declare class EdgeCacheOrigin extends pulumi.CustomResource {
    /**
     * Get an existing EdgeCacheOrigin resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: EdgeCacheOriginState, opts?: pulumi.CustomResourceOptions): EdgeCacheOrigin;
    /**
     * Returns true if the given object is an instance of EdgeCacheOrigin.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is EdgeCacheOrigin;
    /**
     * Enable AWS Signature Version 4 origin authentication.
     * Structure is documented below.
     */
    readonly awsV4Authentication: pulumi.Output<outputs.networkservices.EdgeCacheOriginAwsV4Authentication | undefined>;
    /**
     * Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
     * When a 'terraform destroy' or 'pulumi up' would delete the resource,
     * the command will fail if this field is set to "PREVENT" in Terraform state.
     * When set to "ABANDON", the command will remove the resource from Terraform
     * management without updating or deleting the resource in the API.
     * When set to "DELETE", deleting the resource is allowed.
     */
    readonly deletionPolicy: pulumi.Output<string>;
    /**
     * A human-readable description of the resource.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
     */
    readonly effectiveLabels: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The Origin resource to try when the current origin cannot be reached.
     * After maxAttempts is reached, the configured failoverOrigin will be used to fulfil the request.
     * The value of timeout.maxAttemptsTimeout dictates the timeout across all origins.
     * A reference to a Topic resource.
     */
    readonly failoverOrigin: pulumi.Output<string | undefined>;
    /**
     * 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.
     * Structure is documented below.
     */
    readonly flexShielding: pulumi.Output<outputs.networkservices.EdgeCacheOriginFlexShielding | undefined>;
    /**
     * Set of label tags associated with the EdgeCache resource.
     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * Please refer to the field `effectiveLabels` for all of the labels present on the resource.
     */
    readonly labels: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The maximum number of attempts to cache fill from this origin. Another attempt is made when a cache fill fails with one of the retryConditions.
     * Once maxAttempts to this origin have failed the failoverOrigin will be used, if one is specified. That failoverOrigin may specify its own maxAttempts,
     * retryConditions and failoverOrigin to control its own 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 maxAttemptsTimeout.
     * The last valid, non-retried response from all origins will be returned to the client.
     * If no origin returns a valid response, an HTTP 502 will be returned to the client.
     * Defaults to 1. Must be a value greater than 0 and less than 4.
     */
    readonly maxAttempts: pulumi.Output<number | undefined>;
    /**
     * Name of the resource; 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 the first character must be a letter,
     * and all following characters must be a dash, underscore, letter or digit.
     */
    readonly name: pulumi.Output<string>;
    /**
     * A fully qualified domain name (FQDN) or IP address reachable over the public Internet, or the address of a Google Cloud Storage bucket.
     * This address will be used as the origin for cache requests - e.g. FQDN: media-backend.example.com, IPv4: 35.218.1.1, IPv6: 2607:f8b0:4012:809::200e, Cloud Storage: gs://bucketname
     * When providing an FQDN (hostname), it must be publicly resolvable (e.g. via Google public DNS) and IP addresses must be publicly routable.  It must not contain a protocol (e.g., https://) and it must not contain any slashes.
     * If a Cloud Storage bucket is provided, it must be in the canonical "gs://bucketname" format. Other forms, such as "storage.googleapis.com", will be rejected.
     */
    readonly originAddress: pulumi.Output<string>;
    /**
     * The override actions, including url rewrites and header
     * additions, for requests that use this origin.
     * Structure is documented below.
     */
    readonly originOverrideAction: pulumi.Output<outputs.networkservices.EdgeCacheOriginOriginOverrideAction | undefined>;
    /**
     * Follow redirects from this origin.
     * Structure is documented below.
     */
    readonly originRedirect: pulumi.Output<outputs.networkservices.EdgeCacheOriginOriginRedirect | undefined>;
    /**
     * The port to connect to the origin on.
     * Defaults to port 443 for HTTP2 and HTTPS protocols, and port 80 for HTTP.
     */
    readonly port: pulumi.Output<number>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    readonly project: pulumi.Output<string>;
    /**
     * The protocol to use to connect to the configured origin. Defaults to HTTP2, and it is strongly recommended that users use HTTP2 for both security & performance.
     * When using HTTP2 or HTTPS as the protocol, a valid, publicly-signed, unexpired TLS (SSL) certificate must be presented by the origin server.
     * Possible values are: `HTTP2`, `HTTPS`, `HTTP`.
     */
    readonly protocol: pulumi.Output<string>;
    /**
     * The combination of labels configured directly on the resource
     *  and default labels configured on the provider.
     */
    readonly pulumiLabels: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Specifies one or more retry conditions for the configured origin.
     * If the failure mode during a connection attempt to the origin matches the configured retryCondition(s),
     * the origin request will be retried up to maxAttempts times. The failoverOrigin, if configured, will then be used to satisfy the request.
     * The default retryCondition is "CONNECT_FAILURE".
     * retryConditions apply to this origin, and not subsequent failoverOrigin(s),
     * which may specify their own retryConditions and maxAttempts.
     * Valid values are:
     * - CONNECT_FAILURE: Retry on failures connecting to origins, for example due to connection timeouts.
     * - HTTP_5XX: Retry if the origin responds with any 5xx response code, or if the origin does not respond at all, example: disconnects, reset, read timeout, connection failure, and refused streams.
     * - GATEWAY_ERROR: Similar to 5xx, but only applies to response codes 502, 503 or 504.
     * - RETRIABLE_4XX: Retry for retriable 4xx response codes, which include HTTP 409 (Conflict) and HTTP 429 (Too Many Requests)
     * - NOT_FOUND: Retry if the origin returns a HTTP 404 (Not Found). This can be useful when generating video content, and the segment is not available yet.
     * - FORBIDDEN: Retry if the origin returns a HTTP 403 (Forbidden).
     * Each value may be one of: `CONNECT_FAILURE`, `HTTP_5XX`, `GATEWAY_ERROR`, `RETRIABLE_4XX`, `NOT_FOUND`, `FORBIDDEN`.
     */
    readonly retryConditions: pulumi.Output<string[]>;
    /**
     * The connection and HTTP timeout configuration for this origin.
     * Structure is documented below.
     */
    readonly timeout: pulumi.Output<outputs.networkservices.EdgeCacheOriginTimeout | undefined>;
    /**
     * Create a EdgeCacheOrigin resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: EdgeCacheOriginArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering EdgeCacheOrigin resources.
 */
export interface EdgeCacheOriginState {
    /**
     * Enable AWS Signature Version 4 origin authentication.
     * Structure is documented below.
     */
    awsV4Authentication?: pulumi.Input<inputs.networkservices.EdgeCacheOriginAwsV4Authentication | undefined>;
    /**
     * Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
     * When a 'terraform destroy' or 'pulumi up' would delete the resource,
     * the command will fail if this field is set to "PREVENT" in Terraform state.
     * When set to "ABANDON", the command will remove the resource from Terraform
     * management without updating or deleting the resource in the API.
     * When set to "DELETE", deleting the resource is allowed.
     */
    deletionPolicy?: pulumi.Input<string | undefined>;
    /**
     * A human-readable description of the resource.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
     */
    effectiveLabels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The Origin resource to try when the current origin cannot be reached.
     * After maxAttempts is reached, the configured failoverOrigin will be used to fulfil the request.
     * The value of timeout.maxAttemptsTimeout dictates the timeout across all origins.
     * A reference to a Topic resource.
     */
    failoverOrigin?: pulumi.Input<string | undefined>;
    /**
     * 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.
     * Structure is documented below.
     */
    flexShielding?: pulumi.Input<inputs.networkservices.EdgeCacheOriginFlexShielding | undefined>;
    /**
     * Set of label tags associated with the EdgeCache resource.
     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * Please refer to the field `effectiveLabels` for all of the labels present on the resource.
     */
    labels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The maximum number of attempts to cache fill from this origin. Another attempt is made when a cache fill fails with one of the retryConditions.
     * Once maxAttempts to this origin have failed the failoverOrigin will be used, if one is specified. That failoverOrigin may specify its own maxAttempts,
     * retryConditions and failoverOrigin to control its own 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 maxAttemptsTimeout.
     * The last valid, non-retried response from all origins will be returned to the client.
     * If no origin returns a valid response, an HTTP 502 will be returned to the client.
     * Defaults to 1. Must be a value greater than 0 and less than 4.
     */
    maxAttempts?: pulumi.Input<number | undefined>;
    /**
     * Name of the resource; 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 the first character must be a letter,
     * and all following characters must be a dash, underscore, letter or digit.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * A fully qualified domain name (FQDN) or IP address reachable over the public Internet, or the address of a Google Cloud Storage bucket.
     * This address will be used as the origin for cache requests - e.g. FQDN: media-backend.example.com, IPv4: 35.218.1.1, IPv6: 2607:f8b0:4012:809::200e, Cloud Storage: gs://bucketname
     * When providing an FQDN (hostname), it must be publicly resolvable (e.g. via Google public DNS) and IP addresses must be publicly routable.  It must not contain a protocol (e.g., https://) and it must not contain any slashes.
     * If a Cloud Storage bucket is provided, it must be in the canonical "gs://bucketname" format. Other forms, such as "storage.googleapis.com", will be rejected.
     */
    originAddress?: pulumi.Input<string | undefined>;
    /**
     * The override actions, including url rewrites and header
     * additions, for requests that use this origin.
     * Structure is documented below.
     */
    originOverrideAction?: pulumi.Input<inputs.networkservices.EdgeCacheOriginOriginOverrideAction | undefined>;
    /**
     * Follow redirects from this origin.
     * Structure is documented below.
     */
    originRedirect?: pulumi.Input<inputs.networkservices.EdgeCacheOriginOriginRedirect | undefined>;
    /**
     * The port to connect to the origin on.
     * Defaults to port 443 for HTTP2 and HTTPS protocols, and port 80 for HTTP.
     */
    port?: pulumi.Input<number | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string | undefined>;
    /**
     * The protocol to use to connect to the configured origin. Defaults to HTTP2, and it is strongly recommended that users use HTTP2 for both security & performance.
     * When using HTTP2 or HTTPS as the protocol, a valid, publicly-signed, unexpired TLS (SSL) certificate must be presented by the origin server.
     * Possible values are: `HTTP2`, `HTTPS`, `HTTP`.
     */
    protocol?: pulumi.Input<string | undefined>;
    /**
     * The combination of labels configured directly on the resource
     *  and default labels configured on the provider.
     */
    pulumiLabels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Specifies one or more retry conditions for the configured origin.
     * If the failure mode during a connection attempt to the origin matches the configured retryCondition(s),
     * the origin request will be retried up to maxAttempts times. The failoverOrigin, if configured, will then be used to satisfy the request.
     * The default retryCondition is "CONNECT_FAILURE".
     * retryConditions apply to this origin, and not subsequent failoverOrigin(s),
     * which may specify their own retryConditions and maxAttempts.
     * Valid values are:
     * - CONNECT_FAILURE: Retry on failures connecting to origins, for example due to connection timeouts.
     * - HTTP_5XX: Retry if the origin responds with any 5xx response code, or if the origin does not respond at all, example: disconnects, reset, read timeout, connection failure, and refused streams.
     * - GATEWAY_ERROR: Similar to 5xx, but only applies to response codes 502, 503 or 504.
     * - RETRIABLE_4XX: Retry for retriable 4xx response codes, which include HTTP 409 (Conflict) and HTTP 429 (Too Many Requests)
     * - NOT_FOUND: Retry if the origin returns a HTTP 404 (Not Found). This can be useful when generating video content, and the segment is not available yet.
     * - FORBIDDEN: Retry if the origin returns a HTTP 403 (Forbidden).
     * Each value may be one of: `CONNECT_FAILURE`, `HTTP_5XX`, `GATEWAY_ERROR`, `RETRIABLE_4XX`, `NOT_FOUND`, `FORBIDDEN`.
     */
    retryConditions?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The connection and HTTP timeout configuration for this origin.
     * Structure is documented below.
     */
    timeout?: pulumi.Input<inputs.networkservices.EdgeCacheOriginTimeout | undefined>;
}
/**
 * The set of arguments for constructing a EdgeCacheOrigin resource.
 */
export interface EdgeCacheOriginArgs {
    /**
     * Enable AWS Signature Version 4 origin authentication.
     * Structure is documented below.
     */
    awsV4Authentication?: pulumi.Input<inputs.networkservices.EdgeCacheOriginAwsV4Authentication | undefined>;
    /**
     * Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
     * When a 'terraform destroy' or 'pulumi up' would delete the resource,
     * the command will fail if this field is set to "PREVENT" in Terraform state.
     * When set to "ABANDON", the command will remove the resource from Terraform
     * management without updating or deleting the resource in the API.
     * When set to "DELETE", deleting the resource is allowed.
     */
    deletionPolicy?: pulumi.Input<string | undefined>;
    /**
     * A human-readable description of the resource.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * The Origin resource to try when the current origin cannot be reached.
     * After maxAttempts is reached, the configured failoverOrigin will be used to fulfil the request.
     * The value of timeout.maxAttemptsTimeout dictates the timeout across all origins.
     * A reference to a Topic resource.
     */
    failoverOrigin?: pulumi.Input<string | undefined>;
    /**
     * 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.
     * Structure is documented below.
     */
    flexShielding?: pulumi.Input<inputs.networkservices.EdgeCacheOriginFlexShielding | undefined>;
    /**
     * Set of label tags associated with the EdgeCache resource.
     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * Please refer to the field `effectiveLabels` for all of the labels present on the resource.
     */
    labels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The maximum number of attempts to cache fill from this origin. Another attempt is made when a cache fill fails with one of the retryConditions.
     * Once maxAttempts to this origin have failed the failoverOrigin will be used, if one is specified. That failoverOrigin may specify its own maxAttempts,
     * retryConditions and failoverOrigin to control its own 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 maxAttemptsTimeout.
     * The last valid, non-retried response from all origins will be returned to the client.
     * If no origin returns a valid response, an HTTP 502 will be returned to the client.
     * Defaults to 1. Must be a value greater than 0 and less than 4.
     */
    maxAttempts?: pulumi.Input<number | undefined>;
    /**
     * Name of the resource; 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 the first character must be a letter,
     * and all following characters must be a dash, underscore, letter or digit.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * A fully qualified domain name (FQDN) or IP address reachable over the public Internet, or the address of a Google Cloud Storage bucket.
     * This address will be used as the origin for cache requests - e.g. FQDN: media-backend.example.com, IPv4: 35.218.1.1, IPv6: 2607:f8b0:4012:809::200e, Cloud Storage: gs://bucketname
     * When providing an FQDN (hostname), it must be publicly resolvable (e.g. via Google public DNS) and IP addresses must be publicly routable.  It must not contain a protocol (e.g., https://) and it must not contain any slashes.
     * If a Cloud Storage bucket is provided, it must be in the canonical "gs://bucketname" format. Other forms, such as "storage.googleapis.com", will be rejected.
     */
    originAddress: pulumi.Input<string>;
    /**
     * The override actions, including url rewrites and header
     * additions, for requests that use this origin.
     * Structure is documented below.
     */
    originOverrideAction?: pulumi.Input<inputs.networkservices.EdgeCacheOriginOriginOverrideAction | undefined>;
    /**
     * Follow redirects from this origin.
     * Structure is documented below.
     */
    originRedirect?: pulumi.Input<inputs.networkservices.EdgeCacheOriginOriginRedirect | undefined>;
    /**
     * The port to connect to the origin on.
     * Defaults to port 443 for HTTP2 and HTTPS protocols, and port 80 for HTTP.
     */
    port?: pulumi.Input<number | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string | undefined>;
    /**
     * The protocol to use to connect to the configured origin. Defaults to HTTP2, and it is strongly recommended that users use HTTP2 for both security & performance.
     * When using HTTP2 or HTTPS as the protocol, a valid, publicly-signed, unexpired TLS (SSL) certificate must be presented by the origin server.
     * Possible values are: `HTTP2`, `HTTPS`, `HTTP`.
     */
    protocol?: pulumi.Input<string | undefined>;
    /**
     * Specifies one or more retry conditions for the configured origin.
     * If the failure mode during a connection attempt to the origin matches the configured retryCondition(s),
     * the origin request will be retried up to maxAttempts times. The failoverOrigin, if configured, will then be used to satisfy the request.
     * The default retryCondition is "CONNECT_FAILURE".
     * retryConditions apply to this origin, and not subsequent failoverOrigin(s),
     * which may specify their own retryConditions and maxAttempts.
     * Valid values are:
     * - CONNECT_FAILURE: Retry on failures connecting to origins, for example due to connection timeouts.
     * - HTTP_5XX: Retry if the origin responds with any 5xx response code, or if the origin does not respond at all, example: disconnects, reset, read timeout, connection failure, and refused streams.
     * - GATEWAY_ERROR: Similar to 5xx, but only applies to response codes 502, 503 or 504.
     * - RETRIABLE_4XX: Retry for retriable 4xx response codes, which include HTTP 409 (Conflict) and HTTP 429 (Too Many Requests)
     * - NOT_FOUND: Retry if the origin returns a HTTP 404 (Not Found). This can be useful when generating video content, and the segment is not available yet.
     * - FORBIDDEN: Retry if the origin returns a HTTP 403 (Forbidden).
     * Each value may be one of: `CONNECT_FAILURE`, `HTTP_5XX`, `GATEWAY_ERROR`, `RETRIABLE_4XX`, `NOT_FOUND`, `FORBIDDEN`.
     */
    retryConditions?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The connection and HTTP timeout configuration for this origin.
     * Structure is documented below.
     */
    timeout?: pulumi.Input<inputs.networkservices.EdgeCacheOriginTimeout | undefined>;
}
//# sourceMappingURL=edgeCacheOrigin.d.ts.map