1. Packages
  2. Oracle Cloud Infrastructure
  3. API Docs
  4. ApiGateway
  5. Deployment
Oracle Cloud Infrastructure v2.12.0 published on Friday, Oct 11, 2024 by Pulumi

oci.ApiGateway.Deployment

Explore with Pulumi AI

oci logo
Oracle Cloud Infrastructure v2.12.0 published on Friday, Oct 11, 2024 by Pulumi

    This resource provides the Deployment resource in Oracle Cloud Infrastructure API Gateway service.

    Creates a new deployment.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as oci from "@pulumi/oci";
    
    const testDeployment = new oci.apigateway.Deployment("test_deployment", {
        compartmentId: compartmentId,
        gatewayId: testGateway.id,
        pathPrefix: deploymentPathPrefix,
        specification: {
            loggingPolicies: {
                accessLog: {
                    isEnabled: deploymentSpecificationLoggingPoliciesAccessLogIsEnabled,
                },
                executionLog: {
                    isEnabled: deploymentSpecificationLoggingPoliciesExecutionLogIsEnabled,
                    logLevel: deploymentSpecificationLoggingPoliciesExecutionLogLogLevel,
                },
            },
            requestPolicies: {
                authentication: {
                    type: deploymentSpecificationRequestPoliciesAuthenticationType,
                    audiences: deploymentSpecificationRequestPoliciesAuthenticationAudiences,
                    cacheKeys: deploymentSpecificationRequestPoliciesAuthenticationCacheKey,
                    functionId: testFunction.id,
                    isAnonymousAccessAllowed: deploymentSpecificationRequestPoliciesAuthenticationIsAnonymousAccessAllowed,
                    issuers: deploymentSpecificationRequestPoliciesAuthenticationIssuers,
                    maxClockSkewInSeconds: deploymentSpecificationRequestPoliciesAuthenticationMaxClockSkewInSeconds,
                    parameters: deploymentSpecificationRequestPoliciesAuthenticationParameters,
                    publicKeys: {
                        type: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysType,
                        isSslVerifyDisabled: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysIsSslVerifyDisabled,
                        keys: [{
                            format: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysFormat,
                            alg: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysAlg,
                            e: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysE,
                            key: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKey,
                            keyOps: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKeyOps,
                            kid: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKid,
                            kty: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKty,
                            n: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysN,
                            use: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysUse,
                        }],
                        maxCacheDurationInHours: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysMaxCacheDurationInHours,
                        uri: deploymentSpecificationRequestPoliciesAuthenticationPublicKeysUri,
                    },
                    tokenAuthScheme: deploymentSpecificationRequestPoliciesAuthenticationTokenAuthScheme,
                    tokenHeader: deploymentSpecificationRequestPoliciesAuthenticationTokenHeader,
                    tokenQueryParam: deploymentSpecificationRequestPoliciesAuthenticationTokenQueryParam,
                    validationFailurePolicy: {
                        type: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyType,
                        clientDetails: {
                            type: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsType,
                            clientId: testClient.id,
                            clientSecretId: testSecret.id,
                            clientSecretVersionNumber: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsClientSecretVersionNumber,
                        },
                        fallbackRedirectPath: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyFallbackRedirectPath,
                        logoutPath: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyLogoutPath,
                        maxExpiryDurationInHours: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyMaxExpiryDurationInHours,
                        responseCode: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseCode,
                        responseHeaderTransformations: {
                            filterHeaders: {
                                items: [{
                                    name: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName,
                                }],
                                type: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType,
                            },
                            renameHeaders: {
                                items: [{
                                    from: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom,
                                    to: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo,
                                }],
                            },
                            setHeaders: {
                                items: [{
                                    ifExists: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists,
                                    name: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName,
                                    values: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues,
                                }],
                            },
                        },
                        responseMessage: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseMessage,
                        responseType: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseType,
                        scopes: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyScopes,
                        sourceUriDetails: {
                            type: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsType,
                            uri: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsUri,
                        },
                        useCookiesForIntermediateSteps: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForIntermediateSteps,
                        useCookiesForSession: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForSession,
                        usePkce: deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUsePkce,
                    },
                    validationPolicy: {
                        type: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyType,
                        additionalValidationPolicy: {
                            audiences: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyAudiences,
                            issuers: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyIssuers,
                            verifyClaims: [{
                                isRequired: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired,
                                key: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsKey,
                                values: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsValues,
                            }],
                        },
                        clientDetails: {
                            type: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsType,
                            clientId: testClient.id,
                            clientSecretId: testSecret.id,
                            clientSecretVersionNumber: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsClientSecretVersionNumber,
                        },
                        isSslVerifyDisabled: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyIsSslVerifyDisabled,
                        keys: [{
                            format: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysFormat,
                            alg: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysAlg,
                            e: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysE,
                            key: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKey,
                            keyOps: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKeyOps,
                            kid: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKid,
                            kty: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKty,
                            n: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysN,
                            use: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysUse,
                        }],
                        maxCacheDurationInHours: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyMaxCacheDurationInHours,
                        sourceUriDetails: {
                            type: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsType,
                            uri: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsUri,
                        },
                        uri: deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyUri,
                    },
                    verifyClaims: [{
                        isRequired: deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsIsRequired,
                        key: deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsKey,
                        values: deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsValues,
                    }],
                },
                cors: {
                    allowedOrigins: deploymentSpecificationRequestPoliciesCorsAllowedOrigins,
                    allowedHeaders: deploymentSpecificationRequestPoliciesCorsAllowedHeaders,
                    allowedMethods: deploymentSpecificationRequestPoliciesCorsAllowedMethods,
                    exposedHeaders: deploymentSpecificationRequestPoliciesCorsExposedHeaders,
                    isAllowCredentialsEnabled: deploymentSpecificationRequestPoliciesCorsIsAllowCredentialsEnabled,
                    maxAgeInSeconds: deploymentSpecificationRequestPoliciesCorsMaxAgeInSeconds,
                },
                dynamicAuthentication: {
                    authenticationServers: [{
                        authenticationServerDetail: {
                            type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailType,
                            audiences: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailAudiences,
                            functionId: testFunction.id,
                            isAnonymousAccessAllowed: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIsAnonymousAccessAllowed,
                            issuers: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIssuers,
                            maxClockSkewInSeconds: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailMaxClockSkewInSeconds,
                            publicKeys: {
                                type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysType,
                                isSslVerifyDisabled: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysIsSslVerifyDisabled,
                                keys: [{
                                    format: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysFormat,
                                    alg: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysAlg,
                                    e: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysE,
                                    key: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKey,
                                    keyOps: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKeyOps,
                                    kid: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKid,
                                    kty: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKty,
                                    n: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysN,
                                    use: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysUse,
                                }],
                                maxCacheDurationInHours: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysMaxCacheDurationInHours,
                                uri: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysUri,
                            },
                            tokenAuthScheme: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenAuthScheme,
                            tokenHeader: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenHeader,
                            tokenQueryParam: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenQueryParam,
                            validationFailurePolicy: {
                                type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyType,
                                clientDetails: {
                                    type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsType,
                                    clientId: testClient.id,
                                    clientSecretId: testSecret.id,
                                    clientSecretVersionNumber: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsClientSecretVersionNumber,
                                },
                                fallbackRedirectPath: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyFallbackRedirectPath,
                                logoutPath: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyLogoutPath,
                                maxExpiryDurationInHours: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyMaxExpiryDurationInHours,
                                responseCode: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseCode,
                                responseHeaderTransformations: {
                                    filterHeaders: {
                                        items: [{
                                            name: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName,
                                        }],
                                        type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType,
                                    },
                                    renameHeaders: {
                                        items: [{
                                            from: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom,
                                            to: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo,
                                        }],
                                    },
                                    setHeaders: {
                                        items: [{
                                            ifExists: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists,
                                            name: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName,
                                            values: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues,
                                        }],
                                    },
                                },
                                responseMessage: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseMessage,
                                responseType: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseType,
                                scopes: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyScopes,
                                sourceUriDetails: {
                                    type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsType,
                                    uri: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsUri,
                                },
                                useCookiesForIntermediateSteps: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForIntermediateSteps,
                                useCookiesForSession: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForSession,
                                usePkce: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUsePkce,
                            },
                            validationPolicy: {
                                type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyType,
                                additionalValidationPolicy: {
                                    audiences: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyAudiences,
                                    issuers: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyIssuers,
                                    verifyClaims: [{
                                        isRequired: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired,
                                        key: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsKey,
                                        values: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsValues,
                                    }],
                                },
                                clientDetails: {
                                    type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsType,
                                    clientId: testClient.id,
                                    clientSecretId: testSecret.id,
                                    clientSecretVersionNumber: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsClientSecretVersionNumber,
                                },
                                isSslVerifyDisabled: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyIsSslVerifyDisabled,
                                keys: [{
                                    format: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysFormat,
                                    alg: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysAlg,
                                    e: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysE,
                                    key: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKey,
                                    keyOps: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKeyOps,
                                    kid: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKid,
                                    kty: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKty,
                                    n: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysN,
                                    use: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysUse,
                                }],
                                maxCacheDurationInHours: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyMaxCacheDurationInHours,
                                sourceUriDetails: {
                                    type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsType,
                                    uri: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsUri,
                                },
                                uri: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyUri,
                            },
                            verifyClaims: [{
                                isRequired: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsIsRequired,
                                key: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsKey,
                                values: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsValues,
                            }],
                        },
                        key: {
                            name: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyName,
                            expression: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression,
                            isDefault: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault,
                            type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType,
                            values: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues,
                        },
                    }],
                    selectionSource: {
                        selector: deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceSelector,
                        type: deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceType,
                    },
                },
                mutualTls: {
                    allowedSans: deploymentSpecificationRequestPoliciesMutualTlsAllowedSans,
                    isVerifiedCertificateRequired: deploymentSpecificationRequestPoliciesMutualTlsIsVerifiedCertificateRequired,
                },
                rateLimiting: {
                    rateInRequestsPerSecond: deploymentSpecificationRequestPoliciesRateLimitingRateInRequestsPerSecond,
                    rateKey: deploymentSpecificationRequestPoliciesRateLimitingRateKey,
                },
                usagePlans: {
                    tokenLocations: deploymentSpecificationRequestPoliciesUsagePlansTokenLocations,
                },
            },
            routes: [{
                backend: {
                    type: deploymentSpecificationRoutesBackendType,
                    allowedPostLogoutUris: deploymentSpecificationRoutesBackendAllowedPostLogoutUris,
                    body: deploymentSpecificationRoutesBackendBody,
                    connectTimeoutInSeconds: deploymentSpecificationRoutesBackendConnectTimeoutInSeconds,
                    functionId: testFunction.id,
                    headers: [{
                        name: deploymentSpecificationRoutesBackendHeadersName,
                        value: deploymentSpecificationRoutesBackendHeadersValue,
                    }],
                    isSslVerifyDisabled: deploymentSpecificationRoutesBackendIsSslVerifyDisabled,
                    postLogoutState: deploymentSpecificationRoutesBackendPostLogoutState,
                    readTimeoutInSeconds: deploymentSpecificationRoutesBackendReadTimeoutInSeconds,
                    routingBackends: [{
                        backend: {
                            type: deploymentSpecificationRoutesBackendRoutingBackendsBackendType,
                            body: deploymentSpecificationRoutesBackendRoutingBackendsBackendBody,
                            connectTimeoutInSeconds: deploymentSpecificationRoutesBackendRoutingBackendsBackendConnectTimeoutInSeconds,
                            functionId: testFunction.id,
                            headers: [{
                                name: deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersName,
                                value: deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersValue,
                            }],
                            isSslVerifyDisabled: deploymentSpecificationRoutesBackendRoutingBackendsBackendIsSslVerifyDisabled,
                            readTimeoutInSeconds: deploymentSpecificationRoutesBackendRoutingBackendsBackendReadTimeoutInSeconds,
                            sendTimeoutInSeconds: deploymentSpecificationRoutesBackendRoutingBackendsBackendSendTimeoutInSeconds,
                            status: deploymentSpecificationRoutesBackendRoutingBackendsBackendStatus,
                            url: deploymentSpecificationRoutesBackendRoutingBackendsBackendUrl,
                        },
                        key: {
                            name: deploymentSpecificationRoutesBackendRoutingBackendsKeyName,
                            type: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType,
                            expression: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression,
                            isDefault: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault,
                            values: deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues,
                        },
                    }],
                    selectionSource: {
                        selector: deploymentSpecificationRoutesBackendSelectionSourceSelector,
                        type: deploymentSpecificationRoutesBackendSelectionSourceType,
                    },
                    sendTimeoutInSeconds: deploymentSpecificationRoutesBackendSendTimeoutInSeconds,
                    status: deploymentSpecificationRoutesBackendStatus,
                    url: deploymentSpecificationRoutesBackendUrl,
                },
                path: deploymentSpecificationRoutesPath,
                loggingPolicies: {
                    accessLog: {
                        isEnabled: deploymentSpecificationRoutesLoggingPoliciesAccessLogIsEnabled,
                    },
                    executionLog: {
                        isEnabled: deploymentSpecificationRoutesLoggingPoliciesExecutionLogIsEnabled,
                        logLevel: deploymentSpecificationRoutesLoggingPoliciesExecutionLogLogLevel,
                    },
                },
                methods: deploymentSpecificationRoutesMethods,
                requestPolicies: {
                    authorization: {
                        allowedScopes: deploymentSpecificationRoutesRequestPoliciesAuthorizationAllowedScope,
                        type: deploymentSpecificationRoutesRequestPoliciesAuthorizationType,
                    },
                    bodyValidation: {
                        contents: [{
                            mediaType: deploymentSpecificationRoutesRequestPoliciesBodyValidationContentMediaType,
                            validationType: deploymentSpecificationRoutesRequestPoliciesBodyValidationContentValidationType,
                        }],
                        required: deploymentSpecificationRoutesRequestPoliciesBodyValidationRequired,
                        validationMode: deploymentSpecificationRoutesRequestPoliciesBodyValidationValidationMode,
                    },
                    cors: {
                        allowedOrigins: deploymentSpecificationRoutesRequestPoliciesCorsAllowedOrigins,
                        allowedHeaders: deploymentSpecificationRoutesRequestPoliciesCorsAllowedHeaders,
                        allowedMethods: deploymentSpecificationRoutesRequestPoliciesCorsAllowedMethods,
                        exposedHeaders: deploymentSpecificationRoutesRequestPoliciesCorsExposedHeaders,
                        isAllowCredentialsEnabled: deploymentSpecificationRoutesRequestPoliciesCorsIsAllowCredentialsEnabled,
                        maxAgeInSeconds: deploymentSpecificationRoutesRequestPoliciesCorsMaxAgeInSeconds,
                    },
                    headerTransformations: {
                        filterHeaders: {
                            items: [{
                                name: deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersItemsName,
                            }],
                            type: deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersType,
                        },
                        renameHeaders: {
                            items: [{
                                from: deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsFrom,
                                to: deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsTo,
                            }],
                        },
                        setHeaders: {
                            items: [{
                                name: deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsName,
                                values: deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsValues,
                                ifExists: deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsIfExists,
                            }],
                        },
                    },
                    headerValidations: {
                        headers: [{
                            name: deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersName,
                            required: deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersRequired,
                        }],
                        validationMode: deploymentSpecificationRoutesRequestPoliciesHeaderValidationsValidationMode,
                    },
                    queryParameterTransformations: {
                        filterQueryParameters: {
                            items: [{
                                name: deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemsName,
                            }],
                            type: deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersType,
                        },
                        renameQueryParameters: {
                            items: [{
                                from: deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsFrom,
                                to: deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsTo,
                            }],
                        },
                        setQueryParameters: {
                            items: [{
                                name: deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsName,
                                values: deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsValues,
                                ifExists: deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsIfExists,
                            }],
                        },
                    },
                    queryParameterValidations: {
                        parameters: [{
                            name: deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersName,
                            required: deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersRequired,
                        }],
                        validationMode: deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsValidationMode,
                    },
                    responseCacheLookup: {
                        type: deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupType,
                        cacheKeyAdditions: deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupCacheKeyAdditions,
                        isEnabled: deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsEnabled,
                        isPrivateCachingEnabled: deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsPrivateCachingEnabled,
                    },
                },
                responsePolicies: {
                    headerTransformations: {
                        filterHeaders: {
                            items: [{
                                name: deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersItemsName,
                            }],
                            type: deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersType,
                        },
                        renameHeaders: {
                            items: [{
                                from: deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsFrom,
                                to: deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsTo,
                            }],
                        },
                        setHeaders: {
                            items: [{
                                name: deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsName,
                                values: deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsValues,
                                ifExists: deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsIfExists,
                            }],
                        },
                    },
                    responseCacheStore: {
                        timeToLiveInSeconds: deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreTimeToLiveInSeconds,
                        type: deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreType,
                    },
                },
            }],
        },
        definedTags: {
            "Operations.CostCenter": "42",
        },
        displayName: deploymentDisplayName,
        freeformTags: {
            Department: "Finance",
        },
    });
    
    import pulumi
    import pulumi_oci as oci
    
    test_deployment = oci.api_gateway.Deployment("test_deployment",
        compartment_id=compartment_id,
        gateway_id=test_gateway["id"],
        path_prefix=deployment_path_prefix,
        specification={
            "logging_policies": {
                "access_log": {
                    "is_enabled": deployment_specification_logging_policies_access_log_is_enabled,
                },
                "execution_log": {
                    "is_enabled": deployment_specification_logging_policies_execution_log_is_enabled,
                    "log_level": deployment_specification_logging_policies_execution_log_log_level,
                },
            },
            "request_policies": {
                "authentication": {
                    "type": deployment_specification_request_policies_authentication_type,
                    "audiences": deployment_specification_request_policies_authentication_audiences,
                    "cache_keys": deployment_specification_request_policies_authentication_cache_key,
                    "function_id": test_function["id"],
                    "is_anonymous_access_allowed": deployment_specification_request_policies_authentication_is_anonymous_access_allowed,
                    "issuers": deployment_specification_request_policies_authentication_issuers,
                    "max_clock_skew_in_seconds": deployment_specification_request_policies_authentication_max_clock_skew_in_seconds,
                    "parameters": deployment_specification_request_policies_authentication_parameters,
                    "public_keys": {
                        "type": deployment_specification_request_policies_authentication_public_keys_type,
                        "is_ssl_verify_disabled": deployment_specification_request_policies_authentication_public_keys_is_ssl_verify_disabled,
                        "keys": [{
                            "format": deployment_specification_request_policies_authentication_public_keys_keys_format,
                            "alg": deployment_specification_request_policies_authentication_public_keys_keys_alg,
                            "e": deployment_specification_request_policies_authentication_public_keys_keys_e,
                            "key": deployment_specification_request_policies_authentication_public_keys_keys_key,
                            "key_ops": deployment_specification_request_policies_authentication_public_keys_keys_key_ops,
                            "kid": deployment_specification_request_policies_authentication_public_keys_keys_kid,
                            "kty": deployment_specification_request_policies_authentication_public_keys_keys_kty,
                            "n": deployment_specification_request_policies_authentication_public_keys_keys_n,
                            "use": deployment_specification_request_policies_authentication_public_keys_keys_use,
                        }],
                        "max_cache_duration_in_hours": deployment_specification_request_policies_authentication_public_keys_max_cache_duration_in_hours,
                        "uri": deployment_specification_request_policies_authentication_public_keys_uri,
                    },
                    "token_auth_scheme": deployment_specification_request_policies_authentication_token_auth_scheme,
                    "token_header": deployment_specification_request_policies_authentication_token_header,
                    "token_query_param": deployment_specification_request_policies_authentication_token_query_param,
                    "validation_failure_policy": {
                        "type": deployment_specification_request_policies_authentication_validation_failure_policy_type,
                        "client_details": {
                            "type": deployment_specification_request_policies_authentication_validation_failure_policy_client_details_type,
                            "client_id": test_client["id"],
                            "client_secret_id": test_secret["id"],
                            "client_secret_version_number": deployment_specification_request_policies_authentication_validation_failure_policy_client_details_client_secret_version_number,
                        },
                        "fallback_redirect_path": deployment_specification_request_policies_authentication_validation_failure_policy_fallback_redirect_path,
                        "logout_path": deployment_specification_request_policies_authentication_validation_failure_policy_logout_path,
                        "max_expiry_duration_in_hours": deployment_specification_request_policies_authentication_validation_failure_policy_max_expiry_duration_in_hours,
                        "response_code": deployment_specification_request_policies_authentication_validation_failure_policy_response_code,
                        "response_header_transformations": {
                            "filter_headers": {
                                "items": [{
                                    "name": deployment_specification_request_policies_authentication_validation_failure_policy_response_header_transformations_filter_headers_items_name,
                                }],
                                "type": deployment_specification_request_policies_authentication_validation_failure_policy_response_header_transformations_filter_headers_type,
                            },
                            "rename_headers": {
                                "items": [{
                                    "from_": deployment_specification_request_policies_authentication_validation_failure_policy_response_header_transformations_rename_headers_items_from,
                                    "to": deployment_specification_request_policies_authentication_validation_failure_policy_response_header_transformations_rename_headers_items_to,
                                }],
                            },
                            "set_headers": {
                                "items": [{
                                    "if_exists": deployment_specification_request_policies_authentication_validation_failure_policy_response_header_transformations_set_headers_items_if_exists,
                                    "name": deployment_specification_request_policies_authentication_validation_failure_policy_response_header_transformations_set_headers_items_name,
                                    "values": deployment_specification_request_policies_authentication_validation_failure_policy_response_header_transformations_set_headers_items_values,
                                }],
                            },
                        },
                        "response_message": deployment_specification_request_policies_authentication_validation_failure_policy_response_message,
                        "response_type": deployment_specification_request_policies_authentication_validation_failure_policy_response_type,
                        "scopes": deployment_specification_request_policies_authentication_validation_failure_policy_scopes,
                        "source_uri_details": {
                            "type": deployment_specification_request_policies_authentication_validation_failure_policy_source_uri_details_type,
                            "uri": deployment_specification_request_policies_authentication_validation_failure_policy_source_uri_details_uri,
                        },
                        "use_cookies_for_intermediate_steps": deployment_specification_request_policies_authentication_validation_failure_policy_use_cookies_for_intermediate_steps,
                        "use_cookies_for_session": deployment_specification_request_policies_authentication_validation_failure_policy_use_cookies_for_session,
                        "use_pkce": deployment_specification_request_policies_authentication_validation_failure_policy_use_pkce,
                    },
                    "validation_policy": {
                        "type": deployment_specification_request_policies_authentication_validation_policy_type,
                        "additional_validation_policy": {
                            "audiences": deployment_specification_request_policies_authentication_validation_policy_additional_validation_policy_audiences,
                            "issuers": deployment_specification_request_policies_authentication_validation_policy_additional_validation_policy_issuers,
                            "verify_claims": [{
                                "is_required": deployment_specification_request_policies_authentication_validation_policy_additional_validation_policy_verify_claims_is_required,
                                "key": deployment_specification_request_policies_authentication_validation_policy_additional_validation_policy_verify_claims_key,
                                "values": deployment_specification_request_policies_authentication_validation_policy_additional_validation_policy_verify_claims_values,
                            }],
                        },
                        "client_details": {
                            "type": deployment_specification_request_policies_authentication_validation_policy_client_details_type,
                            "client_id": test_client["id"],
                            "client_secret_id": test_secret["id"],
                            "client_secret_version_number": deployment_specification_request_policies_authentication_validation_policy_client_details_client_secret_version_number,
                        },
                        "is_ssl_verify_disabled": deployment_specification_request_policies_authentication_validation_policy_is_ssl_verify_disabled,
                        "keys": [{
                            "format": deployment_specification_request_policies_authentication_validation_policy_keys_format,
                            "alg": deployment_specification_request_policies_authentication_validation_policy_keys_alg,
                            "e": deployment_specification_request_policies_authentication_validation_policy_keys_e,
                            "key": deployment_specification_request_policies_authentication_validation_policy_keys_key,
                            "key_ops": deployment_specification_request_policies_authentication_validation_policy_keys_key_ops,
                            "kid": deployment_specification_request_policies_authentication_validation_policy_keys_kid,
                            "kty": deployment_specification_request_policies_authentication_validation_policy_keys_kty,
                            "n": deployment_specification_request_policies_authentication_validation_policy_keys_n,
                            "use": deployment_specification_request_policies_authentication_validation_policy_keys_use,
                        }],
                        "max_cache_duration_in_hours": deployment_specification_request_policies_authentication_validation_policy_max_cache_duration_in_hours,
                        "source_uri_details": {
                            "type": deployment_specification_request_policies_authentication_validation_policy_source_uri_details_type,
                            "uri": deployment_specification_request_policies_authentication_validation_policy_source_uri_details_uri,
                        },
                        "uri": deployment_specification_request_policies_authentication_validation_policy_uri,
                    },
                    "verify_claims": [{
                        "is_required": deployment_specification_request_policies_authentication_verify_claims_is_required,
                        "key": deployment_specification_request_policies_authentication_verify_claims_key,
                        "values": deployment_specification_request_policies_authentication_verify_claims_values,
                    }],
                },
                "cors": {
                    "allowed_origins": deployment_specification_request_policies_cors_allowed_origins,
                    "allowed_headers": deployment_specification_request_policies_cors_allowed_headers,
                    "allowed_methods": deployment_specification_request_policies_cors_allowed_methods,
                    "exposed_headers": deployment_specification_request_policies_cors_exposed_headers,
                    "is_allow_credentials_enabled": deployment_specification_request_policies_cors_is_allow_credentials_enabled,
                    "max_age_in_seconds": deployment_specification_request_policies_cors_max_age_in_seconds,
                },
                "dynamic_authentication": {
                    "authentication_servers": [{
                        "authentication_server_detail": {
                            "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_type,
                            "audiences": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_audiences,
                            "function_id": test_function["id"],
                            "is_anonymous_access_allowed": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_is_anonymous_access_allowed,
                            "issuers": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_issuers,
                            "max_clock_skew_in_seconds": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_max_clock_skew_in_seconds,
                            "public_keys": {
                                "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_type,
                                "is_ssl_verify_disabled": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_is_ssl_verify_disabled,
                                "keys": [{
                                    "format": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_keys_format,
                                    "alg": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_keys_alg,
                                    "e": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_keys_e,
                                    "key": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_keys_key,
                                    "key_ops": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_keys_key_ops,
                                    "kid": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_keys_kid,
                                    "kty": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_keys_kty,
                                    "n": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_keys_n,
                                    "use": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_keys_use,
                                }],
                                "max_cache_duration_in_hours": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_max_cache_duration_in_hours,
                                "uri": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_public_keys_uri,
                            },
                            "token_auth_scheme": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_token_auth_scheme,
                            "token_header": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_token_header,
                            "token_query_param": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_token_query_param,
                            "validation_failure_policy": {
                                "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_type,
                                "client_details": {
                                    "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_client_details_type,
                                    "client_id": test_client["id"],
                                    "client_secret_id": test_secret["id"],
                                    "client_secret_version_number": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_client_details_client_secret_version_number,
                                },
                                "fallback_redirect_path": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_fallback_redirect_path,
                                "logout_path": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_logout_path,
                                "max_expiry_duration_in_hours": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_max_expiry_duration_in_hours,
                                "response_code": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_code,
                                "response_header_transformations": {
                                    "filter_headers": {
                                        "items": [{
                                            "name": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_header_transformations_filter_headers_items_name,
                                        }],
                                        "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_header_transformations_filter_headers_type,
                                    },
                                    "rename_headers": {
                                        "items": [{
                                            "from_": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_header_transformations_rename_headers_items_from,
                                            "to": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_header_transformations_rename_headers_items_to,
                                        }],
                                    },
                                    "set_headers": {
                                        "items": [{
                                            "if_exists": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_header_transformations_set_headers_items_if_exists,
                                            "name": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_header_transformations_set_headers_items_name,
                                            "values": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_header_transformations_set_headers_items_values,
                                        }],
                                    },
                                },
                                "response_message": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_message,
                                "response_type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_response_type,
                                "scopes": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_scopes,
                                "source_uri_details": {
                                    "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_source_uri_details_type,
                                    "uri": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_source_uri_details_uri,
                                },
                                "use_cookies_for_intermediate_steps": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_use_cookies_for_intermediate_steps,
                                "use_cookies_for_session": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_use_cookies_for_session,
                                "use_pkce": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_failure_policy_use_pkce,
                            },
                            "validation_policy": {
                                "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_type,
                                "additional_validation_policy": {
                                    "audiences": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_additional_validation_policy_audiences,
                                    "issuers": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_additional_validation_policy_issuers,
                                    "verify_claims": [{
                                        "is_required": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_additional_validation_policy_verify_claims_is_required,
                                        "key": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_additional_validation_policy_verify_claims_key,
                                        "values": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_additional_validation_policy_verify_claims_values,
                                    }],
                                },
                                "client_details": {
                                    "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_client_details_type,
                                    "client_id": test_client["id"],
                                    "client_secret_id": test_secret["id"],
                                    "client_secret_version_number": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_client_details_client_secret_version_number,
                                },
                                "is_ssl_verify_disabled": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_is_ssl_verify_disabled,
                                "keys": [{
                                    "format": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_keys_format,
                                    "alg": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_keys_alg,
                                    "e": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_keys_e,
                                    "key": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_keys_key,
                                    "key_ops": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_keys_key_ops,
                                    "kid": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_keys_kid,
                                    "kty": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_keys_kty,
                                    "n": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_keys_n,
                                    "use": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_keys_use,
                                }],
                                "max_cache_duration_in_hours": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_max_cache_duration_in_hours,
                                "source_uri_details": {
                                    "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_source_uri_details_type,
                                    "uri": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_source_uri_details_uri,
                                },
                                "uri": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_validation_policy_uri,
                            },
                            "verify_claims": [{
                                "is_required": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_verify_claims_is_required,
                                "key": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_verify_claims_key,
                                "values": deployment_specification_request_policies_dynamic_authentication_authentication_servers_authentication_server_detail_verify_claims_values,
                            }],
                        },
                        "key": {
                            "name": deployment_specification_request_policies_dynamic_authentication_authentication_servers_key_name,
                            "expression": deployment_specification_request_policies_dynamic_authentication_authentication_servers_key_expression,
                            "is_default": deployment_specification_request_policies_dynamic_authentication_authentication_servers_key_is_default,
                            "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_key_type,
                            "values": deployment_specification_request_policies_dynamic_authentication_authentication_servers_key_values,
                        },
                    }],
                    "selection_source": {
                        "selector": deployment_specification_request_policies_dynamic_authentication_selection_source_selector,
                        "type": deployment_specification_request_policies_dynamic_authentication_selection_source_type,
                    },
                },
                "mutual_tls": {
                    "allowed_sans": deployment_specification_request_policies_mutual_tls_allowed_sans,
                    "is_verified_certificate_required": deployment_specification_request_policies_mutual_tls_is_verified_certificate_required,
                },
                "rate_limiting": {
                    "rate_in_requests_per_second": deployment_specification_request_policies_rate_limiting_rate_in_requests_per_second,
                    "rate_key": deployment_specification_request_policies_rate_limiting_rate_key,
                },
                "usage_plans": {
                    "token_locations": deployment_specification_request_policies_usage_plans_token_locations,
                },
            },
            "routes": [{
                "backend": {
                    "type": deployment_specification_routes_backend_type,
                    "allowed_post_logout_uris": deployment_specification_routes_backend_allowed_post_logout_uris,
                    "body": deployment_specification_routes_backend_body,
                    "connect_timeout_in_seconds": deployment_specification_routes_backend_connect_timeout_in_seconds,
                    "function_id": test_function["id"],
                    "headers": [{
                        "name": deployment_specification_routes_backend_headers_name,
                        "value": deployment_specification_routes_backend_headers_value,
                    }],
                    "is_ssl_verify_disabled": deployment_specification_routes_backend_is_ssl_verify_disabled,
                    "post_logout_state": deployment_specification_routes_backend_post_logout_state,
                    "read_timeout_in_seconds": deployment_specification_routes_backend_read_timeout_in_seconds,
                    "routing_backends": [{
                        "backend": {
                            "type": deployment_specification_routes_backend_routing_backends_backend_type,
                            "body": deployment_specification_routes_backend_routing_backends_backend_body,
                            "connect_timeout_in_seconds": deployment_specification_routes_backend_routing_backends_backend_connect_timeout_in_seconds,
                            "function_id": test_function["id"],
                            "headers": [{
                                "name": deployment_specification_routes_backend_routing_backends_backend_headers_name,
                                "value": deployment_specification_routes_backend_routing_backends_backend_headers_value,
                            }],
                            "is_ssl_verify_disabled": deployment_specification_routes_backend_routing_backends_backend_is_ssl_verify_disabled,
                            "read_timeout_in_seconds": deployment_specification_routes_backend_routing_backends_backend_read_timeout_in_seconds,
                            "send_timeout_in_seconds": deployment_specification_routes_backend_routing_backends_backend_send_timeout_in_seconds,
                            "status": deployment_specification_routes_backend_routing_backends_backend_status,
                            "url": deployment_specification_routes_backend_routing_backends_backend_url,
                        },
                        "key": {
                            "name": deployment_specification_routes_backend_routing_backends_key_name,
                            "type": deployment_specification_request_policies_dynamic_authentication_authentication_servers_key_type,
                            "expression": deployment_specification_request_policies_dynamic_authentication_authentication_servers_key_expression,
                            "is_default": deployment_specification_request_policies_dynamic_authentication_authentication_servers_key_is_default,
                            "values": deployment_specification_request_policies_dynamic_authentication_authentication_servers_key_values,
                        },
                    }],
                    "selection_source": {
                        "selector": deployment_specification_routes_backend_selection_source_selector,
                        "type": deployment_specification_routes_backend_selection_source_type,
                    },
                    "send_timeout_in_seconds": deployment_specification_routes_backend_send_timeout_in_seconds,
                    "status": deployment_specification_routes_backend_status,
                    "url": deployment_specification_routes_backend_url,
                },
                "path": deployment_specification_routes_path,
                "logging_policies": {
                    "access_log": {
                        "is_enabled": deployment_specification_routes_logging_policies_access_log_is_enabled,
                    },
                    "execution_log": {
                        "is_enabled": deployment_specification_routes_logging_policies_execution_log_is_enabled,
                        "log_level": deployment_specification_routes_logging_policies_execution_log_log_level,
                    },
                },
                "methods": deployment_specification_routes_methods,
                "request_policies": {
                    "authorization": {
                        "allowed_scopes": deployment_specification_routes_request_policies_authorization_allowed_scope,
                        "type": deployment_specification_routes_request_policies_authorization_type,
                    },
                    "body_validation": {
                        "contents": [{
                            "media_type": deployment_specification_routes_request_policies_body_validation_content_media_type,
                            "validation_type": deployment_specification_routes_request_policies_body_validation_content_validation_type,
                        }],
                        "required": deployment_specification_routes_request_policies_body_validation_required,
                        "validation_mode": deployment_specification_routes_request_policies_body_validation_validation_mode,
                    },
                    "cors": {
                        "allowed_origins": deployment_specification_routes_request_policies_cors_allowed_origins,
                        "allowed_headers": deployment_specification_routes_request_policies_cors_allowed_headers,
                        "allowed_methods": deployment_specification_routes_request_policies_cors_allowed_methods,
                        "exposed_headers": deployment_specification_routes_request_policies_cors_exposed_headers,
                        "is_allow_credentials_enabled": deployment_specification_routes_request_policies_cors_is_allow_credentials_enabled,
                        "max_age_in_seconds": deployment_specification_routes_request_policies_cors_max_age_in_seconds,
                    },
                    "header_transformations": {
                        "filter_headers": {
                            "items": [{
                                "name": deployment_specification_routes_request_policies_header_transformations_filter_headers_items_name,
                            }],
                            "type": deployment_specification_routes_request_policies_header_transformations_filter_headers_type,
                        },
                        "rename_headers": {
                            "items": [{
                                "from_": deployment_specification_routes_request_policies_header_transformations_rename_headers_items_from,
                                "to": deployment_specification_routes_request_policies_header_transformations_rename_headers_items_to,
                            }],
                        },
                        "set_headers": {
                            "items": [{
                                "name": deployment_specification_routes_request_policies_header_transformations_set_headers_items_name,
                                "values": deployment_specification_routes_request_policies_header_transformations_set_headers_items_values,
                                "if_exists": deployment_specification_routes_request_policies_header_transformations_set_headers_items_if_exists,
                            }],
                        },
                    },
                    "header_validations": {
                        "headers": [{
                            "name": deployment_specification_routes_request_policies_header_validations_headers_name,
                            "required": deployment_specification_routes_request_policies_header_validations_headers_required,
                        }],
                        "validation_mode": deployment_specification_routes_request_policies_header_validations_validation_mode,
                    },
                    "query_parameter_transformations": {
                        "filter_query_parameters": {
                            "items": [{
                                "name": deployment_specification_routes_request_policies_query_parameter_transformations_filter_query_parameters_items_name,
                            }],
                            "type": deployment_specification_routes_request_policies_query_parameter_transformations_filter_query_parameters_type,
                        },
                        "rename_query_parameters": {
                            "items": [{
                                "from_": deployment_specification_routes_request_policies_query_parameter_transformations_rename_query_parameters_items_from,
                                "to": deployment_specification_routes_request_policies_query_parameter_transformations_rename_query_parameters_items_to,
                            }],
                        },
                        "set_query_parameters": {
                            "items": [{
                                "name": deployment_specification_routes_request_policies_query_parameter_transformations_set_query_parameters_items_name,
                                "values": deployment_specification_routes_request_policies_query_parameter_transformations_set_query_parameters_items_values,
                                "if_exists": deployment_specification_routes_request_policies_query_parameter_transformations_set_query_parameters_items_if_exists,
                            }],
                        },
                    },
                    "query_parameter_validations": {
                        "parameters": [{
                            "name": deployment_specification_routes_request_policies_query_parameter_validations_parameters_name,
                            "required": deployment_specification_routes_request_policies_query_parameter_validations_parameters_required,
                        }],
                        "validation_mode": deployment_specification_routes_request_policies_query_parameter_validations_validation_mode,
                    },
                    "response_cache_lookup": {
                        "type": deployment_specification_routes_request_policies_response_cache_lookup_type,
                        "cache_key_additions": deployment_specification_routes_request_policies_response_cache_lookup_cache_key_additions,
                        "is_enabled": deployment_specification_routes_request_policies_response_cache_lookup_is_enabled,
                        "is_private_caching_enabled": deployment_specification_routes_request_policies_response_cache_lookup_is_private_caching_enabled,
                    },
                },
                "response_policies": {
                    "header_transformations": {
                        "filter_headers": {
                            "items": [{
                                "name": deployment_specification_routes_response_policies_header_transformations_filter_headers_items_name,
                            }],
                            "type": deployment_specification_routes_response_policies_header_transformations_filter_headers_type,
                        },
                        "rename_headers": {
                            "items": [{
                                "from_": deployment_specification_routes_response_policies_header_transformations_rename_headers_items_from,
                                "to": deployment_specification_routes_response_policies_header_transformations_rename_headers_items_to,
                            }],
                        },
                        "set_headers": {
                            "items": [{
                                "name": deployment_specification_routes_response_policies_header_transformations_set_headers_items_name,
                                "values": deployment_specification_routes_response_policies_header_transformations_set_headers_items_values,
                                "if_exists": deployment_specification_routes_response_policies_header_transformations_set_headers_items_if_exists,
                            }],
                        },
                    },
                    "response_cache_store": {
                        "time_to_live_in_seconds": deployment_specification_routes_response_policies_response_cache_store_time_to_live_in_seconds,
                        "type": deployment_specification_routes_response_policies_response_cache_store_type,
                    },
                },
            }],
        },
        defined_tags={
            "Operations.CostCenter": "42",
        },
        display_name=deployment_display_name,
        freeform_tags={
            "Department": "Finance",
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-oci/sdk/v2/go/oci/ApiGateway"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := ApiGateway.NewDeployment(ctx, "test_deployment", &ApiGateway.DeploymentArgs{
    			CompartmentId: pulumi.Any(compartmentId),
    			GatewayId:     pulumi.Any(testGateway.Id),
    			PathPrefix:    pulumi.Any(deploymentPathPrefix),
    			Specification: &apigateway.DeploymentSpecificationArgs{
    				LoggingPolicies: &apigateway.DeploymentSpecificationLoggingPoliciesArgs{
    					AccessLog: &apigateway.DeploymentSpecificationLoggingPoliciesAccessLogArgs{
    						IsEnabled: pulumi.Any(deploymentSpecificationLoggingPoliciesAccessLogIsEnabled),
    					},
    					ExecutionLog: &apigateway.DeploymentSpecificationLoggingPoliciesExecutionLogArgs{
    						IsEnabled: pulumi.Any(deploymentSpecificationLoggingPoliciesExecutionLogIsEnabled),
    						LogLevel:  pulumi.Any(deploymentSpecificationLoggingPoliciesExecutionLogLogLevel),
    					},
    				},
    				RequestPolicies: &apigateway.DeploymentSpecificationRequestPoliciesArgs{
    					Authentication: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationArgs{
    						Type:                     pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationType),
    						Audiences:                pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationAudiences),
    						CacheKeys:                pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationCacheKey),
    						FunctionId:               pulumi.Any(testFunction.Id),
    						IsAnonymousAccessAllowed: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationIsAnonymousAccessAllowed),
    						Issuers:                  pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationIssuers),
    						MaxClockSkewInSeconds:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationMaxClockSkewInSeconds),
    						Parameters:               pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationParameters),
    						PublicKeys: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysArgs{
    							Type:                pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysType),
    							IsSslVerifyDisabled: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysIsSslVerifyDisabled),
    							Keys: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeyArray{
    								&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeyArgs{
    									Format: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysFormat),
    									Alg:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysAlg),
    									E:      pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysE),
    									Key:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKey),
    									KeyOps: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKeyOps),
    									Kid:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKid),
    									Kty:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKty),
    									N:      pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysN),
    									Use:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysUse),
    								},
    							},
    							MaxCacheDurationInHours: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysMaxCacheDurationInHours),
    							Uri:                     pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysUri),
    						},
    						TokenAuthScheme: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationTokenAuthScheme),
    						TokenHeader:     pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationTokenHeader),
    						TokenQueryParam: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationTokenQueryParam),
    						ValidationFailurePolicy: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyArgs{
    							Type: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyType),
    							ClientDetails: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsArgs{
    								Type:                      pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsType),
    								ClientId:                  pulumi.Any(testClient.Id),
    								ClientSecretId:            pulumi.Any(testSecret.Id),
    								ClientSecretVersionNumber: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsClientSecretVersionNumber),
    							},
    							FallbackRedirectPath:     pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyFallbackRedirectPath),
    							LogoutPath:               pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyLogoutPath),
    							MaxExpiryDurationInHours: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyMaxExpiryDurationInHours),
    							ResponseCode:             pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseCode),
    							ResponseHeaderTransformations: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsArgs{
    								FilterHeaders: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs{
    									Items: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArray{
    										&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs{
    											Name: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName),
    										},
    									},
    									Type: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType),
    								},
    								RenameHeaders: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs{
    									Items: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArray{
    										&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs{
    											From: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom),
    											To:   pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo),
    										},
    									},
    								},
    								SetHeaders: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs{
    									Items: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArray{
    										&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs{
    											IfExists: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists),
    											Name:     pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName),
    											Values:   pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues),
    										},
    									},
    								},
    							},
    							ResponseMessage: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseMessage),
    							ResponseType:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseType),
    							Scopes:          pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyScopes),
    							SourceUriDetails: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsArgs{
    								Type: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsType),
    								Uri:  pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsUri),
    							},
    							UseCookiesForIntermediateSteps: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForIntermediateSteps),
    							UseCookiesForSession:           pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForSession),
    							UsePkce:                        pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUsePkce),
    						},
    						ValidationPolicy: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyArgs{
    							Type: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyType),
    							AdditionalValidationPolicy: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyArgs{
    								Audiences: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyAudiences),
    								Issuers:   pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyIssuers),
    								VerifyClaims: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimArray{
    									&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimArgs{
    										IsRequired: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired),
    										Key:        pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsKey),
    										Values:     pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsValues),
    									},
    								},
    							},
    							ClientDetails: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsArgs{
    								Type:                      pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsType),
    								ClientId:                  pulumi.Any(testClient.Id),
    								ClientSecretId:            pulumi.Any(testSecret.Id),
    								ClientSecretVersionNumber: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsClientSecretVersionNumber),
    							},
    							IsSslVerifyDisabled: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyIsSslVerifyDisabled),
    							Keys: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeyArray{
    								&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeyArgs{
    									Format: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysFormat),
    									Alg:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysAlg),
    									E:      pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysE),
    									Key:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKey),
    									KeyOps: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKeyOps),
    									Kid:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKid),
    									Kty:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKty),
    									N:      pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysN),
    									Use:    pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysUse),
    								},
    							},
    							MaxCacheDurationInHours: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyMaxCacheDurationInHours),
    							SourceUriDetails: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsArgs{
    								Type: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsType),
    								Uri:  pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsUri),
    							},
    							Uri: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyUri),
    						},
    						VerifyClaims: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationVerifyClaimArray{
    							&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationVerifyClaimArgs{
    								IsRequired: pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsIsRequired),
    								Key:        pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsKey),
    								Values:     pulumi.Any(deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsValues),
    							},
    						},
    					},
    					Cors: &apigateway.DeploymentSpecificationRequestPoliciesCorsArgs{
    						AllowedOrigins:            pulumi.Any(deploymentSpecificationRequestPoliciesCorsAllowedOrigins),
    						AllowedHeaders:            pulumi.Any(deploymentSpecificationRequestPoliciesCorsAllowedHeaders),
    						AllowedMethods:            pulumi.Any(deploymentSpecificationRequestPoliciesCorsAllowedMethods),
    						ExposedHeaders:            pulumi.Any(deploymentSpecificationRequestPoliciesCorsExposedHeaders),
    						IsAllowCredentialsEnabled: pulumi.Any(deploymentSpecificationRequestPoliciesCorsIsAllowCredentialsEnabled),
    						MaxAgeInSeconds:           pulumi.Any(deploymentSpecificationRequestPoliciesCorsMaxAgeInSeconds),
    					},
    					DynamicAuthentication: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationArgs{
    						AuthenticationServers: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerArray{
    							&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerArgs{
    								AuthenticationServerDetail: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailArgs{
    									Type:                     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailType),
    									Audiences:                pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailAudiences),
    									FunctionId:               pulumi.Any(testFunction.Id),
    									IsAnonymousAccessAllowed: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIsAnonymousAccessAllowed),
    									Issuers:                  pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIssuers),
    									MaxClockSkewInSeconds:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailMaxClockSkewInSeconds),
    									PublicKeys: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysArgs{
    										Type:                pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysType),
    										IsSslVerifyDisabled: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysIsSslVerifyDisabled),
    										Keys: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysKeyArray{
    											&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysKeyArgs{
    												Format: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysFormat),
    												Alg:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysAlg),
    												E:      pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysE),
    												Key:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKey),
    												KeyOps: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKeyOps),
    												Kid:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKid),
    												Kty:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKty),
    												N:      pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysN),
    												Use:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysUse),
    											},
    										},
    										MaxCacheDurationInHours: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysMaxCacheDurationInHours),
    										Uri:                     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysUri),
    									},
    									TokenAuthScheme: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenAuthScheme),
    									TokenHeader:     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenHeader),
    									TokenQueryParam: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenQueryParam),
    									ValidationFailurePolicy: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyArgs{
    										Type: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyType),
    										ClientDetails: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyClientDetailsArgs{
    											Type:                      pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsType),
    											ClientId:                  pulumi.Any(testClient.Id),
    											ClientSecretId:            pulumi.Any(testSecret.Id),
    											ClientSecretVersionNumber: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsClientSecretVersionNumber),
    										},
    										FallbackRedirectPath:     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyFallbackRedirectPath),
    										LogoutPath:               pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyLogoutPath),
    										MaxExpiryDurationInHours: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyMaxExpiryDurationInHours),
    										ResponseCode:             pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseCode),
    										ResponseHeaderTransformations: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsArgs{
    											FilterHeaders: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs{
    												Items: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArray{
    													&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs{
    														Name: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName),
    													},
    												},
    												Type: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType),
    											},
    											RenameHeaders: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs{
    												Items: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArray{
    													&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs{
    														From: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom),
    														To:   pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo),
    													},
    												},
    											},
    											SetHeaders: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs{
    												Items: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArray{
    													&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs{
    														IfExists: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists),
    														Name:     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName),
    														Values:   pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues),
    													},
    												},
    											},
    										},
    										ResponseMessage: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseMessage),
    										ResponseType:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseType),
    										Scopes:          pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyScopes),
    										SourceUriDetails: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicySourceUriDetailsArgs{
    											Type: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsType),
    											Uri:  pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsUri),
    										},
    										UseCookiesForIntermediateSteps: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForIntermediateSteps),
    										UseCookiesForSession:           pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForSession),
    										UsePkce:                        pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUsePkce),
    									},
    									ValidationPolicy: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyArgs{
    										Type: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyType),
    										AdditionalValidationPolicy: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyArgs{
    											Audiences: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyAudiences),
    											Issuers:   pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyIssuers),
    											VerifyClaims: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimArray{
    												&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimArgs{
    													IsRequired: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired),
    													Key:        pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsKey),
    													Values:     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsValues),
    												},
    											},
    										},
    										ClientDetails: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyClientDetailsArgs{
    											Type:                      pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsType),
    											ClientId:                  pulumi.Any(testClient.Id),
    											ClientSecretId:            pulumi.Any(testSecret.Id),
    											ClientSecretVersionNumber: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsClientSecretVersionNumber),
    										},
    										IsSslVerifyDisabled: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyIsSslVerifyDisabled),
    										Keys: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyKeyArray{
    											&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyKeyArgs{
    												Format: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysFormat),
    												Alg:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysAlg),
    												E:      pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysE),
    												Key:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKey),
    												KeyOps: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKeyOps),
    												Kid:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKid),
    												Kty:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKty),
    												N:      pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysN),
    												Use:    pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysUse),
    											},
    										},
    										MaxCacheDurationInHours: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyMaxCacheDurationInHours),
    										SourceUriDetails: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicySourceUriDetailsArgs{
    											Type: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsType),
    											Uri:  pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsUri),
    										},
    										Uri: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyUri),
    									},
    									VerifyClaims: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailVerifyClaimArray{
    										&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailVerifyClaimArgs{
    											IsRequired: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsIsRequired),
    											Key:        pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsKey),
    											Values:     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsValues),
    										},
    									},
    								},
    								Key: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerKeyArgs{
    									Name:       pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyName),
    									Expression: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression),
    									IsDefault:  pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault),
    									Type:       pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType),
    									Values:     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues),
    								},
    							},
    						},
    						SelectionSource: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceArgs{
    							Selector: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceSelector),
    							Type:     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceType),
    						},
    					},
    					MutualTls: &apigateway.DeploymentSpecificationRequestPoliciesMutualTlsArgs{
    						AllowedSans:                   pulumi.Any(deploymentSpecificationRequestPoliciesMutualTlsAllowedSans),
    						IsVerifiedCertificateRequired: pulumi.Any(deploymentSpecificationRequestPoliciesMutualTlsIsVerifiedCertificateRequired),
    					},
    					RateLimiting: &apigateway.DeploymentSpecificationRequestPoliciesRateLimitingArgs{
    						RateInRequestsPerSecond: pulumi.Any(deploymentSpecificationRequestPoliciesRateLimitingRateInRequestsPerSecond),
    						RateKey:                 pulumi.Any(deploymentSpecificationRequestPoliciesRateLimitingRateKey),
    					},
    					UsagePlans: &apigateway.DeploymentSpecificationRequestPoliciesUsagePlansArgs{
    						TokenLocations: pulumi.Any(deploymentSpecificationRequestPoliciesUsagePlansTokenLocations),
    					},
    				},
    				Routes: apigateway.DeploymentSpecificationRouteArray{
    					&apigateway.DeploymentSpecificationRouteArgs{
    						Backend: &apigateway.DeploymentSpecificationRouteBackendArgs{
    							Type:                    pulumi.Any(deploymentSpecificationRoutesBackendType),
    							AllowedPostLogoutUris:   pulumi.Any(deploymentSpecificationRoutesBackendAllowedPostLogoutUris),
    							Body:                    pulumi.Any(deploymentSpecificationRoutesBackendBody),
    							ConnectTimeoutInSeconds: pulumi.Any(deploymentSpecificationRoutesBackendConnectTimeoutInSeconds),
    							FunctionId:              pulumi.Any(testFunction.Id),
    							Headers: apigateway.DeploymentSpecificationRouteBackendHeaderArray{
    								&apigateway.DeploymentSpecificationRouteBackendHeaderArgs{
    									Name:  pulumi.Any(deploymentSpecificationRoutesBackendHeadersName),
    									Value: pulumi.Any(deploymentSpecificationRoutesBackendHeadersValue),
    								},
    							},
    							IsSslVerifyDisabled:  pulumi.Any(deploymentSpecificationRoutesBackendIsSslVerifyDisabled),
    							PostLogoutState:      pulumi.Any(deploymentSpecificationRoutesBackendPostLogoutState),
    							ReadTimeoutInSeconds: pulumi.Any(deploymentSpecificationRoutesBackendReadTimeoutInSeconds),
    							RoutingBackends: apigateway.DeploymentSpecificationRouteBackendRoutingBackendArray{
    								&apigateway.DeploymentSpecificationRouteBackendRoutingBackendArgs{
    									Backend: &apigateway.DeploymentSpecificationRouteBackendRoutingBackendBackendArgs{
    										Type:                    pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendType),
    										Body:                    pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendBody),
    										ConnectTimeoutInSeconds: pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendConnectTimeoutInSeconds),
    										FunctionId:              pulumi.Any(testFunction.Id),
    										Headers: apigateway.DeploymentSpecificationRouteBackendRoutingBackendBackendHeaderArray{
    											&apigateway.DeploymentSpecificationRouteBackendRoutingBackendBackendHeaderArgs{
    												Name:  pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersName),
    												Value: pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersValue),
    											},
    										},
    										IsSslVerifyDisabled:  pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendIsSslVerifyDisabled),
    										ReadTimeoutInSeconds: pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendReadTimeoutInSeconds),
    										SendTimeoutInSeconds: pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendSendTimeoutInSeconds),
    										Status:               pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendStatus),
    										Url:                  pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsBackendUrl),
    									},
    									Key: &apigateway.DeploymentSpecificationRouteBackendRoutingBackendKeyArgs{
    										Name:       pulumi.Any(deploymentSpecificationRoutesBackendRoutingBackendsKeyName),
    										Type:       pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType),
    										Expression: pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression),
    										IsDefault:  pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault),
    										Values:     pulumi.Any(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues),
    									},
    								},
    							},
    							SelectionSource: &apigateway.DeploymentSpecificationRouteBackendSelectionSourceArgs{
    								Selector: pulumi.Any(deploymentSpecificationRoutesBackendSelectionSourceSelector),
    								Type:     pulumi.Any(deploymentSpecificationRoutesBackendSelectionSourceType),
    							},
    							SendTimeoutInSeconds: pulumi.Any(deploymentSpecificationRoutesBackendSendTimeoutInSeconds),
    							Status:               pulumi.Any(deploymentSpecificationRoutesBackendStatus),
    							Url:                  pulumi.Any(deploymentSpecificationRoutesBackendUrl),
    						},
    						Path: pulumi.Any(deploymentSpecificationRoutesPath),
    						LoggingPolicies: &apigateway.DeploymentSpecificationRouteLoggingPoliciesArgs{
    							AccessLog: &apigateway.DeploymentSpecificationRouteLoggingPoliciesAccessLogArgs{
    								IsEnabled: pulumi.Any(deploymentSpecificationRoutesLoggingPoliciesAccessLogIsEnabled),
    							},
    							ExecutionLog: &apigateway.DeploymentSpecificationRouteLoggingPoliciesExecutionLogArgs{
    								IsEnabled: pulumi.Any(deploymentSpecificationRoutesLoggingPoliciesExecutionLogIsEnabled),
    								LogLevel:  pulumi.Any(deploymentSpecificationRoutesLoggingPoliciesExecutionLogLogLevel),
    							},
    						},
    						Methods: pulumi.Any(deploymentSpecificationRoutesMethods),
    						RequestPolicies: &apigateway.DeploymentSpecificationRouteRequestPoliciesArgs{
    							Authorization: &apigateway.DeploymentSpecificationRouteRequestPoliciesAuthorizationArgs{
    								AllowedScopes: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesAuthorizationAllowedScope),
    								Type:          pulumi.Any(deploymentSpecificationRoutesRequestPoliciesAuthorizationType),
    							},
    							BodyValidation: &apigateway.DeploymentSpecificationRouteRequestPoliciesBodyValidationArgs{
    								Contents: apigateway.DeploymentSpecificationRouteRequestPoliciesBodyValidationContentArray{
    									&apigateway.DeploymentSpecificationRouteRequestPoliciesBodyValidationContentArgs{
    										MediaType:      pulumi.Any(deploymentSpecificationRoutesRequestPoliciesBodyValidationContentMediaType),
    										ValidationType: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesBodyValidationContentValidationType),
    									},
    								},
    								Required:       pulumi.Any(deploymentSpecificationRoutesRequestPoliciesBodyValidationRequired),
    								ValidationMode: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesBodyValidationValidationMode),
    							},
    							Cors: &apigateway.DeploymentSpecificationRouteRequestPoliciesCorsArgs{
    								AllowedOrigins:            pulumi.Any(deploymentSpecificationRoutesRequestPoliciesCorsAllowedOrigins),
    								AllowedHeaders:            pulumi.Any(deploymentSpecificationRoutesRequestPoliciesCorsAllowedHeaders),
    								AllowedMethods:            pulumi.Any(deploymentSpecificationRoutesRequestPoliciesCorsAllowedMethods),
    								ExposedHeaders:            pulumi.Any(deploymentSpecificationRoutesRequestPoliciesCorsExposedHeaders),
    								IsAllowCredentialsEnabled: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesCorsIsAllowCredentialsEnabled),
    								MaxAgeInSeconds:           pulumi.Any(deploymentSpecificationRoutesRequestPoliciesCorsMaxAgeInSeconds),
    							},
    							HeaderTransformations: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsArgs{
    								FilterHeaders: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersArgs{
    									Items: apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersItemArray{
    										&apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersItemArgs{
    											Name: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersItemsName),
    										},
    									},
    									Type: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersType),
    								},
    								RenameHeaders: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersArgs{
    									Items: apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersItemArray{
    										&apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersItemArgs{
    											From: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsFrom),
    											To:   pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsTo),
    										},
    									},
    								},
    								SetHeaders: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersArgs{
    									Items: apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersItemArray{
    										&apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersItemArgs{
    											Name:     pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsName),
    											Values:   pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsValues),
    											IfExists: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsIfExists),
    										},
    									},
    								},
    							},
    							HeaderValidations: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsArgs{
    								Headers: apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsHeaderArray{
    									&apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsHeaderArgs{
    										Name:     pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersName),
    										Required: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersRequired),
    									},
    								},
    								ValidationMode: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesHeaderValidationsValidationMode),
    							},
    							QueryParameterTransformations: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsArgs{
    								FilterQueryParameters: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersArgs{
    									Items: apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemArray{
    										&apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemArgs{
    											Name: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemsName),
    										},
    									},
    									Type: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersType),
    								},
    								RenameQueryParameters: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersArgs{
    									Items: apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemArray{
    										&apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemArgs{
    											From: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsFrom),
    											To:   pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsTo),
    										},
    									},
    								},
    								SetQueryParameters: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersArgs{
    									Items: apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersItemArray{
    										&apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersItemArgs{
    											Name:     pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsName),
    											Values:   pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsValues),
    											IfExists: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsIfExists),
    										},
    									},
    								},
    							},
    							QueryParameterValidations: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsArgs{
    								Parameters: apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsParameterArray{
    									&apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsParameterArgs{
    										Name:     pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersName),
    										Required: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersRequired),
    									},
    								},
    								ValidationMode: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsValidationMode),
    							},
    							ResponseCacheLookup: &apigateway.DeploymentSpecificationRouteRequestPoliciesResponseCacheLookupArgs{
    								Type:                    pulumi.Any(deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupType),
    								CacheKeyAdditions:       pulumi.Any(deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupCacheKeyAdditions),
    								IsEnabled:               pulumi.Any(deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsEnabled),
    								IsPrivateCachingEnabled: pulumi.Any(deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsPrivateCachingEnabled),
    							},
    						},
    						ResponsePolicies: &apigateway.DeploymentSpecificationRouteResponsePoliciesArgs{
    							HeaderTransformations: &apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsArgs{
    								FilterHeaders: &apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersArgs{
    									Items: apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersItemArray{
    										&apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersItemArgs{
    											Name: pulumi.Any(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersItemsName),
    										},
    									},
    									Type: pulumi.Any(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersType),
    								},
    								RenameHeaders: &apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersArgs{
    									Items: apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersItemArray{
    										&apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersItemArgs{
    											From: pulumi.Any(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsFrom),
    											To:   pulumi.Any(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsTo),
    										},
    									},
    								},
    								SetHeaders: &apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersArgs{
    									Items: apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersItemArray{
    										&apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersItemArgs{
    											Name:     pulumi.Any(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsName),
    											Values:   pulumi.Any(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsValues),
    											IfExists: pulumi.Any(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsIfExists),
    										},
    									},
    								},
    							},
    							ResponseCacheStore: &apigateway.DeploymentSpecificationRouteResponsePoliciesResponseCacheStoreArgs{
    								TimeToLiveInSeconds: pulumi.Any(deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreTimeToLiveInSeconds),
    								Type:                pulumi.Any(deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreType),
    							},
    						},
    					},
    				},
    			},
    			DefinedTags: pulumi.StringMap{
    				"Operations.CostCenter": pulumi.String("42"),
    			},
    			DisplayName: pulumi.Any(deploymentDisplayName),
    			FreeformTags: pulumi.StringMap{
    				"Department": pulumi.String("Finance"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Oci = Pulumi.Oci;
    
    return await Deployment.RunAsync(() => 
    {
        var testDeployment = new Oci.ApiGateway.Deployment("test_deployment", new()
        {
            CompartmentId = compartmentId,
            GatewayId = testGateway.Id,
            PathPrefix = deploymentPathPrefix,
            Specification = new Oci.ApiGateway.Inputs.DeploymentSpecificationArgs
            {
                LoggingPolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationLoggingPoliciesArgs
                {
                    AccessLog = new Oci.ApiGateway.Inputs.DeploymentSpecificationLoggingPoliciesAccessLogArgs
                    {
                        IsEnabled = deploymentSpecificationLoggingPoliciesAccessLogIsEnabled,
                    },
                    ExecutionLog = new Oci.ApiGateway.Inputs.DeploymentSpecificationLoggingPoliciesExecutionLogArgs
                    {
                        IsEnabled = deploymentSpecificationLoggingPoliciesExecutionLogIsEnabled,
                        LogLevel = deploymentSpecificationLoggingPoliciesExecutionLogLogLevel,
                    },
                },
                RequestPolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesArgs
                {
                    Authentication = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationArgs
                    {
                        Type = deploymentSpecificationRequestPoliciesAuthenticationType,
                        Audiences = deploymentSpecificationRequestPoliciesAuthenticationAudiences,
                        CacheKeys = deploymentSpecificationRequestPoliciesAuthenticationCacheKey,
                        FunctionId = testFunction.Id,
                        IsAnonymousAccessAllowed = deploymentSpecificationRequestPoliciesAuthenticationIsAnonymousAccessAllowed,
                        Issuers = deploymentSpecificationRequestPoliciesAuthenticationIssuers,
                        MaxClockSkewInSeconds = deploymentSpecificationRequestPoliciesAuthenticationMaxClockSkewInSeconds,
                        Parameters = deploymentSpecificationRequestPoliciesAuthenticationParameters,
                        PublicKeys = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysArgs
                        {
                            Type = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysType,
                            IsSslVerifyDisabled = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysIsSslVerifyDisabled,
                            Keys = new[]
                            {
                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeyArgs
                                {
                                    Format = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysFormat,
                                    Alg = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysAlg,
                                    E = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysE,
                                    Key = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKey,
                                    KeyOps = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKeyOps,
                                    Kid = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKid,
                                    Kty = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKty,
                                    N = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysN,
                                    Use = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysUse,
                                },
                            },
                            MaxCacheDurationInHours = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysMaxCacheDurationInHours,
                            Uri = deploymentSpecificationRequestPoliciesAuthenticationPublicKeysUri,
                        },
                        TokenAuthScheme = deploymentSpecificationRequestPoliciesAuthenticationTokenAuthScheme,
                        TokenHeader = deploymentSpecificationRequestPoliciesAuthenticationTokenHeader,
                        TokenQueryParam = deploymentSpecificationRequestPoliciesAuthenticationTokenQueryParam,
                        ValidationFailurePolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyArgs
                        {
                            Type = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyType,
                            ClientDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsArgs
                            {
                                Type = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsType,
                                ClientId = testClient.Id,
                                ClientSecretId = testSecret.Id,
                                ClientSecretVersionNumber = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsClientSecretVersionNumber,
                            },
                            FallbackRedirectPath = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyFallbackRedirectPath,
                            LogoutPath = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyLogoutPath,
                            MaxExpiryDurationInHours = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyMaxExpiryDurationInHours,
                            ResponseCode = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseCode,
                            ResponseHeaderTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsArgs
                            {
                                FilterHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs
                                        {
                                            Name = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName,
                                        },
                                    },
                                    Type = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType,
                                },
                                RenameHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs
                                        {
                                            From = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom,
                                            To = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo,
                                        },
                                    },
                                },
                                SetHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs
                                        {
                                            IfExists = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists,
                                            Name = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName,
                                            Values = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues,
                                        },
                                    },
                                },
                            },
                            ResponseMessage = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseMessage,
                            ResponseType = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseType,
                            Scopes = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyScopes,
                            SourceUriDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsArgs
                            {
                                Type = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsType,
                                Uri = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsUri,
                            },
                            UseCookiesForIntermediateSteps = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForIntermediateSteps,
                            UseCookiesForSession = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForSession,
                            UsePkce = deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUsePkce,
                        },
                        ValidationPolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyArgs
                        {
                            Type = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyType,
                            AdditionalValidationPolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyArgs
                            {
                                Audiences = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyAudiences,
                                Issuers = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyIssuers,
                                VerifyClaims = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimArgs
                                    {
                                        IsRequired = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired,
                                        Key = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsKey,
                                        Values = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsValues,
                                    },
                                },
                            },
                            ClientDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsArgs
                            {
                                Type = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsType,
                                ClientId = testClient.Id,
                                ClientSecretId = testSecret.Id,
                                ClientSecretVersionNumber = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsClientSecretVersionNumber,
                            },
                            IsSslVerifyDisabled = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyIsSslVerifyDisabled,
                            Keys = new[]
                            {
                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeyArgs
                                {
                                    Format = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysFormat,
                                    Alg = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysAlg,
                                    E = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysE,
                                    Key = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKey,
                                    KeyOps = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKeyOps,
                                    Kid = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKid,
                                    Kty = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKty,
                                    N = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysN,
                                    Use = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysUse,
                                },
                            },
                            MaxCacheDurationInHours = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyMaxCacheDurationInHours,
                            SourceUriDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsArgs
                            {
                                Type = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsType,
                                Uri = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsUri,
                            },
                            Uri = deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyUri,
                        },
                        VerifyClaims = new[]
                        {
                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationVerifyClaimArgs
                            {
                                IsRequired = deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsIsRequired,
                                Key = deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsKey,
                                Values = deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsValues,
                            },
                        },
                    },
                    Cors = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesCorsArgs
                    {
                        AllowedOrigins = deploymentSpecificationRequestPoliciesCorsAllowedOrigins,
                        AllowedHeaders = deploymentSpecificationRequestPoliciesCorsAllowedHeaders,
                        AllowedMethods = deploymentSpecificationRequestPoliciesCorsAllowedMethods,
                        ExposedHeaders = deploymentSpecificationRequestPoliciesCorsExposedHeaders,
                        IsAllowCredentialsEnabled = deploymentSpecificationRequestPoliciesCorsIsAllowCredentialsEnabled,
                        MaxAgeInSeconds = deploymentSpecificationRequestPoliciesCorsMaxAgeInSeconds,
                    },
                    DynamicAuthentication = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationArgs
                    {
                        AuthenticationServers = new[]
                        {
                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerArgs
                            {
                                AuthenticationServerDetail = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailArgs
                                {
                                    Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailType,
                                    Audiences = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailAudiences,
                                    FunctionId = testFunction.Id,
                                    IsAnonymousAccessAllowed = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIsAnonymousAccessAllowed,
                                    Issuers = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIssuers,
                                    MaxClockSkewInSeconds = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailMaxClockSkewInSeconds,
                                    PublicKeys = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysArgs
                                    {
                                        Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysType,
                                        IsSslVerifyDisabled = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysIsSslVerifyDisabled,
                                        Keys = new[]
                                        {
                                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysKeyArgs
                                            {
                                                Format = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysFormat,
                                                Alg = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysAlg,
                                                E = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysE,
                                                Key = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKey,
                                                KeyOps = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKeyOps,
                                                Kid = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKid,
                                                Kty = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKty,
                                                N = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysN,
                                                Use = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysUse,
                                            },
                                        },
                                        MaxCacheDurationInHours = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysMaxCacheDurationInHours,
                                        Uri = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysUri,
                                    },
                                    TokenAuthScheme = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenAuthScheme,
                                    TokenHeader = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenHeader,
                                    TokenQueryParam = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenQueryParam,
                                    ValidationFailurePolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyArgs
                                    {
                                        Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyType,
                                        ClientDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyClientDetailsArgs
                                        {
                                            Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsType,
                                            ClientId = testClient.Id,
                                            ClientSecretId = testSecret.Id,
                                            ClientSecretVersionNumber = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsClientSecretVersionNumber,
                                        },
                                        FallbackRedirectPath = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyFallbackRedirectPath,
                                        LogoutPath = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyLogoutPath,
                                        MaxExpiryDurationInHours = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyMaxExpiryDurationInHours,
                                        ResponseCode = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseCode,
                                        ResponseHeaderTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsArgs
                                        {
                                            FilterHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs
                                            {
                                                Items = new[]
                                                {
                                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs
                                                    {
                                                        Name = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName,
                                                    },
                                                },
                                                Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType,
                                            },
                                            RenameHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs
                                            {
                                                Items = new[]
                                                {
                                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs
                                                    {
                                                        From = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom,
                                                        To = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo,
                                                    },
                                                },
                                            },
                                            SetHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs
                                            {
                                                Items = new[]
                                                {
                                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs
                                                    {
                                                        IfExists = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists,
                                                        Name = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName,
                                                        Values = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues,
                                                    },
                                                },
                                            },
                                        },
                                        ResponseMessage = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseMessage,
                                        ResponseType = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseType,
                                        Scopes = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyScopes,
                                        SourceUriDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicySourceUriDetailsArgs
                                        {
                                            Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsType,
                                            Uri = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsUri,
                                        },
                                        UseCookiesForIntermediateSteps = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForIntermediateSteps,
                                        UseCookiesForSession = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForSession,
                                        UsePkce = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUsePkce,
                                    },
                                    ValidationPolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyArgs
                                    {
                                        Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyType,
                                        AdditionalValidationPolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyArgs
                                        {
                                            Audiences = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyAudiences,
                                            Issuers = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyIssuers,
                                            VerifyClaims = new[]
                                            {
                                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimArgs
                                                {
                                                    IsRequired = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired,
                                                    Key = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsKey,
                                                    Values = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsValues,
                                                },
                                            },
                                        },
                                        ClientDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyClientDetailsArgs
                                        {
                                            Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsType,
                                            ClientId = testClient.Id,
                                            ClientSecretId = testSecret.Id,
                                            ClientSecretVersionNumber = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsClientSecretVersionNumber,
                                        },
                                        IsSslVerifyDisabled = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyIsSslVerifyDisabled,
                                        Keys = new[]
                                        {
                                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyKeyArgs
                                            {
                                                Format = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysFormat,
                                                Alg = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysAlg,
                                                E = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysE,
                                                Key = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKey,
                                                KeyOps = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKeyOps,
                                                Kid = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKid,
                                                Kty = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKty,
                                                N = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysN,
                                                Use = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysUse,
                                            },
                                        },
                                        MaxCacheDurationInHours = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyMaxCacheDurationInHours,
                                        SourceUriDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicySourceUriDetailsArgs
                                        {
                                            Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsType,
                                            Uri = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsUri,
                                        },
                                        Uri = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyUri,
                                    },
                                    VerifyClaims = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailVerifyClaimArgs
                                        {
                                            IsRequired = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsIsRequired,
                                            Key = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsKey,
                                            Values = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsValues,
                                        },
                                    },
                                },
                                Key = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerKeyArgs
                                {
                                    Name = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyName,
                                    Expression = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression,
                                    IsDefault = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault,
                                    Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType,
                                    Values = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues,
                                },
                            },
                        },
                        SelectionSource = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceArgs
                        {
                            Selector = deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceSelector,
                            Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceType,
                        },
                    },
                    MutualTls = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesMutualTlsArgs
                    {
                        AllowedSans = deploymentSpecificationRequestPoliciesMutualTlsAllowedSans,
                        IsVerifiedCertificateRequired = deploymentSpecificationRequestPoliciesMutualTlsIsVerifiedCertificateRequired,
                    },
                    RateLimiting = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesRateLimitingArgs
                    {
                        RateInRequestsPerSecond = deploymentSpecificationRequestPoliciesRateLimitingRateInRequestsPerSecond,
                        RateKey = deploymentSpecificationRequestPoliciesRateLimitingRateKey,
                    },
                    UsagePlans = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesUsagePlansArgs
                    {
                        TokenLocations = deploymentSpecificationRequestPoliciesUsagePlansTokenLocations,
                    },
                },
                Routes = new[]
                {
                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteArgs
                    {
                        Backend = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendArgs
                        {
                            Type = deploymentSpecificationRoutesBackendType,
                            AllowedPostLogoutUris = deploymentSpecificationRoutesBackendAllowedPostLogoutUris,
                            Body = deploymentSpecificationRoutesBackendBody,
                            ConnectTimeoutInSeconds = deploymentSpecificationRoutesBackendConnectTimeoutInSeconds,
                            FunctionId = testFunction.Id,
                            Headers = new[]
                            {
                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendHeaderArgs
                                {
                                    Name = deploymentSpecificationRoutesBackendHeadersName,
                                    Value = deploymentSpecificationRoutesBackendHeadersValue,
                                },
                            },
                            IsSslVerifyDisabled = deploymentSpecificationRoutesBackendIsSslVerifyDisabled,
                            PostLogoutState = deploymentSpecificationRoutesBackendPostLogoutState,
                            ReadTimeoutInSeconds = deploymentSpecificationRoutesBackendReadTimeoutInSeconds,
                            RoutingBackends = new[]
                            {
                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendRoutingBackendArgs
                                {
                                    Backend = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendRoutingBackendBackendArgs
                                    {
                                        Type = deploymentSpecificationRoutesBackendRoutingBackendsBackendType,
                                        Body = deploymentSpecificationRoutesBackendRoutingBackendsBackendBody,
                                        ConnectTimeoutInSeconds = deploymentSpecificationRoutesBackendRoutingBackendsBackendConnectTimeoutInSeconds,
                                        FunctionId = testFunction.Id,
                                        Headers = new[]
                                        {
                                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendRoutingBackendBackendHeaderArgs
                                            {
                                                Name = deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersName,
                                                Value = deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersValue,
                                            },
                                        },
                                        IsSslVerifyDisabled = deploymentSpecificationRoutesBackendRoutingBackendsBackendIsSslVerifyDisabled,
                                        ReadTimeoutInSeconds = deploymentSpecificationRoutesBackendRoutingBackendsBackendReadTimeoutInSeconds,
                                        SendTimeoutInSeconds = deploymentSpecificationRoutesBackendRoutingBackendsBackendSendTimeoutInSeconds,
                                        Status = deploymentSpecificationRoutesBackendRoutingBackendsBackendStatus,
                                        Url = deploymentSpecificationRoutesBackendRoutingBackendsBackendUrl,
                                    },
                                    Key = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendRoutingBackendKeyArgs
                                    {
                                        Name = deploymentSpecificationRoutesBackendRoutingBackendsKeyName,
                                        Type = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType,
                                        Expression = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression,
                                        IsDefault = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault,
                                        Values = deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues,
                                    },
                                },
                            },
                            SelectionSource = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendSelectionSourceArgs
                            {
                                Selector = deploymentSpecificationRoutesBackendSelectionSourceSelector,
                                Type = deploymentSpecificationRoutesBackendSelectionSourceType,
                            },
                            SendTimeoutInSeconds = deploymentSpecificationRoutesBackendSendTimeoutInSeconds,
                            Status = deploymentSpecificationRoutesBackendStatus,
                            Url = deploymentSpecificationRoutesBackendUrl,
                        },
                        Path = deploymentSpecificationRoutesPath,
                        LoggingPolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteLoggingPoliciesArgs
                        {
                            AccessLog = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteLoggingPoliciesAccessLogArgs
                            {
                                IsEnabled = deploymentSpecificationRoutesLoggingPoliciesAccessLogIsEnabled,
                            },
                            ExecutionLog = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteLoggingPoliciesExecutionLogArgs
                            {
                                IsEnabled = deploymentSpecificationRoutesLoggingPoliciesExecutionLogIsEnabled,
                                LogLevel = deploymentSpecificationRoutesLoggingPoliciesExecutionLogLogLevel,
                            },
                        },
                        Methods = deploymentSpecificationRoutesMethods,
                        RequestPolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesArgs
                        {
                            Authorization = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesAuthorizationArgs
                            {
                                AllowedScopes = deploymentSpecificationRoutesRequestPoliciesAuthorizationAllowedScope,
                                Type = deploymentSpecificationRoutesRequestPoliciesAuthorizationType,
                            },
                            BodyValidation = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesBodyValidationArgs
                            {
                                Contents = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesBodyValidationContentArgs
                                    {
                                        MediaType = deploymentSpecificationRoutesRequestPoliciesBodyValidationContentMediaType,
                                        ValidationType = deploymentSpecificationRoutesRequestPoliciesBodyValidationContentValidationType,
                                    },
                                },
                                Required = deploymentSpecificationRoutesRequestPoliciesBodyValidationRequired,
                                ValidationMode = deploymentSpecificationRoutesRequestPoliciesBodyValidationValidationMode,
                            },
                            Cors = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesCorsArgs
                            {
                                AllowedOrigins = deploymentSpecificationRoutesRequestPoliciesCorsAllowedOrigins,
                                AllowedHeaders = deploymentSpecificationRoutesRequestPoliciesCorsAllowedHeaders,
                                AllowedMethods = deploymentSpecificationRoutesRequestPoliciesCorsAllowedMethods,
                                ExposedHeaders = deploymentSpecificationRoutesRequestPoliciesCorsExposedHeaders,
                                IsAllowCredentialsEnabled = deploymentSpecificationRoutesRequestPoliciesCorsIsAllowCredentialsEnabled,
                                MaxAgeInSeconds = deploymentSpecificationRoutesRequestPoliciesCorsMaxAgeInSeconds,
                            },
                            HeaderTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsArgs
                            {
                                FilterHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersItemArgs
                                        {
                                            Name = deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersItemsName,
                                        },
                                    },
                                    Type = deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersType,
                                },
                                RenameHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersItemArgs
                                        {
                                            From = deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsFrom,
                                            To = deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsTo,
                                        },
                                    },
                                },
                                SetHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersItemArgs
                                        {
                                            Name = deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsName,
                                            Values = deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsValues,
                                            IfExists = deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsIfExists,
                                        },
                                    },
                                },
                            },
                            HeaderValidations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsArgs
                            {
                                Headers = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsHeaderArgs
                                    {
                                        Name = deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersName,
                                        Required = deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersRequired,
                                    },
                                },
                                ValidationMode = deploymentSpecificationRoutesRequestPoliciesHeaderValidationsValidationMode,
                            },
                            QueryParameterTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsArgs
                            {
                                FilterQueryParameters = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemArgs
                                        {
                                            Name = deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemsName,
                                        },
                                    },
                                    Type = deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersType,
                                },
                                RenameQueryParameters = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemArgs
                                        {
                                            From = deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsFrom,
                                            To = deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsTo,
                                        },
                                    },
                                },
                                SetQueryParameters = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersItemArgs
                                        {
                                            Name = deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsName,
                                            Values = deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsValues,
                                            IfExists = deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsIfExists,
                                        },
                                    },
                                },
                            },
                            QueryParameterValidations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsArgs
                            {
                                Parameters = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsParameterArgs
                                    {
                                        Name = deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersName,
                                        Required = deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersRequired,
                                    },
                                },
                                ValidationMode = deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsValidationMode,
                            },
                            ResponseCacheLookup = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesResponseCacheLookupArgs
                            {
                                Type = deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupType,
                                CacheKeyAdditions = deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupCacheKeyAdditions,
                                IsEnabled = deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsEnabled,
                                IsPrivateCachingEnabled = deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsPrivateCachingEnabled,
                            },
                        },
                        ResponsePolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesArgs
                        {
                            HeaderTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsArgs
                            {
                                FilterHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersItemArgs
                                        {
                                            Name = deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersItemsName,
                                        },
                                    },
                                    Type = deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersType,
                                },
                                RenameHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersItemArgs
                                        {
                                            From = deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsFrom,
                                            To = deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsTo,
                                        },
                                    },
                                },
                                SetHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersArgs
                                {
                                    Items = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersItemArgs
                                        {
                                            Name = deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsName,
                                            Values = deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsValues,
                                            IfExists = deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsIfExists,
                                        },
                                    },
                                },
                            },
                            ResponseCacheStore = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesResponseCacheStoreArgs
                            {
                                TimeToLiveInSeconds = deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreTimeToLiveInSeconds,
                                Type = deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreType,
                            },
                        },
                    },
                },
            },
            DefinedTags = 
            {
                { "Operations.CostCenter", "42" },
            },
            DisplayName = deploymentDisplayName,
            FreeformTags = 
            {
                { "Department", "Finance" },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.oci.ApiGateway.Deployment;
    import com.pulumi.oci.ApiGateway.DeploymentArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationLoggingPoliciesArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationLoggingPoliciesAccessLogArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationLoggingPoliciesExecutionLogArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesCorsArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesMutualTlsArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesRateLimitingArgs;
    import com.pulumi.oci.ApiGateway.inputs.DeploymentSpecificationRequestPoliciesUsagePlansArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var testDeployment = new Deployment("testDeployment", DeploymentArgs.builder()
                .compartmentId(compartmentId)
                .gatewayId(testGateway.id())
                .pathPrefix(deploymentPathPrefix)
                .specification(DeploymentSpecificationArgs.builder()
                    .loggingPolicies(DeploymentSpecificationLoggingPoliciesArgs.builder()
                        .accessLog(DeploymentSpecificationLoggingPoliciesAccessLogArgs.builder()
                            .isEnabled(deploymentSpecificationLoggingPoliciesAccessLogIsEnabled)
                            .build())
                        .executionLog(DeploymentSpecificationLoggingPoliciesExecutionLogArgs.builder()
                            .isEnabled(deploymentSpecificationLoggingPoliciesExecutionLogIsEnabled)
                            .logLevel(deploymentSpecificationLoggingPoliciesExecutionLogLogLevel)
                            .build())
                        .build())
                    .requestPolicies(DeploymentSpecificationRequestPoliciesArgs.builder()
                        .authentication(DeploymentSpecificationRequestPoliciesAuthenticationArgs.builder()
                            .type(deploymentSpecificationRequestPoliciesAuthenticationType)
                            .audiences(deploymentSpecificationRequestPoliciesAuthenticationAudiences)
                            .cacheKeys(deploymentSpecificationRequestPoliciesAuthenticationCacheKey)
                            .functionId(testFunction.id())
                            .isAnonymousAccessAllowed(deploymentSpecificationRequestPoliciesAuthenticationIsAnonymousAccessAllowed)
                            .issuers(deploymentSpecificationRequestPoliciesAuthenticationIssuers)
                            .maxClockSkewInSeconds(deploymentSpecificationRequestPoliciesAuthenticationMaxClockSkewInSeconds)
                            .parameters(deploymentSpecificationRequestPoliciesAuthenticationParameters)
                            .publicKeys(DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysArgs.builder()
                                .type(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysType)
                                .isSslVerifyDisabled(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysIsSslVerifyDisabled)
                                .keys(DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeyArgs.builder()
                                    .format(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysFormat)
                                    .alg(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysAlg)
                                    .e(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysE)
                                    .key(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKey)
                                    .keyOps(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKeyOps)
                                    .kid(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKid)
                                    .kty(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKty)
                                    .n(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysN)
                                    .use(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysUse)
                                    .build())
                                .maxCacheDurationInHours(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysMaxCacheDurationInHours)
                                .uri(deploymentSpecificationRequestPoliciesAuthenticationPublicKeysUri)
                                .build())
                            .tokenAuthScheme(deploymentSpecificationRequestPoliciesAuthenticationTokenAuthScheme)
                            .tokenHeader(deploymentSpecificationRequestPoliciesAuthenticationTokenHeader)
                            .tokenQueryParam(deploymentSpecificationRequestPoliciesAuthenticationTokenQueryParam)
                            .validationFailurePolicy(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyArgs.builder()
                                .type(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyType)
                                .clientDetails(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsArgs.builder()
                                    .type(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsType)
                                    .clientId(testClient.id())
                                    .clientSecretId(testSecret.id())
                                    .clientSecretVersionNumber(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsClientSecretVersionNumber)
                                    .build())
                                .fallbackRedirectPath(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyFallbackRedirectPath)
                                .logoutPath(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyLogoutPath)
                                .maxExpiryDurationInHours(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyMaxExpiryDurationInHours)
                                .responseCode(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseCode)
                                .responseHeaderTransformations(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsArgs.builder()
                                    .filterHeaders(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs.builder()
                                        .items(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs.builder()
                                            .name(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName)
                                            .build())
                                        .type(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType)
                                        .build())
                                    .renameHeaders(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs.builder()
                                        .items(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs.builder()
                                            .from(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom)
                                            .to(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo)
                                            .build())
                                        .build())
                                    .setHeaders(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs.builder()
                                        .items(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs.builder()
                                            .ifExists(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists)
                                            .name(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName)
                                            .values(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues)
                                            .build())
                                        .build())
                                    .build())
                                .responseMessage(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseMessage)
                                .responseType(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseType)
                                .scopes(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyScopes)
                                .sourceUriDetails(DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsArgs.builder()
                                    .type(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsType)
                                    .uri(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsUri)
                                    .build())
                                .useCookiesForIntermediateSteps(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForIntermediateSteps)
                                .useCookiesForSession(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForSession)
                                .usePkce(deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUsePkce)
                                .build())
                            .validationPolicy(DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyArgs.builder()
                                .type(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyType)
                                .additionalValidationPolicy(DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyArgs.builder()
                                    .audiences(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyAudiences)
                                    .issuers(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyIssuers)
                                    .verifyClaims(DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimArgs.builder()
                                        .isRequired(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired)
                                        .key(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsKey)
                                        .values(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsValues)
                                        .build())
                                    .build())
                                .clientDetails(DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsArgs.builder()
                                    .type(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsType)
                                    .clientId(testClient.id())
                                    .clientSecretId(testSecret.id())
                                    .clientSecretVersionNumber(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsClientSecretVersionNumber)
                                    .build())
                                .isSslVerifyDisabled(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyIsSslVerifyDisabled)
                                .keys(DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeyArgs.builder()
                                    .format(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysFormat)
                                    .alg(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysAlg)
                                    .e(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysE)
                                    .key(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKey)
                                    .keyOps(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKeyOps)
                                    .kid(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKid)
                                    .kty(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKty)
                                    .n(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysN)
                                    .use(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysUse)
                                    .build())
                                .maxCacheDurationInHours(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyMaxCacheDurationInHours)
                                .sourceUriDetails(DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsArgs.builder()
                                    .type(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsType)
                                    .uri(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsUri)
                                    .build())
                                .uri(deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyUri)
                                .build())
                            .verifyClaims(DeploymentSpecificationRequestPoliciesAuthenticationVerifyClaimArgs.builder()
                                .isRequired(deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsIsRequired)
                                .key(deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsKey)
                                .values(deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsValues)
                                .build())
                            .build())
                        .cors(DeploymentSpecificationRequestPoliciesCorsArgs.builder()
                            .allowedOrigins(deploymentSpecificationRequestPoliciesCorsAllowedOrigins)
                            .allowedHeaders(deploymentSpecificationRequestPoliciesCorsAllowedHeaders)
                            .allowedMethods(deploymentSpecificationRequestPoliciesCorsAllowedMethods)
                            .exposedHeaders(deploymentSpecificationRequestPoliciesCorsExposedHeaders)
                            .isAllowCredentialsEnabled(deploymentSpecificationRequestPoliciesCorsIsAllowCredentialsEnabled)
                            .maxAgeInSeconds(deploymentSpecificationRequestPoliciesCorsMaxAgeInSeconds)
                            .build())
                        .dynamicAuthentication(DeploymentSpecificationRequestPoliciesDynamicAuthenticationArgs.builder()
                            .authenticationServers(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerArgs.builder()
                                .authenticationServerDetail(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailArgs.builder()
                                    .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailType)
                                    .audiences(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailAudiences)
                                    .functionId(testFunction.id())
                                    .isAnonymousAccessAllowed(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIsAnonymousAccessAllowed)
                                    .issuers(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIssuers)
                                    .maxClockSkewInSeconds(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailMaxClockSkewInSeconds)
                                    .publicKeys(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysArgs.builder()
                                        .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysType)
                                        .isSslVerifyDisabled(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysIsSslVerifyDisabled)
                                        .keys(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysKeyArgs.builder()
                                            .format(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysFormat)
                                            .alg(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysAlg)
                                            .e(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysE)
                                            .key(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKey)
                                            .keyOps(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKeyOps)
                                            .kid(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKid)
                                            .kty(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKty)
                                            .n(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysN)
                                            .use(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysUse)
                                            .build())
                                        .maxCacheDurationInHours(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysMaxCacheDurationInHours)
                                        .uri(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysUri)
                                        .build())
                                    .tokenAuthScheme(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenAuthScheme)
                                    .tokenHeader(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenHeader)
                                    .tokenQueryParam(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenQueryParam)
                                    .validationFailurePolicy(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyArgs.builder()
                                        .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyType)
                                        .clientDetails(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyClientDetailsArgs.builder()
                                            .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsType)
                                            .clientId(testClient.id())
                                            .clientSecretId(testSecret.id())
                                            .clientSecretVersionNumber(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsClientSecretVersionNumber)
                                            .build())
                                        .fallbackRedirectPath(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyFallbackRedirectPath)
                                        .logoutPath(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyLogoutPath)
                                        .maxExpiryDurationInHours(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyMaxExpiryDurationInHours)
                                        .responseCode(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseCode)
                                        .responseHeaderTransformations(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsArgs.builder()
                                            .filterHeaders(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs.builder()
                                                .items(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs.builder()
                                                    .name(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName)
                                                    .build())
                                                .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType)
                                                .build())
                                            .renameHeaders(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs.builder()
                                                .items(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs.builder()
                                                    .from(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom)
                                                    .to(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo)
                                                    .build())
                                                .build())
                                            .setHeaders(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs.builder()
                                                .items(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs.builder()
                                                    .ifExists(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists)
                                                    .name(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName)
                                                    .values(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues)
                                                    .build())
                                                .build())
                                            .build())
                                        .responseMessage(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseMessage)
                                        .responseType(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseType)
                                        .scopes(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyScopes)
                                        .sourceUriDetails(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicySourceUriDetailsArgs.builder()
                                            .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsType)
                                            .uri(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsUri)
                                            .build())
                                        .useCookiesForIntermediateSteps(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForIntermediateSteps)
                                        .useCookiesForSession(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForSession)
                                        .usePkce(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUsePkce)
                                        .build())
                                    .validationPolicy(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyArgs.builder()
                                        .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyType)
                                        .additionalValidationPolicy(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyArgs.builder()
                                            .audiences(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyAudiences)
                                            .issuers(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyIssuers)
                                            .verifyClaims(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimArgs.builder()
                                                .isRequired(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired)
                                                .key(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsKey)
                                                .values(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsValues)
                                                .build())
                                            .build())
                                        .clientDetails(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyClientDetailsArgs.builder()
                                            .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsType)
                                            .clientId(testClient.id())
                                            .clientSecretId(testSecret.id())
                                            .clientSecretVersionNumber(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsClientSecretVersionNumber)
                                            .build())
                                        .isSslVerifyDisabled(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyIsSslVerifyDisabled)
                                        .keys(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyKeyArgs.builder()
                                            .format(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysFormat)
                                            .alg(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysAlg)
                                            .e(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysE)
                                            .key(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKey)
                                            .keyOps(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKeyOps)
                                            .kid(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKid)
                                            .kty(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKty)
                                            .n(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysN)
                                            .use(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysUse)
                                            .build())
                                        .maxCacheDurationInHours(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyMaxCacheDurationInHours)
                                        .sourceUriDetails(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicySourceUriDetailsArgs.builder()
                                            .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsType)
                                            .uri(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsUri)
                                            .build())
                                        .uri(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyUri)
                                        .build())
                                    .verifyClaims(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailVerifyClaimArgs.builder()
                                        .isRequired(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsIsRequired)
                                        .key(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsKey)
                                        .values(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsValues)
                                        .build())
                                    .build())
                                .key(DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerKeyArgs.builder()
                                    .name(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyName)
                                    .expression(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression)
                                    .isDefault(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault)
                                    .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType)
                                    .values(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues)
                                    .build())
                                .build())
                            .selectionSource(DeploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceArgs.builder()
                                .selector(deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceSelector)
                                .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceType)
                                .build())
                            .build())
                        .mutualTls(DeploymentSpecificationRequestPoliciesMutualTlsArgs.builder()
                            .allowedSans(deploymentSpecificationRequestPoliciesMutualTlsAllowedSans)
                            .isVerifiedCertificateRequired(deploymentSpecificationRequestPoliciesMutualTlsIsVerifiedCertificateRequired)
                            .build())
                        .rateLimiting(DeploymentSpecificationRequestPoliciesRateLimitingArgs.builder()
                            .rateInRequestsPerSecond(deploymentSpecificationRequestPoliciesRateLimitingRateInRequestsPerSecond)
                            .rateKey(deploymentSpecificationRequestPoliciesRateLimitingRateKey)
                            .build())
                        .usagePlans(DeploymentSpecificationRequestPoliciesUsagePlansArgs.builder()
                            .tokenLocations(deploymentSpecificationRequestPoliciesUsagePlansTokenLocations)
                            .build())
                        .build())
                    .routes(DeploymentSpecificationRouteArgs.builder()
                        .backend(DeploymentSpecificationRouteBackendArgs.builder()
                            .type(deploymentSpecificationRoutesBackendType)
                            .allowedPostLogoutUris(deploymentSpecificationRoutesBackendAllowedPostLogoutUris)
                            .body(deploymentSpecificationRoutesBackendBody)
                            .connectTimeoutInSeconds(deploymentSpecificationRoutesBackendConnectTimeoutInSeconds)
                            .functionId(testFunction.id())
                            .headers(DeploymentSpecificationRouteBackendHeaderArgs.builder()
                                .name(deploymentSpecificationRoutesBackendHeadersName)
                                .value(deploymentSpecificationRoutesBackendHeadersValue)
                                .build())
                            .isSslVerifyDisabled(deploymentSpecificationRoutesBackendIsSslVerifyDisabled)
                            .postLogoutState(deploymentSpecificationRoutesBackendPostLogoutState)
                            .readTimeoutInSeconds(deploymentSpecificationRoutesBackendReadTimeoutInSeconds)
                            .routingBackends(DeploymentSpecificationRouteBackendRoutingBackendArgs.builder()
                                .backend(DeploymentSpecificationRouteBackendRoutingBackendBackendArgs.builder()
                                    .type(deploymentSpecificationRoutesBackendRoutingBackendsBackendType)
                                    .body(deploymentSpecificationRoutesBackendRoutingBackendsBackendBody)
                                    .connectTimeoutInSeconds(deploymentSpecificationRoutesBackendRoutingBackendsBackendConnectTimeoutInSeconds)
                                    .functionId(testFunction.id())
                                    .headers(DeploymentSpecificationRouteBackendRoutingBackendBackendHeaderArgs.builder()
                                        .name(deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersName)
                                        .value(deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersValue)
                                        .build())
                                    .isSslVerifyDisabled(deploymentSpecificationRoutesBackendRoutingBackendsBackendIsSslVerifyDisabled)
                                    .readTimeoutInSeconds(deploymentSpecificationRoutesBackendRoutingBackendsBackendReadTimeoutInSeconds)
                                    .sendTimeoutInSeconds(deploymentSpecificationRoutesBackendRoutingBackendsBackendSendTimeoutInSeconds)
                                    .status(deploymentSpecificationRoutesBackendRoutingBackendsBackendStatus)
                                    .url(deploymentSpecificationRoutesBackendRoutingBackendsBackendUrl)
                                    .build())
                                .key(DeploymentSpecificationRouteBackendRoutingBackendKeyArgs.builder()
                                    .name(deploymentSpecificationRoutesBackendRoutingBackendsKeyName)
                                    .type(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType)
                                    .expression(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression)
                                    .isDefault(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault)
                                    .values(deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues)
                                    .build())
                                .build())
                            .selectionSource(DeploymentSpecificationRouteBackendSelectionSourceArgs.builder()
                                .selector(deploymentSpecificationRoutesBackendSelectionSourceSelector)
                                .type(deploymentSpecificationRoutesBackendSelectionSourceType)
                                .build())
                            .sendTimeoutInSeconds(deploymentSpecificationRoutesBackendSendTimeoutInSeconds)
                            .status(deploymentSpecificationRoutesBackendStatus)
                            .url(deploymentSpecificationRoutesBackendUrl)
                            .build())
                        .path(deploymentSpecificationRoutesPath)
                        .loggingPolicies(DeploymentSpecificationRouteLoggingPoliciesArgs.builder()
                            .accessLog(DeploymentSpecificationRouteLoggingPoliciesAccessLogArgs.builder()
                                .isEnabled(deploymentSpecificationRoutesLoggingPoliciesAccessLogIsEnabled)
                                .build())
                            .executionLog(DeploymentSpecificationRouteLoggingPoliciesExecutionLogArgs.builder()
                                .isEnabled(deploymentSpecificationRoutesLoggingPoliciesExecutionLogIsEnabled)
                                .logLevel(deploymentSpecificationRoutesLoggingPoliciesExecutionLogLogLevel)
                                .build())
                            .build())
                        .methods(deploymentSpecificationRoutesMethods)
                        .requestPolicies(DeploymentSpecificationRouteRequestPoliciesArgs.builder()
                            .authorization(DeploymentSpecificationRouteRequestPoliciesAuthorizationArgs.builder()
                                .allowedScopes(deploymentSpecificationRoutesRequestPoliciesAuthorizationAllowedScope)
                                .type(deploymentSpecificationRoutesRequestPoliciesAuthorizationType)
                                .build())
                            .bodyValidation(DeploymentSpecificationRouteRequestPoliciesBodyValidationArgs.builder()
                                .contents(DeploymentSpecificationRouteRequestPoliciesBodyValidationContentArgs.builder()
                                    .mediaType(deploymentSpecificationRoutesRequestPoliciesBodyValidationContentMediaType)
                                    .validationType(deploymentSpecificationRoutesRequestPoliciesBodyValidationContentValidationType)
                                    .build())
                                .required(deploymentSpecificationRoutesRequestPoliciesBodyValidationRequired)
                                .validationMode(deploymentSpecificationRoutesRequestPoliciesBodyValidationValidationMode)
                                .build())
                            .cors(DeploymentSpecificationRouteRequestPoliciesCorsArgs.builder()
                                .allowedOrigins(deploymentSpecificationRoutesRequestPoliciesCorsAllowedOrigins)
                                .allowedHeaders(deploymentSpecificationRoutesRequestPoliciesCorsAllowedHeaders)
                                .allowedMethods(deploymentSpecificationRoutesRequestPoliciesCorsAllowedMethods)
                                .exposedHeaders(deploymentSpecificationRoutesRequestPoliciesCorsExposedHeaders)
                                .isAllowCredentialsEnabled(deploymentSpecificationRoutesRequestPoliciesCorsIsAllowCredentialsEnabled)
                                .maxAgeInSeconds(deploymentSpecificationRoutesRequestPoliciesCorsMaxAgeInSeconds)
                                .build())
                            .headerTransformations(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsArgs.builder()
                                .filterHeaders(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersArgs.builder()
                                    .items(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersItemArgs.builder()
                                        .name(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersItemsName)
                                        .build())
                                    .type(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersType)
                                    .build())
                                .renameHeaders(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersArgs.builder()
                                    .items(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersItemArgs.builder()
                                        .from(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsFrom)
                                        .to(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsTo)
                                        .build())
                                    .build())
                                .setHeaders(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersArgs.builder()
                                    .items(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersItemArgs.builder()
                                        .name(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsName)
                                        .values(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsValues)
                                        .ifExists(deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsIfExists)
                                        .build())
                                    .build())
                                .build())
                            .headerValidations(DeploymentSpecificationRouteRequestPoliciesHeaderValidationsArgs.builder()
                                .headers(DeploymentSpecificationRouteRequestPoliciesHeaderValidationsHeaderArgs.builder()
                                    .name(deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersName)
                                    .required(deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersRequired)
                                    .build())
                                .validationMode(deploymentSpecificationRoutesRequestPoliciesHeaderValidationsValidationMode)
                                .build())
                            .queryParameterTransformations(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsArgs.builder()
                                .filterQueryParameters(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersArgs.builder()
                                    .items(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemArgs.builder()
                                        .name(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemsName)
                                        .build())
                                    .type(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersType)
                                    .build())
                                .renameQueryParameters(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersArgs.builder()
                                    .items(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemArgs.builder()
                                        .from(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsFrom)
                                        .to(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsTo)
                                        .build())
                                    .build())
                                .setQueryParameters(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersArgs.builder()
                                    .items(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersItemArgs.builder()
                                        .name(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsName)
                                        .values(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsValues)
                                        .ifExists(deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsIfExists)
                                        .build())
                                    .build())
                                .build())
                            .queryParameterValidations(DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsArgs.builder()
                                .parameters(DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsParameterArgs.builder()
                                    .name(deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersName)
                                    .required(deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersRequired)
                                    .build())
                                .validationMode(deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsValidationMode)
                                .build())
                            .responseCacheLookup(DeploymentSpecificationRouteRequestPoliciesResponseCacheLookupArgs.builder()
                                .type(deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupType)
                                .cacheKeyAdditions(deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupCacheKeyAdditions)
                                .isEnabled(deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsEnabled)
                                .isPrivateCachingEnabled(deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsPrivateCachingEnabled)
                                .build())
                            .build())
                        .responsePolicies(DeploymentSpecificationRouteResponsePoliciesArgs.builder()
                            .headerTransformations(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsArgs.builder()
                                .filterHeaders(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersArgs.builder()
                                    .items(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersItemArgs.builder()
                                        .name(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersItemsName)
                                        .build())
                                    .type(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersType)
                                    .build())
                                .renameHeaders(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersArgs.builder()
                                    .items(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersItemArgs.builder()
                                        .from(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsFrom)
                                        .to(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsTo)
                                        .build())
                                    .build())
                                .setHeaders(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersArgs.builder()
                                    .items(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersItemArgs.builder()
                                        .name(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsName)
                                        .values(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsValues)
                                        .ifExists(deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsIfExists)
                                        .build())
                                    .build())
                                .build())
                            .responseCacheStore(DeploymentSpecificationRouteResponsePoliciesResponseCacheStoreArgs.builder()
                                .timeToLiveInSeconds(deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreTimeToLiveInSeconds)
                                .type(deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreType)
                                .build())
                            .build())
                        .build())
                    .build())
                .definedTags(Map.of("Operations.CostCenter", "42"))
                .displayName(deploymentDisplayName)
                .freeformTags(Map.of("Department", "Finance"))
                .build());
    
        }
    }
    
    resources:
      testDeployment:
        type: oci:ApiGateway:Deployment
        name: test_deployment
        properties:
          compartmentId: ${compartmentId}
          gatewayId: ${testGateway.id}
          pathPrefix: ${deploymentPathPrefix}
          specification:
            loggingPolicies:
              accessLog:
                isEnabled: ${deploymentSpecificationLoggingPoliciesAccessLogIsEnabled}
              executionLog:
                isEnabled: ${deploymentSpecificationLoggingPoliciesExecutionLogIsEnabled}
                logLevel: ${deploymentSpecificationLoggingPoliciesExecutionLogLogLevel}
            requestPolicies:
              authentication:
                type: ${deploymentSpecificationRequestPoliciesAuthenticationType}
                audiences: ${deploymentSpecificationRequestPoliciesAuthenticationAudiences}
                cacheKeys: ${deploymentSpecificationRequestPoliciesAuthenticationCacheKey}
                functionId: ${testFunction.id}
                isAnonymousAccessAllowed: ${deploymentSpecificationRequestPoliciesAuthenticationIsAnonymousAccessAllowed}
                issuers: ${deploymentSpecificationRequestPoliciesAuthenticationIssuers}
                maxClockSkewInSeconds: ${deploymentSpecificationRequestPoliciesAuthenticationMaxClockSkewInSeconds}
                parameters: ${deploymentSpecificationRequestPoliciesAuthenticationParameters}
                publicKeys:
                  type: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysType}
                  isSslVerifyDisabled: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysIsSslVerifyDisabled}
                  keys:
                    - format: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysFormat}
                      alg: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysAlg}
                      e: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysE}
                      key: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKey}
                      keyOps: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKeyOps}
                      kid: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKid}
                      kty: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysKty}
                      n: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysN}
                      use: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeysUse}
                  maxCacheDurationInHours: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysMaxCacheDurationInHours}
                  uri: ${deploymentSpecificationRequestPoliciesAuthenticationPublicKeysUri}
                tokenAuthScheme: ${deploymentSpecificationRequestPoliciesAuthenticationTokenAuthScheme}
                tokenHeader: ${deploymentSpecificationRequestPoliciesAuthenticationTokenHeader}
                tokenQueryParam: ${deploymentSpecificationRequestPoliciesAuthenticationTokenQueryParam}
                validationFailurePolicy:
                  type: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyType}
                  clientDetails:
                    type: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsType}
                    clientId: ${testClient.id}
                    clientSecretId: ${testSecret.id}
                    clientSecretVersionNumber: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsClientSecretVersionNumber}
                  fallbackRedirectPath: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyFallbackRedirectPath}
                  logoutPath: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyLogoutPath}
                  maxExpiryDurationInHours: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyMaxExpiryDurationInHours}
                  responseCode: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseCode}
                  responseHeaderTransformations:
                    filterHeaders:
                      items:
                        - name: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName}
                      type: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType}
                    renameHeaders:
                      items:
                        - from: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom}
                          to: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo}
                    setHeaders:
                      items:
                        - ifExists: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists}
                          name: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName}
                          values: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues}
                  responseMessage: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseMessage}
                  responseType: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseType}
                  scopes: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyScopes}
                  sourceUriDetails:
                    type: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsType}
                    uri: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsUri}
                  useCookiesForIntermediateSteps: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForIntermediateSteps}
                  useCookiesForSession: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUseCookiesForSession}
                  usePkce: ${deploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyUsePkce}
                validationPolicy:
                  type: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyType}
                  additionalValidationPolicy:
                    audiences: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyAudiences}
                    issuers: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyIssuers}
                    verifyClaims:
                      - isRequired: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired}
                        key: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsKey}
                        values: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimsValues}
                  clientDetails:
                    type: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsType}
                    clientId: ${testClient.id}
                    clientSecretId: ${testSecret.id}
                    clientSecretVersionNumber: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsClientSecretVersionNumber}
                  isSslVerifyDisabled: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyIsSslVerifyDisabled}
                  keys:
                    - format: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysFormat}
                      alg: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysAlg}
                      e: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysE}
                      key: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKey}
                      keyOps: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKeyOps}
                      kid: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKid}
                      kty: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysKty}
                      n: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysN}
                      use: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeysUse}
                  maxCacheDurationInHours: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyMaxCacheDurationInHours}
                  sourceUriDetails:
                    type: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsType}
                    uri: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsUri}
                  uri: ${deploymentSpecificationRequestPoliciesAuthenticationValidationPolicyUri}
                verifyClaims:
                  - isRequired: ${deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsIsRequired}
                    key: ${deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsKey}
                    values: ${deploymentSpecificationRequestPoliciesAuthenticationVerifyClaimsValues}
              cors:
                allowedOrigins: ${deploymentSpecificationRequestPoliciesCorsAllowedOrigins}
                allowedHeaders: ${deploymentSpecificationRequestPoliciesCorsAllowedHeaders}
                allowedMethods: ${deploymentSpecificationRequestPoliciesCorsAllowedMethods}
                exposedHeaders: ${deploymentSpecificationRequestPoliciesCorsExposedHeaders}
                isAllowCredentialsEnabled: ${deploymentSpecificationRequestPoliciesCorsIsAllowCredentialsEnabled}
                maxAgeInSeconds: ${deploymentSpecificationRequestPoliciesCorsMaxAgeInSeconds}
              dynamicAuthentication:
                authenticationServers:
                  - authenticationServerDetail:
                      type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailType}
                      audiences: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailAudiences}
                      functionId: ${testFunction.id}
                      isAnonymousAccessAllowed: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIsAnonymousAccessAllowed}
                      issuers: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailIssuers}
                      maxClockSkewInSeconds: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailMaxClockSkewInSeconds}
                      publicKeys:
                        type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysType}
                        isSslVerifyDisabled: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysIsSslVerifyDisabled}
                        keys:
                          - format: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysFormat}
                            alg: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysAlg}
                            e: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysE}
                            key: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKey}
                            keyOps: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKeyOps}
                            kid: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKid}
                            kty: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysKty}
                            n: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysN}
                            use: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysKeysUse}
                        maxCacheDurationInHours: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysMaxCacheDurationInHours}
                        uri: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailPublicKeysUri}
                      tokenAuthScheme: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenAuthScheme}
                      tokenHeader: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenHeader}
                      tokenQueryParam: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailTokenQueryParam}
                      validationFailurePolicy:
                        type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyType}
                        clientDetails:
                          type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsType}
                          clientId: ${testClient.id}
                          clientSecretId: ${testSecret.id}
                          clientSecretVersionNumber: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyClientDetailsClientSecretVersionNumber}
                        fallbackRedirectPath: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyFallbackRedirectPath}
                        logoutPath: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyLogoutPath}
                        maxExpiryDurationInHours: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyMaxExpiryDurationInHours}
                        responseCode: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseCode}
                        responseHeaderTransformations:
                          filterHeaders:
                            items:
                              - name: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemsName}
                            type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersType}
                          renameHeaders:
                            items:
                              - from: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsFrom}
                                to: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemsTo}
                          setHeaders:
                            items:
                              - ifExists: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsIfExists}
                                name: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsName}
                                values: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemsValues}
                        responseMessage: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseMessage}
                        responseType: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyResponseType}
                        scopes: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyScopes}
                        sourceUriDetails:
                          type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsType}
                          uri: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicySourceUriDetailsUri}
                        useCookiesForIntermediateSteps: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForIntermediateSteps}
                        useCookiesForSession: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUseCookiesForSession}
                        usePkce: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationFailurePolicyUsePkce}
                      validationPolicy:
                        type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyType}
                        additionalValidationPolicy:
                          audiences: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyAudiences}
                          issuers: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyIssuers}
                          verifyClaims:
                            - isRequired: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsIsRequired}
                              key: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsKey}
                              values: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimsValues}
                        clientDetails:
                          type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsType}
                          clientId: ${testClient.id}
                          clientSecretId: ${testSecret.id}
                          clientSecretVersionNumber: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyClientDetailsClientSecretVersionNumber}
                        isSslVerifyDisabled: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyIsSslVerifyDisabled}
                        keys:
                          - format: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysFormat}
                            alg: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysAlg}
                            e: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysE}
                            key: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKey}
                            keyOps: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKeyOps}
                            kid: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKid}
                            kty: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysKty}
                            n: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysN}
                            use: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyKeysUse}
                        maxCacheDurationInHours: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyMaxCacheDurationInHours}
                        sourceUriDetails:
                          type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsType}
                          uri: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicySourceUriDetailsUri}
                        uri: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailValidationPolicyUri}
                      verifyClaims:
                        - isRequired: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsIsRequired}
                          key: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsKey}
                          values: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersAuthenticationServerDetailVerifyClaimsValues}
                    key:
                      name: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyName}
                      expression: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression}
                      isDefault: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault}
                      type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType}
                      values: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues}
                selectionSource:
                  selector: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceSelector}
                  type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceType}
              mutualTls:
                allowedSans: ${deploymentSpecificationRequestPoliciesMutualTlsAllowedSans}
                isVerifiedCertificateRequired: ${deploymentSpecificationRequestPoliciesMutualTlsIsVerifiedCertificateRequired}
              rateLimiting:
                rateInRequestsPerSecond: ${deploymentSpecificationRequestPoliciesRateLimitingRateInRequestsPerSecond}
                rateKey: ${deploymentSpecificationRequestPoliciesRateLimitingRateKey}
              usagePlans:
                tokenLocations: ${deploymentSpecificationRequestPoliciesUsagePlansTokenLocations}
            routes:
              - backend:
                  type: ${deploymentSpecificationRoutesBackendType}
                  allowedPostLogoutUris: ${deploymentSpecificationRoutesBackendAllowedPostLogoutUris}
                  body: ${deploymentSpecificationRoutesBackendBody}
                  connectTimeoutInSeconds: ${deploymentSpecificationRoutesBackendConnectTimeoutInSeconds}
                  functionId: ${testFunction.id}
                  headers:
                    - name: ${deploymentSpecificationRoutesBackendHeadersName}
                      value: ${deploymentSpecificationRoutesBackendHeadersValue}
                  isSslVerifyDisabled: ${deploymentSpecificationRoutesBackendIsSslVerifyDisabled}
                  postLogoutState: ${deploymentSpecificationRoutesBackendPostLogoutState}
                  readTimeoutInSeconds: ${deploymentSpecificationRoutesBackendReadTimeoutInSeconds}
                  routingBackends:
                    - backend:
                        type: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendType}
                        body: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendBody}
                        connectTimeoutInSeconds: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendConnectTimeoutInSeconds}
                        functionId: ${testFunction.id}
                        headers:
                          - name: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersName}
                            value: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendHeadersValue}
                        isSslVerifyDisabled: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendIsSslVerifyDisabled}
                        readTimeoutInSeconds: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendReadTimeoutInSeconds}
                        sendTimeoutInSeconds: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendSendTimeoutInSeconds}
                        status: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendStatus}
                        url: ${deploymentSpecificationRoutesBackendRoutingBackendsBackendUrl}
                      key:
                        name: ${deploymentSpecificationRoutesBackendRoutingBackendsKeyName}
                        type: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyType}
                        expression: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyExpression}
                        isDefault: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyIsDefault}
                        values: ${deploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServersKeyValues}
                  selectionSource:
                    selector: ${deploymentSpecificationRoutesBackendSelectionSourceSelector}
                    type: ${deploymentSpecificationRoutesBackendSelectionSourceType}
                  sendTimeoutInSeconds: ${deploymentSpecificationRoutesBackendSendTimeoutInSeconds}
                  status: ${deploymentSpecificationRoutesBackendStatus}
                  url: ${deploymentSpecificationRoutesBackendUrl}
                path: ${deploymentSpecificationRoutesPath}
                loggingPolicies:
                  accessLog:
                    isEnabled: ${deploymentSpecificationRoutesLoggingPoliciesAccessLogIsEnabled}
                  executionLog:
                    isEnabled: ${deploymentSpecificationRoutesLoggingPoliciesExecutionLogIsEnabled}
                    logLevel: ${deploymentSpecificationRoutesLoggingPoliciesExecutionLogLogLevel}
                methods: ${deploymentSpecificationRoutesMethods}
                requestPolicies:
                  authorization:
                    allowedScopes: ${deploymentSpecificationRoutesRequestPoliciesAuthorizationAllowedScope}
                    type: ${deploymentSpecificationRoutesRequestPoliciesAuthorizationType}
                  bodyValidation:
                    contents:
                      - mediaType: ${deploymentSpecificationRoutesRequestPoliciesBodyValidationContentMediaType}
                        validationType: ${deploymentSpecificationRoutesRequestPoliciesBodyValidationContentValidationType}
                    required: ${deploymentSpecificationRoutesRequestPoliciesBodyValidationRequired}
                    validationMode: ${deploymentSpecificationRoutesRequestPoliciesBodyValidationValidationMode}
                  cors:
                    allowedOrigins: ${deploymentSpecificationRoutesRequestPoliciesCorsAllowedOrigins}
                    allowedHeaders: ${deploymentSpecificationRoutesRequestPoliciesCorsAllowedHeaders}
                    allowedMethods: ${deploymentSpecificationRoutesRequestPoliciesCorsAllowedMethods}
                    exposedHeaders: ${deploymentSpecificationRoutesRequestPoliciesCorsExposedHeaders}
                    isAllowCredentialsEnabled: ${deploymentSpecificationRoutesRequestPoliciesCorsIsAllowCredentialsEnabled}
                    maxAgeInSeconds: ${deploymentSpecificationRoutesRequestPoliciesCorsMaxAgeInSeconds}
                  headerTransformations:
                    filterHeaders:
                      items:
                        - name: ${deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersItemsName}
                      type: ${deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsFilterHeadersType}
                    renameHeaders:
                      items:
                        - from: ${deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsFrom}
                          to: ${deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsRenameHeadersItemsTo}
                    setHeaders:
                      items:
                        - name: ${deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsName}
                          values: ${deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsValues}
                          ifExists: ${deploymentSpecificationRoutesRequestPoliciesHeaderTransformationsSetHeadersItemsIfExists}
                  headerValidations:
                    headers:
                      - name: ${deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersName}
                        required: ${deploymentSpecificationRoutesRequestPoliciesHeaderValidationsHeadersRequired}
                    validationMode: ${deploymentSpecificationRoutesRequestPoliciesHeaderValidationsValidationMode}
                  queryParameterTransformations:
                    filterQueryParameters:
                      items:
                        - name: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemsName}
                      type: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsFilterQueryParametersType}
                    renameQueryParameters:
                      items:
                        - from: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsFrom}
                          to: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemsTo}
                    setQueryParameters:
                      items:
                        - name: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsName}
                          values: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsValues}
                          ifExists: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterTransformationsSetQueryParametersItemsIfExists}
                  queryParameterValidations:
                    parameters:
                      - name: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersName}
                        required: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsParametersRequired}
                    validationMode: ${deploymentSpecificationRoutesRequestPoliciesQueryParameterValidationsValidationMode}
                  responseCacheLookup:
                    type: ${deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupType}
                    cacheKeyAdditions: ${deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupCacheKeyAdditions}
                    isEnabled: ${deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsEnabled}
                    isPrivateCachingEnabled: ${deploymentSpecificationRoutesRequestPoliciesResponseCacheLookupIsPrivateCachingEnabled}
                responsePolicies:
                  headerTransformations:
                    filterHeaders:
                      items:
                        - name: ${deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersItemsName}
                      type: ${deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsFilterHeadersType}
                    renameHeaders:
                      items:
                        - from: ${deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsFrom}
                          to: ${deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsRenameHeadersItemsTo}
                    setHeaders:
                      items:
                        - name: ${deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsName}
                          values: ${deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsValues}
                          ifExists: ${deploymentSpecificationRoutesResponsePoliciesHeaderTransformationsSetHeadersItemsIfExists}
                  responseCacheStore:
                    timeToLiveInSeconds: ${deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreTimeToLiveInSeconds}
                    type: ${deploymentSpecificationRoutesResponsePoliciesResponseCacheStoreType}
          definedTags:
            Operations.CostCenter: '42'
          displayName: ${deploymentDisplayName}
          freeformTags:
            Department: Finance
    

    Create Deployment Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Deployment(name: string, args: DeploymentArgs, opts?: CustomResourceOptions);
    @overload
    def Deployment(resource_name: str,
                   args: DeploymentArgs,
                   opts: Optional[ResourceOptions] = None)
    
    @overload
    def Deployment(resource_name: str,
                   opts: Optional[ResourceOptions] = None,
                   compartment_id: Optional[str] = None,
                   gateway_id: Optional[str] = None,
                   path_prefix: Optional[str] = None,
                   specification: Optional[_apigateway.DeploymentSpecificationArgs] = None,
                   defined_tags: Optional[Mapping[str, str]] = None,
                   display_name: Optional[str] = None,
                   freeform_tags: Optional[Mapping[str, str]] = None)
    func NewDeployment(ctx *Context, name string, args DeploymentArgs, opts ...ResourceOption) (*Deployment, error)
    public Deployment(string name, DeploymentArgs args, CustomResourceOptions? opts = null)
    public Deployment(String name, DeploymentArgs args)
    public Deployment(String name, DeploymentArgs args, CustomResourceOptions options)
    
    type: oci:ApiGateway:Deployment
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args DeploymentArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args DeploymentArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args DeploymentArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args DeploymentArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args DeploymentArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var deploymentResource = new Oci.ApiGateway.Deployment("deploymentResource", new()
    {
        CompartmentId = "string",
        GatewayId = "string",
        PathPrefix = "string",
        Specification = new Oci.ApiGateway.Inputs.DeploymentSpecificationArgs
        {
            Routes = new[]
            {
                new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteArgs
                {
                    Backend = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendArgs
                    {
                        Type = "string",
                        PostLogoutState = "string",
                        ConnectTimeoutInSeconds = 0,
                        FunctionId = "string",
                        Headers = new[]
                        {
                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendHeaderArgs
                            {
                                Name = "string",
                                Value = "string",
                            },
                        },
                        IsSslVerifyDisabled = false,
                        AllowedPostLogoutUris = new[]
                        {
                            "string",
                        },
                        ReadTimeoutInSeconds = 0,
                        RoutingBackends = new[]
                        {
                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendRoutingBackendArgs
                            {
                                Backend = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendRoutingBackendBackendArgs
                                {
                                    Type = "string",
                                    Body = "string",
                                    ConnectTimeoutInSeconds = 0,
                                    FunctionId = "string",
                                    Headers = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendRoutingBackendBackendHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                    IsSslVerifyDisabled = false,
                                    ReadTimeoutInSeconds = 0,
                                    SendTimeoutInSeconds = 0,
                                    Status = 0,
                                    Url = "string",
                                },
                                Key = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendRoutingBackendKeyArgs
                                {
                                    Name = "string",
                                    Type = "string",
                                    Expression = "string",
                                    IsDefault = false,
                                    Values = new[]
                                    {
                                        "string",
                                    },
                                },
                            },
                        },
                        SelectionSource = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteBackendSelectionSourceArgs
                        {
                            Selector = "string",
                            Type = "string",
                        },
                        SendTimeoutInSeconds = 0,
                        Status = 0,
                        Body = "string",
                        Url = "string",
                    },
                    Path = "string",
                    LoggingPolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteLoggingPoliciesArgs
                    {
                        AccessLog = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteLoggingPoliciesAccessLogArgs
                        {
                            IsEnabled = false,
                        },
                        ExecutionLog = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteLoggingPoliciesExecutionLogArgs
                        {
                            IsEnabled = false,
                            LogLevel = "string",
                        },
                    },
                    Methods = new[]
                    {
                        "string",
                    },
                    RequestPolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesArgs
                    {
                        Authorization = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesAuthorizationArgs
                        {
                            AllowedScopes = new[]
                            {
                                "string",
                            },
                            Type = "string",
                        },
                        BodyValidation = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesBodyValidationArgs
                        {
                            Contents = new[]
                            {
                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesBodyValidationContentArgs
                                {
                                    MediaType = "string",
                                    ValidationType = "string",
                                },
                            },
                            Required = false,
                            ValidationMode = "string",
                        },
                        Cors = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesCorsArgs
                        {
                            AllowedOrigins = new[]
                            {
                                "string",
                            },
                            AllowedHeaders = new[]
                            {
                                "string",
                            },
                            AllowedMethods = new[]
                            {
                                "string",
                            },
                            ExposedHeaders = new[]
                            {
                                "string",
                            },
                            IsAllowCredentialsEnabled = false,
                            MaxAgeInSeconds = 0,
                        },
                        HeaderTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsArgs
                        {
                            FilterHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersItemArgs
                                    {
                                        Name = "string",
                                    },
                                },
                                Type = "string",
                            },
                            RenameHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersItemArgs
                                    {
                                        From = "string",
                                        To = "string",
                                    },
                                },
                            },
                            SetHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersItemArgs
                                    {
                                        Name = "string",
                                        Values = new[]
                                        {
                                            "string",
                                        },
                                        IfExists = "string",
                                    },
                                },
                            },
                        },
                        HeaderValidations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsArgs
                        {
                            Headers = new[]
                            {
                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsHeaderArgs
                                {
                                    Name = "string",
                                    Required = false,
                                },
                            },
                            ValidationMode = "string",
                        },
                        QueryParameterTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsArgs
                        {
                            FilterQueryParameters = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemArgs
                                    {
                                        Name = "string",
                                    },
                                },
                                Type = "string",
                            },
                            RenameQueryParameters = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemArgs
                                    {
                                        From = "string",
                                        To = "string",
                                    },
                                },
                            },
                            SetQueryParameters = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersItemArgs
                                    {
                                        Name = "string",
                                        Values = new[]
                                        {
                                            "string",
                                        },
                                        IfExists = "string",
                                    },
                                },
                            },
                        },
                        QueryParameterValidations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsArgs
                        {
                            Parameters = new[]
                            {
                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsParameterArgs
                                {
                                    Name = "string",
                                    Required = false,
                                },
                            },
                            ValidationMode = "string",
                        },
                        ResponseCacheLookup = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteRequestPoliciesResponseCacheLookupArgs
                        {
                            Type = "string",
                            CacheKeyAdditions = new[]
                            {
                                "string",
                            },
                            IsEnabled = false,
                            IsPrivateCachingEnabled = false,
                        },
                    },
                    ResponsePolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesArgs
                    {
                        HeaderTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsArgs
                        {
                            FilterHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersItemArgs
                                    {
                                        Name = "string",
                                    },
                                },
                                Type = "string",
                            },
                            RenameHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersItemArgs
                                    {
                                        From = "string",
                                        To = "string",
                                    },
                                },
                            },
                            SetHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersItemArgs
                                    {
                                        Name = "string",
                                        Values = new[]
                                        {
                                            "string",
                                        },
                                        IfExists = "string",
                                    },
                                },
                            },
                        },
                        ResponseCacheStore = new Oci.ApiGateway.Inputs.DeploymentSpecificationRouteResponsePoliciesResponseCacheStoreArgs
                        {
                            TimeToLiveInSeconds = 0,
                            Type = "string",
                        },
                    },
                },
            },
            LoggingPolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationLoggingPoliciesArgs
            {
                AccessLog = new Oci.ApiGateway.Inputs.DeploymentSpecificationLoggingPoliciesAccessLogArgs
                {
                    IsEnabled = false,
                },
                ExecutionLog = new Oci.ApiGateway.Inputs.DeploymentSpecificationLoggingPoliciesExecutionLogArgs
                {
                    IsEnabled = false,
                    LogLevel = "string",
                },
            },
            RequestPolicies = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesArgs
            {
                Authentication = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationArgs
                {
                    Type = "string",
                    Parameters = 
                    {
                        { "string", "string" },
                    },
                    TokenAuthScheme = "string",
                    IsAnonymousAccessAllowed = false,
                    Issuers = new[]
                    {
                        "string",
                    },
                    MaxClockSkewInSeconds = 0,
                    Audiences = new[]
                    {
                        "string",
                    },
                    PublicKeys = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysArgs
                    {
                        Type = "string",
                        IsSslVerifyDisabled = false,
                        Keys = new[]
                        {
                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeyArgs
                            {
                                Format = "string",
                                Alg = "string",
                                E = "string",
                                Key = "string",
                                KeyOps = new[]
                                {
                                    "string",
                                },
                                Kid = "string",
                                Kty = "string",
                                N = "string",
                                Use = "string",
                            },
                        },
                        MaxCacheDurationInHours = 0,
                        Uri = "string",
                    },
                    FunctionId = "string",
                    TokenHeader = "string",
                    TokenQueryParam = "string",
                    CacheKeys = new[]
                    {
                        "string",
                    },
                    ValidationFailurePolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyArgs
                    {
                        Type = "string",
                        ResponseMessage = "string",
                        LogoutPath = "string",
                        MaxExpiryDurationInHours = 0,
                        ResponseCode = "string",
                        ResponseHeaderTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsArgs
                        {
                            FilterHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs
                                    {
                                        Name = "string",
                                    },
                                },
                                Type = "string",
                            },
                            RenameHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs
                                    {
                                        From = "string",
                                        To = "string",
                                    },
                                },
                            },
                            SetHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs
                            {
                                Items = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs
                                    {
                                        IfExists = "string",
                                        Name = "string",
                                        Values = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                        },
                        ClientDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsArgs
                        {
                            Type = "string",
                            ClientId = "string",
                            ClientSecretId = "string",
                            ClientSecretVersionNumber = "string",
                        },
                        ResponseType = "string",
                        Scopes = new[]
                        {
                            "string",
                        },
                        SourceUriDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsArgs
                        {
                            Type = "string",
                            Uri = "string",
                        },
                        FallbackRedirectPath = "string",
                        UseCookiesForIntermediateSteps = false,
                        UseCookiesForSession = false,
                        UsePkce = false,
                    },
                    ValidationPolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyArgs
                    {
                        Type = "string",
                        AdditionalValidationPolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyArgs
                        {
                            Audiences = new[]
                            {
                                "string",
                            },
                            Issuers = new[]
                            {
                                "string",
                            },
                            VerifyClaims = new[]
                            {
                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimArgs
                                {
                                    IsRequired = false,
                                    Key = "string",
                                    Values = new[]
                                    {
                                        "string",
                                    },
                                },
                            },
                        },
                        ClientDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsArgs
                        {
                            Type = "string",
                            ClientId = "string",
                            ClientSecretId = "string",
                            ClientSecretVersionNumber = "string",
                        },
                        IsSslVerifyDisabled = false,
                        Keys = new[]
                        {
                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeyArgs
                            {
                                Format = "string",
                                Alg = "string",
                                E = "string",
                                Key = "string",
                                KeyOps = new[]
                                {
                                    "string",
                                },
                                Kid = "string",
                                Kty = "string",
                                N = "string",
                                Use = "string",
                            },
                        },
                        MaxCacheDurationInHours = 0,
                        SourceUriDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsArgs
                        {
                            Type = "string",
                            Uri = "string",
                        },
                        Uri = "string",
                    },
                    VerifyClaims = new[]
                    {
                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesAuthenticationVerifyClaimArgs
                        {
                            IsRequired = false,
                            Key = "string",
                            Values = new[]
                            {
                                "string",
                            },
                        },
                    },
                },
                Cors = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesCorsArgs
                {
                    AllowedOrigins = new[]
                    {
                        "string",
                    },
                    AllowedHeaders = new[]
                    {
                        "string",
                    },
                    AllowedMethods = new[]
                    {
                        "string",
                    },
                    ExposedHeaders = new[]
                    {
                        "string",
                    },
                    IsAllowCredentialsEnabled = false,
                    MaxAgeInSeconds = 0,
                },
                DynamicAuthentication = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationArgs
                {
                    AuthenticationServers = new[]
                    {
                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerArgs
                        {
                            AuthenticationServerDetail = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailArgs
                            {
                                Type = "string",
                                Parameters = 
                                {
                                    { "string", "string" },
                                },
                                TokenAuthScheme = "string",
                                IsAnonymousAccessAllowed = false,
                                Issuers = new[]
                                {
                                    "string",
                                },
                                MaxClockSkewInSeconds = 0,
                                Audiences = new[]
                                {
                                    "string",
                                },
                                PublicKeys = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysArgs
                                {
                                    Type = "string",
                                    IsSslVerifyDisabled = false,
                                    Keys = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysKeyArgs
                                        {
                                            Format = "string",
                                            Alg = "string",
                                            E = "string",
                                            Key = "string",
                                            KeyOps = new[]
                                            {
                                                "string",
                                            },
                                            Kid = "string",
                                            Kty = "string",
                                            N = "string",
                                            Use = "string",
                                        },
                                    },
                                    MaxCacheDurationInHours = 0,
                                    Uri = "string",
                                },
                                FunctionId = "string",
                                TokenHeader = "string",
                                TokenQueryParam = "string",
                                CacheKeys = new[]
                                {
                                    "string",
                                },
                                ValidationFailurePolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyArgs
                                {
                                    Type = "string",
                                    ResponseMessage = "string",
                                    LogoutPath = "string",
                                    MaxExpiryDurationInHours = 0,
                                    ResponseCode = "string",
                                    ResponseHeaderTransformations = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsArgs
                                    {
                                        FilterHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs
                                        {
                                            Items = new[]
                                            {
                                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs
                                                {
                                                    Name = "string",
                                                },
                                            },
                                            Type = "string",
                                        },
                                        RenameHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs
                                        {
                                            Items = new[]
                                            {
                                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs
                                                {
                                                    From = "string",
                                                    To = "string",
                                                },
                                            },
                                        },
                                        SetHeaders = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs
                                        {
                                            Items = new[]
                                            {
                                                new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs
                                                {
                                                    IfExists = "string",
                                                    Name = "string",
                                                    Values = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                            },
                                        },
                                    },
                                    ClientDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyClientDetailsArgs
                                    {
                                        Type = "string",
                                        ClientId = "string",
                                        ClientSecretId = "string",
                                        ClientSecretVersionNumber = "string",
                                    },
                                    ResponseType = "string",
                                    Scopes = new[]
                                    {
                                        "string",
                                    },
                                    SourceUriDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicySourceUriDetailsArgs
                                    {
                                        Type = "string",
                                        Uri = "string",
                                    },
                                    FallbackRedirectPath = "string",
                                    UseCookiesForIntermediateSteps = false,
                                    UseCookiesForSession = false,
                                    UsePkce = false,
                                },
                                ValidationPolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyArgs
                                {
                                    Type = "string",
                                    AdditionalValidationPolicy = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyArgs
                                    {
                                        Audiences = new[]
                                        {
                                            "string",
                                        },
                                        Issuers = new[]
                                        {
                                            "string",
                                        },
                                        VerifyClaims = new[]
                                        {
                                            new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimArgs
                                            {
                                                IsRequired = false,
                                                Key = "string",
                                                Values = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    ClientDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyClientDetailsArgs
                                    {
                                        Type = "string",
                                        ClientId = "string",
                                        ClientSecretId = "string",
                                        ClientSecretVersionNumber = "string",
                                    },
                                    IsSslVerifyDisabled = false,
                                    Keys = new[]
                                    {
                                        new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyKeyArgs
                                        {
                                            Format = "string",
                                            Alg = "string",
                                            E = "string",
                                            Key = "string",
                                            KeyOps = new[]
                                            {
                                                "string",
                                            },
                                            Kid = "string",
                                            Kty = "string",
                                            N = "string",
                                            Use = "string",
                                        },
                                    },
                                    MaxCacheDurationInHours = 0,
                                    SourceUriDetails = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicySourceUriDetailsArgs
                                    {
                                        Type = "string",
                                        Uri = "string",
                                    },
                                    Uri = "string",
                                },
                                VerifyClaims = new[]
                                {
                                    new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailVerifyClaimArgs
                                    {
                                        IsRequired = false,
                                        Key = "string",
                                        Values = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Key = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerKeyArgs
                            {
                                Name = "string",
                                Expression = "string",
                                IsDefault = false,
                                Type = "string",
                                Values = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    SelectionSource = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceArgs
                    {
                        Selector = "string",
                        Type = "string",
                    },
                },
                MutualTls = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesMutualTlsArgs
                {
                    AllowedSans = new[]
                    {
                        "string",
                    },
                    IsVerifiedCertificateRequired = false,
                },
                RateLimiting = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesRateLimitingArgs
                {
                    RateInRequestsPerSecond = 0,
                    RateKey = "string",
                },
                UsagePlans = new Oci.ApiGateway.Inputs.DeploymentSpecificationRequestPoliciesUsagePlansArgs
                {
                    TokenLocations = new[]
                    {
                        "string",
                    },
                },
            },
        },
        DefinedTags = 
        {
            { "string", "string" },
        },
        DisplayName = "string",
        FreeformTags = 
        {
            { "string", "string" },
        },
    });
    
    example, err := ApiGateway.NewDeployment(ctx, "deploymentResource", &ApiGateway.DeploymentArgs{
    	CompartmentId: pulumi.String("string"),
    	GatewayId:     pulumi.String("string"),
    	PathPrefix:    pulumi.String("string"),
    	Specification: &apigateway.DeploymentSpecificationArgs{
    		Routes: apigateway.DeploymentSpecificationRouteArray{
    			&apigateway.DeploymentSpecificationRouteArgs{
    				Backend: &apigateway.DeploymentSpecificationRouteBackendArgs{
    					Type:                    pulumi.String("string"),
    					PostLogoutState:         pulumi.String("string"),
    					ConnectTimeoutInSeconds: pulumi.Float64(0),
    					FunctionId:              pulumi.String("string"),
    					Headers: apigateway.DeploymentSpecificationRouteBackendHeaderArray{
    						&apigateway.DeploymentSpecificationRouteBackendHeaderArgs{
    							Name:  pulumi.String("string"),
    							Value: pulumi.String("string"),
    						},
    					},
    					IsSslVerifyDisabled: pulumi.Bool(false),
    					AllowedPostLogoutUris: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					ReadTimeoutInSeconds: pulumi.Float64(0),
    					RoutingBackends: apigateway.DeploymentSpecificationRouteBackendRoutingBackendArray{
    						&apigateway.DeploymentSpecificationRouteBackendRoutingBackendArgs{
    							Backend: &apigateway.DeploymentSpecificationRouteBackendRoutingBackendBackendArgs{
    								Type:                    pulumi.String("string"),
    								Body:                    pulumi.String("string"),
    								ConnectTimeoutInSeconds: pulumi.Float64(0),
    								FunctionId:              pulumi.String("string"),
    								Headers: apigateway.DeploymentSpecificationRouteBackendRoutingBackendBackendHeaderArray{
    									&apigateway.DeploymentSpecificationRouteBackendRoutingBackendBackendHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    								IsSslVerifyDisabled:  pulumi.Bool(false),
    								ReadTimeoutInSeconds: pulumi.Float64(0),
    								SendTimeoutInSeconds: pulumi.Float64(0),
    								Status:               pulumi.Int(0),
    								Url:                  pulumi.String("string"),
    							},
    							Key: &apigateway.DeploymentSpecificationRouteBackendRoutingBackendKeyArgs{
    								Name:       pulumi.String("string"),
    								Type:       pulumi.String("string"),
    								Expression: pulumi.String("string"),
    								IsDefault:  pulumi.Bool(false),
    								Values: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    						},
    					},
    					SelectionSource: &apigateway.DeploymentSpecificationRouteBackendSelectionSourceArgs{
    						Selector: pulumi.String("string"),
    						Type:     pulumi.String("string"),
    					},
    					SendTimeoutInSeconds: pulumi.Float64(0),
    					Status:               pulumi.Int(0),
    					Body:                 pulumi.String("string"),
    					Url:                  pulumi.String("string"),
    				},
    				Path: pulumi.String("string"),
    				LoggingPolicies: &apigateway.DeploymentSpecificationRouteLoggingPoliciesArgs{
    					AccessLog: &apigateway.DeploymentSpecificationRouteLoggingPoliciesAccessLogArgs{
    						IsEnabled: pulumi.Bool(false),
    					},
    					ExecutionLog: &apigateway.DeploymentSpecificationRouteLoggingPoliciesExecutionLogArgs{
    						IsEnabled: pulumi.Bool(false),
    						LogLevel:  pulumi.String("string"),
    					},
    				},
    				Methods: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				RequestPolicies: &apigateway.DeploymentSpecificationRouteRequestPoliciesArgs{
    					Authorization: &apigateway.DeploymentSpecificationRouteRequestPoliciesAuthorizationArgs{
    						AllowedScopes: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						Type: pulumi.String("string"),
    					},
    					BodyValidation: &apigateway.DeploymentSpecificationRouteRequestPoliciesBodyValidationArgs{
    						Contents: apigateway.DeploymentSpecificationRouteRequestPoliciesBodyValidationContentArray{
    							&apigateway.DeploymentSpecificationRouteRequestPoliciesBodyValidationContentArgs{
    								MediaType:      pulumi.String("string"),
    								ValidationType: pulumi.String("string"),
    							},
    						},
    						Required:       pulumi.Bool(false),
    						ValidationMode: pulumi.String("string"),
    					},
    					Cors: &apigateway.DeploymentSpecificationRouteRequestPoliciesCorsArgs{
    						AllowedOrigins: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						AllowedHeaders: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						AllowedMethods: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						ExposedHeaders: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						IsAllowCredentialsEnabled: pulumi.Bool(false),
    						MaxAgeInSeconds:           pulumi.Int(0),
    					},
    					HeaderTransformations: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsArgs{
    						FilterHeaders: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersArgs{
    							Items: apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersItemArray{
    								&apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersItemArgs{
    									Name: pulumi.String("string"),
    								},
    							},
    							Type: pulumi.String("string"),
    						},
    						RenameHeaders: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersArgs{
    							Items: apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersItemArray{
    								&apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersItemArgs{
    									From: pulumi.String("string"),
    									To:   pulumi.String("string"),
    								},
    							},
    						},
    						SetHeaders: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersArgs{
    							Items: apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersItemArray{
    								&apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersItemArgs{
    									Name: pulumi.String("string"),
    									Values: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IfExists: pulumi.String("string"),
    								},
    							},
    						},
    					},
    					HeaderValidations: &apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsArgs{
    						Headers: apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsHeaderArray{
    							&apigateway.DeploymentSpecificationRouteRequestPoliciesHeaderValidationsHeaderArgs{
    								Name:     pulumi.String("string"),
    								Required: pulumi.Bool(false),
    							},
    						},
    						ValidationMode: pulumi.String("string"),
    					},
    					QueryParameterTransformations: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsArgs{
    						FilterQueryParameters: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersArgs{
    							Items: apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemArray{
    								&apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemArgs{
    									Name: pulumi.String("string"),
    								},
    							},
    							Type: pulumi.String("string"),
    						},
    						RenameQueryParameters: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersArgs{
    							Items: apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemArray{
    								&apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemArgs{
    									From: pulumi.String("string"),
    									To:   pulumi.String("string"),
    								},
    							},
    						},
    						SetQueryParameters: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersArgs{
    							Items: apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersItemArray{
    								&apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersItemArgs{
    									Name: pulumi.String("string"),
    									Values: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IfExists: pulumi.String("string"),
    								},
    							},
    						},
    					},
    					QueryParameterValidations: &apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsArgs{
    						Parameters: apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsParameterArray{
    							&apigateway.DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsParameterArgs{
    								Name:     pulumi.String("string"),
    								Required: pulumi.Bool(false),
    							},
    						},
    						ValidationMode: pulumi.String("string"),
    					},
    					ResponseCacheLookup: &apigateway.DeploymentSpecificationRouteRequestPoliciesResponseCacheLookupArgs{
    						Type: pulumi.String("string"),
    						CacheKeyAdditions: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						IsEnabled:               pulumi.Bool(false),
    						IsPrivateCachingEnabled: pulumi.Bool(false),
    					},
    				},
    				ResponsePolicies: &apigateway.DeploymentSpecificationRouteResponsePoliciesArgs{
    					HeaderTransformations: &apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsArgs{
    						FilterHeaders: &apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersArgs{
    							Items: apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersItemArray{
    								&apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersItemArgs{
    									Name: pulumi.String("string"),
    								},
    							},
    							Type: pulumi.String("string"),
    						},
    						RenameHeaders: &apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersArgs{
    							Items: apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersItemArray{
    								&apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersItemArgs{
    									From: pulumi.String("string"),
    									To:   pulumi.String("string"),
    								},
    							},
    						},
    						SetHeaders: &apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersArgs{
    							Items: apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersItemArray{
    								&apigateway.DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersItemArgs{
    									Name: pulumi.String("string"),
    									Values: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IfExists: pulumi.String("string"),
    								},
    							},
    						},
    					},
    					ResponseCacheStore: &apigateway.DeploymentSpecificationRouteResponsePoliciesResponseCacheStoreArgs{
    						TimeToLiveInSeconds: pulumi.Int(0),
    						Type:                pulumi.String("string"),
    					},
    				},
    			},
    		},
    		LoggingPolicies: &apigateway.DeploymentSpecificationLoggingPoliciesArgs{
    			AccessLog: &apigateway.DeploymentSpecificationLoggingPoliciesAccessLogArgs{
    				IsEnabled: pulumi.Bool(false),
    			},
    			ExecutionLog: &apigateway.DeploymentSpecificationLoggingPoliciesExecutionLogArgs{
    				IsEnabled: pulumi.Bool(false),
    				LogLevel:  pulumi.String("string"),
    			},
    		},
    		RequestPolicies: &apigateway.DeploymentSpecificationRequestPoliciesArgs{
    			Authentication: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationArgs{
    				Type: pulumi.String("string"),
    				Parameters: pulumi.StringMap{
    					"string": pulumi.String("string"),
    				},
    				TokenAuthScheme:          pulumi.String("string"),
    				IsAnonymousAccessAllowed: pulumi.Bool(false),
    				Issuers: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				MaxClockSkewInSeconds: pulumi.Float64(0),
    				Audiences: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				PublicKeys: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysArgs{
    					Type:                pulumi.String("string"),
    					IsSslVerifyDisabled: pulumi.Bool(false),
    					Keys: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeyArray{
    						&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationPublicKeysKeyArgs{
    							Format: pulumi.String("string"),
    							Alg:    pulumi.String("string"),
    							E:      pulumi.String("string"),
    							Key:    pulumi.String("string"),
    							KeyOps: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							Kid: pulumi.String("string"),
    							Kty: pulumi.String("string"),
    							N:   pulumi.String("string"),
    							Use: pulumi.String("string"),
    						},
    					},
    					MaxCacheDurationInHours: pulumi.Int(0),
    					Uri:                     pulumi.String("string"),
    				},
    				FunctionId:      pulumi.String("string"),
    				TokenHeader:     pulumi.String("string"),
    				TokenQueryParam: pulumi.String("string"),
    				CacheKeys: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				ValidationFailurePolicy: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyArgs{
    					Type:                     pulumi.String("string"),
    					ResponseMessage:          pulumi.String("string"),
    					LogoutPath:               pulumi.String("string"),
    					MaxExpiryDurationInHours: pulumi.Int(0),
    					ResponseCode:             pulumi.String("string"),
    					ResponseHeaderTransformations: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsArgs{
    						FilterHeaders: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs{
    							Items: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArray{
    								&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs{
    									Name: pulumi.String("string"),
    								},
    							},
    							Type: pulumi.String("string"),
    						},
    						RenameHeaders: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs{
    							Items: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArray{
    								&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs{
    									From: pulumi.String("string"),
    									To:   pulumi.String("string"),
    								},
    							},
    						},
    						SetHeaders: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs{
    							Items: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArray{
    								&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs{
    									IfExists: pulumi.String("string"),
    									Name:     pulumi.String("string"),
    									Values: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    					},
    					ClientDetails: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicyClientDetailsArgs{
    						Type:                      pulumi.String("string"),
    						ClientId:                  pulumi.String("string"),
    						ClientSecretId:            pulumi.String("string"),
    						ClientSecretVersionNumber: pulumi.String("string"),
    					},
    					ResponseType: pulumi.String("string"),
    					Scopes: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					SourceUriDetails: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationFailurePolicySourceUriDetailsArgs{
    						Type: pulumi.String("string"),
    						Uri:  pulumi.String("string"),
    					},
    					FallbackRedirectPath:           pulumi.String("string"),
    					UseCookiesForIntermediateSteps: pulumi.Bool(false),
    					UseCookiesForSession:           pulumi.Bool(false),
    					UsePkce:                        pulumi.Bool(false),
    				},
    				ValidationPolicy: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyArgs{
    					Type: pulumi.String("string"),
    					AdditionalValidationPolicy: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyArgs{
    						Audiences: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						Issuers: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						VerifyClaims: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimArray{
    							&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyAdditionalValidationPolicyVerifyClaimArgs{
    								IsRequired: pulumi.Bool(false),
    								Key:        pulumi.String("string"),
    								Values: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    						},
    					},
    					ClientDetails: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyClientDetailsArgs{
    						Type:                      pulumi.String("string"),
    						ClientId:                  pulumi.String("string"),
    						ClientSecretId:            pulumi.String("string"),
    						ClientSecretVersionNumber: pulumi.String("string"),
    					},
    					IsSslVerifyDisabled: pulumi.Bool(false),
    					Keys: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeyArray{
    						&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicyKeyArgs{
    							Format: pulumi.String("string"),
    							Alg:    pulumi.String("string"),
    							E:      pulumi.String("string"),
    							Key:    pulumi.String("string"),
    							KeyOps: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							Kid: pulumi.String("string"),
    							Kty: pulumi.String("string"),
    							N:   pulumi.String("string"),
    							Use: pulumi.String("string"),
    						},
    					},
    					MaxCacheDurationInHours: pulumi.Int(0),
    					SourceUriDetails: &apigateway.DeploymentSpecificationRequestPoliciesAuthenticationValidationPolicySourceUriDetailsArgs{
    						Type: pulumi.String("string"),
    						Uri:  pulumi.String("string"),
    					},
    					Uri: pulumi.String("string"),
    				},
    				VerifyClaims: apigateway.DeploymentSpecificationRequestPoliciesAuthenticationVerifyClaimArray{
    					&apigateway.DeploymentSpecificationRequestPoliciesAuthenticationVerifyClaimArgs{
    						IsRequired: pulumi.Bool(false),
    						Key:        pulumi.String("string"),
    						Values: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    				},
    			},
    			Cors: &apigateway.DeploymentSpecificationRequestPoliciesCorsArgs{
    				AllowedOrigins: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				AllowedHeaders: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				AllowedMethods: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				ExposedHeaders: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				IsAllowCredentialsEnabled: pulumi.Bool(false),
    				MaxAgeInSeconds:           pulumi.Int(0),
    			},
    			DynamicAuthentication: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationArgs{
    				AuthenticationServers: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerArray{
    					&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerArgs{
    						AuthenticationServerDetail: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailArgs{
    							Type: pulumi.String("string"),
    							Parameters: pulumi.StringMap{
    								"string": pulumi.String("string"),
    							},
    							TokenAuthScheme:          pulumi.String("string"),
    							IsAnonymousAccessAllowed: pulumi.Bool(false),
    							Issuers: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							MaxClockSkewInSeconds: pulumi.Float64(0),
    							Audiences: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							PublicKeys: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysArgs{
    								Type:                pulumi.String("string"),
    								IsSslVerifyDisabled: pulumi.Bool(false),
    								Keys: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysKeyArray{
    									&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailPublicKeysKeyArgs{
    										Format: pulumi.String("string"),
    										Alg:    pulumi.String("string"),
    										E:      pulumi.String("string"),
    										Key:    pulumi.String("string"),
    										KeyOps: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    										Kid: pulumi.String("string"),
    										Kty: pulumi.String("string"),
    										N:   pulumi.String("string"),
    										Use: pulumi.String("string"),
    									},
    								},
    								MaxCacheDurationInHours: pulumi.Int(0),
    								Uri:                     pulumi.String("string"),
    							},
    							FunctionId:      pulumi.String("string"),
    							TokenHeader:     pulumi.String("string"),
    							TokenQueryParam: pulumi.String("string"),
    							CacheKeys: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							ValidationFailurePolicy: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyArgs{
    								Type:                     pulumi.String("string"),
    								ResponseMessage:          pulumi.String("string"),
    								LogoutPath:               pulumi.String("string"),
    								MaxExpiryDurationInHours: pulumi.Int(0),
    								ResponseCode:             pulumi.String("string"),
    								ResponseHeaderTransformations: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsArgs{
    									FilterHeaders: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersArgs{
    										Items: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArray{
    											&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsFilterHeadersItemArgs{
    												Name: pulumi.String("string"),
    											},
    										},
    										Type: pulumi.String("string"),
    									},
    									RenameHeaders: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersArgs{
    										Items: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArray{
    											&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsRenameHeadersItemArgs{
    												From: pulumi.String("string"),
    												To:   pulumi.String("string"),
    											},
    										},
    									},
    									SetHeaders: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersArgs{
    										Items: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArray{
    											&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyResponseHeaderTransformationsSetHeadersItemArgs{
    												IfExists: pulumi.String("string"),
    												Name:     pulumi.String("string"),
    												Values: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    										},
    									},
    								},
    								ClientDetails: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicyClientDetailsArgs{
    									Type:                      pulumi.String("string"),
    									ClientId:                  pulumi.String("string"),
    									ClientSecretId:            pulumi.String("string"),
    									ClientSecretVersionNumber: pulumi.String("string"),
    								},
    								ResponseType: pulumi.String("string"),
    								Scopes: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								SourceUriDetails: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationFailurePolicySourceUriDetailsArgs{
    									Type: pulumi.String("string"),
    									Uri:  pulumi.String("string"),
    								},
    								FallbackRedirectPath:           pulumi.String("string"),
    								UseCookiesForIntermediateSteps: pulumi.Bool(false),
    								UseCookiesForSession:           pulumi.Bool(false),
    								UsePkce:                        pulumi.Bool(false),
    							},
    							ValidationPolicy: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyArgs{
    								Type: pulumi.String("string"),
    								AdditionalValidationPolicy: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyArgs{
    									Audiences: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									Issuers: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									VerifyClaims: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimArray{
    										&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyAdditionalValidationPolicyVerifyClaimArgs{
    											IsRequired: pulumi.Bool(false),
    											Key:        pulumi.String("string"),
    											Values: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								ClientDetails: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyClientDetailsArgs{
    									Type:                      pulumi.String("string"),
    									ClientId:                  pulumi.String("string"),
    									ClientSecretId:            pulumi.String("string"),
    									ClientSecretVersionNumber: pulumi.String("string"),
    								},
    								IsSslVerifyDisabled: pulumi.Bool(false),
    								Keys: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyKeyArray{
    									&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicyKeyArgs{
    										Format: pulumi.String("string"),
    										Alg:    pulumi.String("string"),
    										E:      pulumi.String("string"),
    										Key:    pulumi.String("string"),
    										KeyOps: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    										Kid: pulumi.String("string"),
    										Kty: pulumi.String("string"),
    										N:   pulumi.String("string"),
    										Use: pulumi.String("string"),
    									},
    								},
    								MaxCacheDurationInHours: pulumi.Int(0),
    								SourceUriDetails: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailValidationPolicySourceUriDetailsArgs{
    									Type: pulumi.String("string"),
    									Uri:  pulumi.String("string"),
    								},
    								Uri: pulumi.String("string"),
    							},
    							VerifyClaims: apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailVerifyClaimArray{
    								&apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerAuthenticationServerDetailVerifyClaimArgs{
    									IsRequired: pulumi.Bool(false),
    									Key:        pulumi.String("string"),
    									Values: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Key: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationAuthenticationServerKeyArgs{
    							Name:       pulumi.String("string"),
    							Expression: pulumi.String("string"),
    							IsDefault:  pulumi.Bool(false),
    							Type:       pulumi.String("string"),
    							Values: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				SelectionSource: &apigateway.DeploymentSpecificationRequestPoliciesDynamicAuthenticationSelectionSourceArgs{
    					Selector: pulumi.String("string"),
    					Type:     pulumi.String("string"),
    				},
    			},
    			MutualTls: &apigateway.DeploymentSpecificationRequestPoliciesMutualTlsArgs{
    				AllowedSans: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				IsVerifiedCertificateRequired: pulumi.Bool(false),
    			},
    			RateLimiting: &apigateway.DeploymentSpecificationRequestPoliciesRateLimitingArgs{
    				RateInRequestsPerSecond: pulumi.Int(0),
    				RateKey:                 pulumi.String("string"),
    			},
    			UsagePlans: &apigateway.DeploymentSpecificationRequestPoliciesUsagePlansArgs{
    				TokenLocations: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    		},
    	},
    	DefinedTags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	DisplayName: pulumi.String("string"),
    	FreeformTags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    })
    
    var deploymentResource = new Deployment("deploymentResource", DeploymentArgs.builder()
        .compartmentId("string")
        .gatewayId("string")
        .pathPrefix("string")
        .specification(DeploymentSpecificationArgs.builder()
            .routes(DeploymentSpecificationRouteArgs.builder()
                .backend(DeploymentSpecificationRouteBackendArgs.builder()
                    .type("string")
                    .postLogoutState("string")
                    .connectTimeoutInSeconds(0)
                    .functionId("string")
                    .headers(DeploymentSpecificationRouteBackendHeaderArgs.builder()
                        .name("string")
                        .value("string")
                        .build())
                    .isSslVerifyDisabled(false)
                    .allowedPostLogoutUris("string")
                    .readTimeoutInSeconds(0)
                    .routingBackends(DeploymentSpecificationRouteBackendRoutingBackendArgs.builder()
                        .backend(DeploymentSpecificationRouteBackendRoutingBackendBackendArgs.builder()
                            .type("string")
                            .body("string")
                            .connectTimeoutInSeconds(0)
                            .functionId("string")
                            .headers(DeploymentSpecificationRouteBackendRoutingBackendBackendHeaderArgs.builder()
                                .name("string")
                                .value("string")
                                .build())
                            .isSslVerifyDisabled(false)
                            .readTimeoutInSeconds(0)
                            .sendTimeoutInSeconds(0)
                            .status(0)
                            .url("string")
                            .build())
                        .key(DeploymentSpecificationRouteBackendRoutingBackendKeyArgs.builder()
                            .name("string")
                            .type("string")
                            .expression("string")
                            .isDefault(false)
                            .values("string")
                            .build())
                        .build())
                    .selectionSource(DeploymentSpecificationRouteBackendSelectionSourceArgs.builder()
                        .selector("string")
                        .type("string")
                        .build())
                    .sendTimeoutInSeconds(0)
                    .status(0)
                    .body("string")
                    .url("string")
                    .build())
                .path("string")
                .loggingPolicies(DeploymentSpecificationRouteLoggingPoliciesArgs.builder()
                    .accessLog(DeploymentSpecificationRouteLoggingPoliciesAccessLogArgs.builder()
                        .isEnabled(false)
                        .build())
                    .executionLog(DeploymentSpecificationRouteLoggingPoliciesExecutionLogArgs.builder()
                        .isEnabled(false)
                        .logLevel("string")
                        .build())
                    .build())
                .methods("string")
                .requestPolicies(DeploymentSpecificationRouteRequestPoliciesArgs.builder()
                    .authorization(DeploymentSpecificationRouteRequestPoliciesAuthorizationArgs.builder()
                        .allowedScopes("string")
                        .type("string")
                        .build())
                    .bodyValidation(DeploymentSpecificationRouteRequestPoliciesBodyValidationArgs.builder()
                        .contents(DeploymentSpecificationRouteRequestPoliciesBodyValidationContentArgs.builder()
                            .mediaType("string")
                            .validationType("string")
                            .build())
                        .required(false)
                        .validationMode("string")
                        .build())
                    .cors(DeploymentSpecificationRouteRequestPoliciesCorsArgs.builder()
                        .allowedOrigins("string")
                        .allowedHeaders("string")
                        .allowedMethods("string")
                        .exposedHeaders("string")
                        .isAllowCredentialsEnabled(false)
                        .maxAgeInSeconds(0)
                        .build())
                    .headerTransformations(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsArgs.builder()
                        .filterHeaders(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersArgs.builder()
                            .items(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsFilterHeadersItemArgs.builder()
                                .name("string")
                                .build())
                            .type("string")
                            .build())
                        .renameHeaders(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersArgs.builder()
                            .items(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsRenameHeadersItemArgs.builder()
                                .from("string")
                                .to("string")
                                .build())
                            .build())
                        .setHeaders(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersArgs.builder()
                            .items(DeploymentSpecificationRouteRequestPoliciesHeaderTransformationsSetHeadersItemArgs.builder()
                                .name("string")
                                .values("string")
                                .ifExists("string")
                                .build())
                            .build())
                        .build())
                    .headerValidations(DeploymentSpecificationRouteRequestPoliciesHeaderValidationsArgs.builder()
                        .headers(DeploymentSpecificationRouteRequestPoliciesHeaderValidationsHeaderArgs.builder()
                            .name("string")
                            .required(false)
                            .build())
                        .validationMode("string")
                        .build())
                    .queryParameterTransformations(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsArgs.builder()
                        .filterQueryParameters(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersArgs.builder()
                            .items(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsFilterQueryParametersItemArgs.builder()
                                .name("string")
                                .build())
                            .type("string")
                            .build())
                        .renameQueryParameters(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersArgs.builder()
                            .items(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsRenameQueryParametersItemArgs.builder()
                                .from("string")
                                .to("string")
                                .build())
                            .build())
                        .setQueryParameters(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersArgs.builder()
                            .items(DeploymentSpecificationRouteRequestPoliciesQueryParameterTransformationsSetQueryParametersItemArgs.builder()
                                .name("string")
                                .values("string")
                                .ifExists("string")
                                .build())
                            .build())
                        .build())
                    .queryParameterValidations(DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsArgs.builder()
                        .parameters(DeploymentSpecificationRouteRequestPoliciesQueryParameterValidationsParameterArgs.builder()
                            .name("string")
                            .required(false)
                            .build())
                        .validationMode("string")
                        .build())
                    .responseCacheLookup(DeploymentSpecificationRouteRequestPoliciesResponseCacheLookupArgs.builder()
                        .type("string")
                        .cacheKeyAdditions("string")
                        .isEnabled(false)
                        .isPrivateCachingEnabled(false)
                        .build())
                    .build())
                .responsePolicies(DeploymentSpecificationRouteResponsePoliciesArgs.builder()
                    .headerTransformations(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsArgs.builder()
                        .filterHeaders(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersArgs.builder()
                            .items(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsFilterHeadersItemArgs.builder()
                                .name("string")
                                .build())
                            .type("string")
                            .build())
                        .renameHeaders(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersArgs.builder()
                            .items(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsRenameHeadersItemArgs.builder()
                                .from("string")
                                .to("string")
                                .build())
                            .build())
                        .setHeaders(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersArgs.builder()
                            .items(DeploymentSpecificationRouteResponsePoliciesHeaderTransformationsSetHeadersItemArgs.builder()
                                .name("string")
                                .values("string")
                                .ifExists("string")
                                .build())
                            .build())
                        .build())
                    .responseCacheStore(DeploymentSpecificationRouteResponsePoliciesResponseCacheStoreArgs.builder()
                        .timeToLiveInSeconds(0)
                        .type("string")
                        .build())
                    .build())
                .build())
            .loggingPolicies(DeploymentSpecificationLoggingPoliciesArgs.builder()
                .accessLog(DeploymentSpecificationLoggingPoliciesAccessLogArgs.builder()
                    .isEnabled(false)
                    .build())
                .executionLog(DeploymentSpecificationLoggingPoliciesExecutionLogArgs.builder()
                    .isEnabled(false)
                    .logLevel("string")
                    .build())
                .build())
            .requestPolicies(DeploymentSpecificationRequestPoliciesArgs.builder()
                .authentication(DeploymentSpecificationRequestPoliciesAuthenticationArgs.builder()
                    .type("string")
                    .parameters(Map.of("string", "string"))
                    .tokenAuthScheme("string")
                    .isAnonymousAccessAllowed(false)
                    .issuers("string")
                    .maxClockSkewInSeconds(0)
                    .audiences