# This is an automatically generated code sample.
# To make this code sample work in your Oracle Cloud tenancy,
# please replace the values for any parameters whose current values do not fit
# your use case (such as resource IDs, strings containing ‘EXAMPLE’ or ‘unique_id’, and
# boolean, number, and enum parameters with values not fitting your use case).
require 'oci'
# Create a default config using DEFAULT profile in default location
# Refer to https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File for more info
config = OCI::ConfigFileLoader.load_config
# Initialize service client with default config file
apigateway_client = OCI::Apigateway::DeploymentClient.new(config: config)
# Send the request to service, some parameters are not required, see API doc for more info
create_deployment_response =
apigateway_client.create_deployment(
OCI::Apigateway::Models::CreateDeploymentDetails.new(
gateway_id: 'ocid1.test.oc1..<unique_ID>EXAMPLE-gatewayId-Value',
compartment_id: 'ocid1.test.oc1..<unique_ID>EXAMPLE-compartmentId-Value',
path_prefix: 'EXAMPLE-pathPrefix-Value',
specification:
OCI::Apigateway::Models::ApiSpecification.new(
request_policies:
OCI::Apigateway::Models::ApiSpecificationRequestPolicies.new(
authentication:
OCI::Apigateway::Models::CustomAuthenticationPolicy.new(
type: 'CUSTOM_AUTHENTICATION',
function_id:
'ocid1.test.oc1..<unique_ID>EXAMPLE-functionId-Value',
is_anonymous_access_allowed: false,
token_header: 'EXAMPLE-tokenHeader-Value',
token_query_param: 'EXAMPLE-tokenQueryParam-Value',
parameters: {
'EXAMPLE_KEY_50eSm' => 'EXAMPLE_VALUE_jnMq2pSyHgQcLGD3blja'
},
cache_key: %w[EXAMPLE--Value],
validation_failure_policy:
OCI::Apigateway::Models::ModifyResponseValidationFailurePolicy
.new(
type: 'MODIFY_RESPONSE',
response_code: 'EXAMPLE-responseCode-Value',
response_message: 'EXAMPLE-responseMessage-Value',
response_header_transformations:
OCI::Apigateway::Models::HeaderTransformationPolicy.new(
set_headers:
OCI::Apigateway::Models::SetHeaderPolicy.new(
items: [
OCI::Apigateway::Models::SetHeaderPolicyItem
.new(
name: 'EXAMPLE-name-Value',
values: %w[EXAMPLE--Value],
if_exists: 'APPEND'
)
]
),
rename_headers:
OCI::Apigateway::Models::RenameHeaderPolicy.new(
items: [
OCI::Apigateway::Models::RenameHeaderPolicyItem
.new(
_from: 'EXAMPLE-from-Value',
to: 'EXAMPLE-to-Value'
)
]
),
filter_headers:
OCI::Apigateway::Models::FilterHeaderPolicy.new(
type: 'ALLOW',
items: [
OCI::Apigateway::Models::FilterHeaderPolicyItem
.new(name: 'EXAMPLE-name-Value')
]
)
)
)
),
rate_limiting:
OCI::Apigateway::Models::RateLimitingPolicy.new(
rate_in_requests_per_second: 715, rate_key: 'TOTAL'
),
cors:
OCI::Apigateway::Models::CorsPolicy.new(
allowed_origins: %w[EXAMPLE--Value],
allowed_methods: %w[EXAMPLE--Value],
allowed_headers: %w[EXAMPLE--Value],
exposed_headers: %w[EXAMPLE--Value],
is_allow_credentials_enabled: false,
max_age_in_seconds: 672
),
mutual_tls:
OCI::Apigateway::Models::MutualTlsDetails.new(
is_verified_certificate_required: true,
allowed_sans: %w[EXAMPLE--Value]
),
usage_plans:
OCI::Apigateway::Models::UsagePlansPolicy.new(
token_locations: %w[EXAMPLE--Value]
),
dynamic_authentication:
OCI::Apigateway::Models::DynamicAuthenticationPolicy.new(
selection_source:
OCI::Apigateway::Models::SingleSelectionSourcePolicy.new(
type: 'SINGLE', selector: 'EXAMPLE-selector-Value'
),
authentication_servers: [
OCI::Apigateway::Models::AuthenticationServerPolicy.new(
key:
OCI::Apigateway::Models::AnyOfSelectionKey.new(
type: 'ANY_OF',
name: 'EXAMPLE-name-Value',
is_default: true,
values: %w[EXAMPLE--Value]
),
authentication_server_detail:
OCI::Apigateway::Models::TokenAuthenticationPolicy.new(
type: 'TOKEN_AUTHENTICATION',
validation_policy:
OCI::Apigateway::Models::TokenAuthenticationRemoteDiscoveryValidationPolicy
.new(
type: 'REMOTE_DISCOVERY',
client_details:
OCI::Apigateway::Models::CustomClientAppDetails
.new(
type: 'CUSTOM',
client_id:
'ocid1.test.oc1..<unique_ID>EXAMPLE-clientId-Value',
client_secret_id:
'ocid1.test.oc1..<unique_ID>EXAMPLE-clientSecretId-Value',
client_secret_version_number: 186
),
source_uri_details:
OCI::Apigateway::Models::DiscoveryUriSourceUriDetails
.new(
type: 'DISCOVERY_URI',
uri: 'EXAMPLE-uri-Value'
),
additional_validation_policy:
OCI::Apigateway::Models::AdditionalValidationPolicy
.new(
issuers: %w[EXAMPLE--Value],
audiences: %w[EXAMPLE--Value],
verify_claims: [
OCI::Apigateway::Models::JsonWebTokenClaim
.new(
key: 'EXAMPLE-key-Value',
values: %w[EXAMPLE--Value],
is_required: true
)
]
),
is_ssl_verify_disabled: true,
max_cache_duration_in_hours: 7
),
is_anonymous_access_allowed: false,
token_header: 'EXAMPLE-tokenHeader-Value',
token_query_param: 'EXAMPLE-tokenQueryParam-Value',
token_auth_scheme: 'EXAMPLE-tokenAuthScheme-Value',
max_clock_skew_in_seconds: 11.320946,
validation_failure_policy:
OCI::Apigateway::Models::OAuth2ResponseValidationFailurePolicy
.new(
type: 'OAUTH2',
client_details:
OCI::Apigateway::Models::CustomClientAppDetails
.new(
type: 'CUSTOM',
client_id:
'ocid1.test.oc1..<unique_ID>EXAMPLE-clientId-Value',
client_secret_id:
'ocid1.test.oc1..<unique_ID>EXAMPLE-clientSecretId-Value',
client_secret_version_number: 832
),
source_uri_details:
OCI::Apigateway::Models::ValidationBlockSourceUriDetails
.new(type: 'VALIDATION_BLOCK'),
scopes: %w[EXAMPLE--Value],
response_type: 'CODE',
max_expiry_duration_in_hours: 16,
use_cookies_for_session: false,
use_cookies_for_intermediate_steps: true,
use_pkce: false,
fallback_redirect_path:
'EXAMPLE-fallbackRedirectPath-Value',
logout_path: 'EXAMPLE-logoutPath-Value'
)
)
)
]
)
),
logging_policies:
OCI::Apigateway::Models::ApiSpecificationLoggingPolicies.new(
access_log:
OCI::Apigateway::Models::AccessLogPolicy.new(is_enabled: false),
execution_log:
OCI::Apigateway::Models::ExecutionLogPolicy.new(
is_enabled: false, log_level: 'WARN'
)
),
routes: [
OCI::Apigateway::Models::ApiSpecificationRoute.new(
path: 'EXAMPLE-path-Value',
backend:
OCI::Apigateway::Models::OracleFunctionBackend.new(
type: 'ORACLE_FUNCTIONS_BACKEND',
function_id:
'ocid1.test.oc1..<unique_ID>EXAMPLE-functionId-Value'
),
methods: %w[HEAD],
request_policies:
OCI::Apigateway::Models::ApiSpecificationRouteRequestPolicies
.new(
authorization:
OCI::Apigateway::Models::AnyOfRouteAuthorizationPolicy.new(
type: 'ANY_OF', allowed_scope: %w[EXAMPLE--Value]
),
cors:
OCI::Apigateway::Models::CorsPolicy.new(
allowed_origins: %w[EXAMPLE--Value],
allowed_methods: %w[EXAMPLE--Value],
allowed_headers: %w[EXAMPLE--Value],
exposed_headers: %w[EXAMPLE--Value],
is_allow_credentials_enabled: true,
max_age_in_seconds: 239
),
query_parameter_validations:
OCI::Apigateway::Models::QueryParameterValidationRequestPolicy
.new(
parameters: [
OCI::Apigateway::Models::QueryParameterValidationItem
.new(name: 'EXAMPLE-name-Value', required: true)
],
validation_mode: 'ENFORCING'
),
header_validations:
OCI::Apigateway::Models::HeaderValidationRequestPolicy.new(
headers: [
OCI::Apigateway::Models::HeaderValidationItem.new(
name: 'EXAMPLE-name-Value', required: false
)
],
validation_mode: 'DISABLED'
),
body_validation:
OCI::Apigateway::Models::BodyValidationRequestPolicy.new(
content: {
'EXAMPLE_KEY_V7Ou5' => { 'validationType' => 'NONE' }
},
required: true,
validation_mode: 'DISABLED'
),
header_transformations:
OCI::Apigateway::Models::HeaderTransformationPolicy.new(
set_headers:
OCI::Apigateway::Models::SetHeaderPolicy.new(
items: [
OCI::Apigateway::Models::SetHeaderPolicyItem.new(
name: 'EXAMPLE-name-Value',
values: %w[EXAMPLE--Value],
if_exists: 'SKIP'
)
]
),
rename_headers:
OCI::Apigateway::Models::RenameHeaderPolicy.new(
items: [
OCI::Apigateway::Models::RenameHeaderPolicyItem.new(
_from: 'EXAMPLE-from-Value',
to: 'EXAMPLE-to-Value'
)
]
),
filter_headers:
OCI::Apigateway::Models::FilterHeaderPolicy.new(
type: 'BLOCK',
items: [
OCI::Apigateway::Models::FilterHeaderPolicyItem.new(
name: 'EXAMPLE-name-Value'
)
]
)
),
query_parameter_transformations:
OCI::Apigateway::Models::QueryParameterTransformationPolicy
.new(
set_query_parameters:
OCI::Apigateway::Models::SetQueryParameterPolicy.new(
items: [
OCI::Apigateway::Models::SetQueryParameterPolicyItem
.new(
name: 'EXAMPLE-name-Value',
values: %w[EXAMPLE--Value],
if_exists: 'APPEND'
)
]
),
rename_query_parameters:
OCI::Apigateway::Models::RenameQueryParameterPolicy.new(
items: [
OCI::Apigateway::Models::RenameQueryParameterPolicyItem
.new(
_from: 'EXAMPLE-from-Value',
to: 'EXAMPLE-to-Value'
)
]
),
filter_query_parameters:
OCI::Apigateway::Models::FilterQueryParameterPolicy.new(
type: 'BLOCK',
items: [
OCI::Apigateway::Models::FilterQueryParameterPolicyItem
.new(name: 'EXAMPLE-name-Value')
]
)
),
response_cache_lookup:
OCI::Apigateway::Models::SimpleLookupPolicy.new(
type: 'SIMPLE_LOOKUP_POLICY',
is_enabled: true,
is_private_caching_enabled: false,
cache_key_additions: %w[EXAMPLE--Value]
)
),
response_policies:
OCI::Apigateway::Models::ApiSpecificationRouteResponsePolicies
.new(
header_transformations:
OCI::Apigateway::Models::HeaderTransformationPolicy.new(
set_headers:
OCI::Apigateway::Models::SetHeaderPolicy.new(
items: [
OCI::Apigateway::Models::SetHeaderPolicyItem.new(
name: 'EXAMPLE-name-Value',
values: %w[EXAMPLE--Value],
if_exists: 'APPEND'
)
]
),
rename_headers:
OCI::Apigateway::Models::RenameHeaderPolicy.new(
items: [
OCI::Apigateway::Models::RenameHeaderPolicyItem.new(
_from: 'EXAMPLE-from-Value',
to: 'EXAMPLE-to-Value'
)
]
),
filter_headers:
OCI::Apigateway::Models::FilterHeaderPolicy.new(
type: 'BLOCK',
items: [
OCI::Apigateway::Models::FilterHeaderPolicyItem.new(
name: 'EXAMPLE-name-Value'
)
]
)
),
response_cache_store:
OCI::Apigateway::Models::FixedTTLResponseCacheStorePolicy
.new(
type: 'FIXED_TTL_STORE_POLICY',
time_to_live_in_seconds: 569
)
),
logging_policies:
OCI::Apigateway::Models::ApiSpecificationLoggingPolicies.new(
access_log:
OCI::Apigateway::Models::AccessLogPolicy.new(
is_enabled: true
),
execution_log:
OCI::Apigateway::Models::ExecutionLogPolicy.new(
is_enabled: true, log_level: 'WARN'
)
)
)
]
),
display_name: 'EXAMPLE-displayName-Value',
freeform_tags: {
'EXAMPLE_KEY_rzGsk' => 'EXAMPLE_VALUE_aByW2bm6yVLAHwPFiv0D'
},
defined_tags: {
'EXAMPLE_KEY_nczAZ' => { 'EXAMPLE_KEY_SQRyB' => 'EXAMPLE--Value' }
}
)
)
# Get the data from response
puts "#{create_deployment_response.data}"