oracle.oci.oci_apigateway_deployment – Manage a Deployment resource in Oracle Cloud Infrastructure

Note

This plugin is part of the oracle.oci collection (version 4.11.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install oracle.oci.

To use it in a playbook, specify: oracle.oci.oci_apigateway_deployment.

New in version 2.9.0: of oracle.oci

Synopsis

  • This module allows the user to create, update and delete a Deployment resource in Oracle Cloud Infrastructure

  • For state=present, creates a new deployment.

  • This resource has the following action operations in the oracle.oci.oci_apigateway_deployment_actions module: change_compartment.

Requirements

The below requirements are needed on the host that executes this module.

Parameters

Parameter Choices/Defaults Comments
api_user
string
The OCID of the user, on whose behalf, OCI APIs are invoked. If not set, then the value of the OCI_USER_ID environment variable, if any, is used. This option is required if the user is not specified through a configuration file (See config_file_location). To get the user's OCID, please refer https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm.
api_user_fingerprint
string
Fingerprint for the key pair being used. If not set, then the value of the OCI_USER_FINGERPRINT environment variable, if any, is used. This option is required if the key fingerprint is not specified through a configuration file (See config_file_location). To get the key pair's fingerprint value please refer https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm.
api_user_key_file
string
Full path and filename of the private key (in PEM format). If not set, then the value of the OCI_USER_KEY_FILE variable, if any, is used. This option is required if the private key is not specified through a configuration file (See config_file_location). If the key is encrypted with a pass-phrase, the api_user_key_pass_phrase option must also be provided.
api_user_key_pass_phrase
string
Passphrase used by the key referenced in api_user_key_file, if it is encrypted. If not set, then the value of the OCI_USER_KEY_PASS_PHRASE variable, if any, is used. This option is required if the key passphrase is not specified through a configuration file (See config_file_location).
auth_purpose
string
    Choices:
  • service_principal
The auth purpose which can be used in conjunction with 'auth_type=instance_principal'. The default auth_purpose for instance_principal is None.
auth_type
string
    Choices:
  • api_key ←
  • instance_principal
  • instance_obo_user
  • resource_principal
The type of authentication to use for making API requests. By default auth_type="api_key" based authentication is performed and the API key (see api_user_key_file) in your config file will be used. If this 'auth_type' module option is not specified, the value of the OCI_ANSIBLE_AUTH_TYPE, if any, is used. Use auth_type="instance_principal" to use instance principal based authentication when running ansible playbooks within an OCI compute instance.
cert_bundle
string
The full path to a CA certificate bundle to be used for SSL verification. This will override the default CA certificate bundle. If not set, then the value of the OCI_ANSIBLE_CERT_BUNDLE variable, if any, is used.
compartment_id
string
The OCID of the compartment in which the resource is created.
Required for create using state=present.
Required for update when environment variable OCI_USE_NAME_AS_IDENTIFIER is set.
Required for delete when environment variable OCI_USE_NAME_AS_IDENTIFIER is set.
config_file_location
string
Path to configuration file. If not set then the value of the OCI_CONFIG_FILE environment variable, if any, is used. Otherwise, defaults to ~/.oci/config.
config_profile_name
string
The profile to load from the config file referenced by config_file_location. If not set, then the value of the OCI_CONFIG_PROFILE environment variable, if any, is used. Otherwise, defaults to the "DEFAULT" profile in config_file_location.
defined_tags
dictionary
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags.
Example: `{"Operations": {"CostCenter": "42"}}`
This parameter is updatable.
deployment_id
string
The ocid of the deployment.
Required for update using state=present when environment variable OCI_USE_NAME_AS_IDENTIFIER is not set.
Required for delete using state=absent when environment variable OCI_USE_NAME_AS_IDENTIFIER is not set.

aliases: id
display_name
string
A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
Example: `My new resource`
Required for create, update, delete when environment variable OCI_USE_NAME_AS_IDENTIFIER is set.
This parameter is updatable when OCI_USE_NAME_AS_IDENTIFIER is not set.

aliases: name
force_create
boolean
    Choices:
  • no ←
  • yes
Whether to attempt non-idempotent creation of a resource. By default, create resource is an idempotent operation, and doesn't create the resource if it already exists. Setting this option to true, forcefully creates a copy of the resource, even if it already exists.This option is mutually exclusive with key_by.
freeform_tags
dictionary
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags.
Example: `{"Department": "Finance"}`
This parameter is updatable.
gateway_id
string
The OCID of the resource.
Required for create using state=present.
key_by
list / elements=string
The list of attributes of this resource which should be used to uniquely identify an instance of the resource. By default, all the attributes of a resource are used to uniquely identify a resource.
path_prefix
string
A path on which to deploy all routes contained in the API deployment specification. For more information, see Deploying an API on an API Gateway by Creating an API Deployment.
Required for create using state=present.
region
string
The Oracle Cloud Infrastructure region to use for all OCI API requests. If not set, then the value of the OCI_REGION variable, if any, is used. This option is required if the region is not specified through a configuration file (See config_file_location). Please refer to https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/regions.htm for more information on OCI regions.
specification
dictionary
Required for create using state=present.
This parameter is updatable.
logging_policies
dictionary
access_log
dictionary
is_enabled
boolean
    Choices:
  • no
  • yes
Enables pushing of access logs to the legacy OCI Object Storage log archival bucket.
Oracle recommends using the OCI Logging service to enable, retrieve, and query access logs for an API Deployment. If there is an active log object for the API Deployment and its category is set to 'access' in OCI Logging service, the logs will not be uploaded to the legacy OCI Object Storage log archival bucket.
Please note that the functionality to push to the legacy OCI Object Storage log archival bucket has been deprecated and will be removed in the future.
execution_log
dictionary
is_enabled
boolean
    Choices:
  • no
  • yes
Enables pushing of execution logs to the legacy OCI Object Storage log archival bucket.
Oracle recommends using the OCI Logging service to enable, retrieve, and query execution logs for an API Deployment. If there is an active log object for the API Deployment and its category is set to 'execution' in OCI Logging service, the logs will not be uploaded to the legacy OCI Object Storage log archival bucket.
Please note that the functionality to push to the legacy OCI Object Storage log archival bucket has been deprecated and will be removed in the future.
log_level
string
    Choices:
  • INFO
  • WARN
  • ERROR
Specifies the log level used to control logging output of execution logs. Enabling logging at a given level also enables logging at all higher levels.
request_policies
dictionary
authentication
dictionary
audiences
list / elements=string
The list of intended recipients for the token.
Required when type is 'JWT_AUTHENTICATION'
cache_key
list / elements=string
A list of keys from "parameters" attribute value whose values will be added to the cache key.
Applicable when type is 'CUSTOM_AUTHENTICATION'
function_id
string
The OCID of the Oracle Functions function resource.
Required when type is 'CUSTOM_AUTHENTICATION'
is_anonymous_access_allowed
boolean
    Choices:
  • no
  • yes
Whether an unauthenticated user may access the API. Must be "true" to enable ANONYMOUS route authorization.
issuers
list / elements=string
A list of parties that could have issued the token.
Required when type is 'JWT_AUTHENTICATION'
max_clock_skew_in_seconds
float
The maximum expected time difference between the system clocks of the token issuer and the API Gateway.
Applicable when type is one of ['TOKEN_AUTHENTICATION', 'JWT_AUTHENTICATION']
parameters
dictionary
A map where key is a user defined string and value is a context expressions whose values will be sent to the custom auth function. Values should contain an expression. Example: `{"foo": "request.header[abc]"}`
Applicable when type is 'CUSTOM_AUTHENTICATION'
public_keys
dictionary
Required when type is 'JWT_AUTHENTICATION'
is_ssl_verify_disabled
boolean
    Choices:
  • no
  • yes
Defines whether or not to uphold SSL verification.
Applicable when type is 'REMOTE_JWKS'
keys
list / elements=dictionary
The set of static public keys.
Applicable when type is 'STATIC_KEYS'
alg
string
The algorithm intended for use with this key.
Required when format is 'JSON_WEB_KEY'
e
string
The base64 url encoded exponent of the RSA public key represented by this key.
Required when format is 'JSON_WEB_KEY'
format
string / required
    Choices:
  • JSON_WEB_KEY
  • PEM
The format of the public key.
key
string
The content of the PEM-encoded public key.
Required when format is 'PEM'
key_ops
list / elements=string
    Choices:
  • verify
The operations for which this key is to be used.
Applicable when format is 'JSON_WEB_KEY'
kid
string / required
A unique key ID. This key will be used to verify the signature of a JWT with matching "kid".
kty
string
    Choices:
  • RSA
The key type.
Required when format is 'JSON_WEB_KEY'
n
string
The base64 url encoded modulus of the RSA public key represented by this key.
Required when format is 'JSON_WEB_KEY'
use
string
    Choices:
  • sig
The intended use of the public key.
Applicable when format is 'JSON_WEB_KEY'
max_cache_duration_in_hours
integer
The duration for which the JWKS should be cached before it is fetched again.
Applicable when type is 'REMOTE_JWKS'
type
string / required
    Choices:
  • STATIC_KEYS
  • REMOTE_JWKS
Type of the public key set.
uri
string
The uri from which to retrieve the key. It must be accessible without authentication.
Required when type is 'REMOTE_JWKS'
token_auth_scheme
string
The authentication scheme that is to be used when authenticating the token. This must to be provided if "tokenHeader" is specified.
Applicable when type is one of ['TOKEN_AUTHENTICATION', 'JWT_AUTHENTICATION']
token_header
string
The name of the header containing the authentication token.
token_query_param
string
The name of the query parameter containing the authentication token.
type
string / required
    Choices:
  • TOKEN_AUTHENTICATION
  • JWT_AUTHENTICATION
  • CUSTOM_AUTHENTICATION
Type of the authentication policy to use.
validation_failure_policy
dictionary
Applicable when type is one of ['TOKEN_AUTHENTICATION', 'CUSTOM_AUTHENTICATION']
client_details
dictionary
Required when type is 'OAUTH2'
client_id
string
Client ID for the OAuth2/OIDC app.
Required when type is 'CUSTOM'
client_secret_id
string
The OCID of the Oracle Vault Service secret resource.
Required when type is 'CUSTOM'
client_secret_version_number
integer
The version number of the client secret to use.
Required when type is 'CUSTOM'
type
string / required
    Choices:
  • CUSTOM
  • VALIDATION_BLOCK
To specify where the Client App details should be taken from.
fallback_redirect_path
string
The path to be used as fallback after OAuth2.
Applicable when type is 'OAUTH2'
logout_path
string
The path to be used as logout.
Applicable when type is 'OAUTH2'
max_expiry_duration_in_hours
integer
The duration for which the OAuth2 success token should be cached before it is fetched again.
Applicable when type is 'OAUTH2'
response_code
string
HTTP response code, can include context variables.
Applicable when type is 'MODIFY_RESPONSE'
response_header_transformations
dictionary
Applicable when type is 'MODIFY_RESPONSE'
filter_headers
dictionary
Applicable when type is 'MODIFY_RESPONSE'
items
list / elements=dictionary / required
The list of headers.
Required when type is 'MODIFY_RESPONSE'
name
string / required
The case-insensitive name of the header. This name must be unique across transformation policies.
Required when type is 'MODIFY_RESPONSE'
type
string / required
    Choices:
  • ALLOW
  • BLOCK
BLOCK drops any headers that are in the list of items, so it acts as an exclusion list. ALLOW permits only the headers in the list and removes all others, so it acts as an inclusion list.
Required when type is 'MODIFY_RESPONSE'
rename_headers
dictionary
Applicable when type is 'MODIFY_RESPONSE'
items
list / elements=dictionary / required
The list of headers.
Required when type is 'MODIFY_RESPONSE'
_from
string / required
The original case-insensitive name of the header. This name must be unique across transformation policies.
Required when type is 'MODIFY_RESPONSE'
to
string / required
The new name of the header. This name must be unique across transformation policies.
Required when type is 'MODIFY_RESPONSE'
set_headers
dictionary
Applicable when type is 'MODIFY_RESPONSE'
items
list / elements=dictionary / required
The list of headers.
Required when type is 'MODIFY_RESPONSE'
if_exists
string
    Choices:
  • OVERWRITE
  • APPEND
  • SKIP
If a header with the same name already exists in the request, OVERWRITE will overwrite the value, APPEND will append to the existing value, or SKIP will keep the existing value.
Applicable when type is 'MODIFY_RESPONSE'
name
string / required
The case-insensitive name of the header. This name must be unique across transformation policies.
Required when type is 'MODIFY_RESPONSE'
values
list / elements=string / required
A list of new values. Each value can be a constant or may include one or more expressions enclosed within ${} delimiters.
Required when type is 'MODIFY_RESPONSE'
response_message
string
HTTP response message.
Applicable when type is 'MODIFY_RESPONSE'
response_type
string
    Choices:
  • CODE
Response Type.
Required when type is 'OAUTH2'
scopes
list / elements=string
List of scopes.
Required when type is 'OAUTH2'
source_uri_details
dictionary
Required when type is 'OAUTH2'
type
string / required
    Choices:
  • DISCOVERY_URI
  • VALIDATION_BLOCK
Type of the Uri detail.
uri
string
The discovery URI for the auth server.
Required when type is 'DISCOVERY_URI'
type
string / required
    Choices:
  • MODIFY_RESPONSE
  • OAUTH2
Type of the Validation failure Policy.
use_cookies_for_intermediate_steps
boolean
    Choices:
  • no
  • yes
Defines whether or not to use cookies for OAuth2 intermediate steps.
Applicable when type is 'OAUTH2'
use_cookies_for_session
boolean
    Choices:
  • no
  • yes
Defines whether or not to use cookies for session maintenance.
Applicable when type is 'OAUTH2'
use_pkce
boolean
    Choices:
  • no
  • yes
Defines whether or not to support PKCE.
Applicable when type is 'OAUTH2'
validation_policy
dictionary
Required when type is 'TOKEN_AUTHENTICATION'
additional_validation_policy
dictionary
audiences
list / elements=string
The list of intended recipients for the token.
Applicable when type is 'REMOTE_JWKS'
issuers
list / elements=string
A list of parties that could have issued the token.
Applicable when type is 'REMOTE_JWKS'
verify_claims
list / elements=dictionary
A list of claims which should be validated to consider the token valid.
Applicable when type is 'REMOTE_JWKS'
is_required
boolean
    Choices:
  • no
  • yes
Whether the claim is required to be present in the JWT or not. If set to "false", the claim values will be matched only if the claim is present in the JWT.
Applicable when type is 'REMOTE_JWKS'
key
string / required
Name of the claim.
Required when type is 'REMOTE_JWKS'
values
list / elements=string
The list of acceptable values for a given claim. If this value is "null" or empty and "isRequired" set to "true", then the presence of this claim in the JWT is validated.
Applicable when type is 'REMOTE_JWKS'
client_details
dictionary
Required when type is 'REMOTE_DISCOVERY'
client_id
string
Client ID for the OAuth2/OIDC app.
Required when type is 'CUSTOM'
client_secret_id
string
The OCID of the Oracle Vault Service secret resource.
Required when type is 'CUSTOM'
client_secret_version_number
integer
The version number of the client secret to use.
Required when type is 'CUSTOM'
type
string / required
    Choices:
  • CUSTOM
  • VALIDATION_BLOCK
To specify where the Client App details should be taken from.
is_ssl_verify_disabled
boolean
    Choices:
  • no
  • yes
Defines whether or not to uphold SSL verification.
Applicable when type is one of ['REMOTE_JWKS', 'REMOTE_DISCOVERY']
keys
list / elements=dictionary
The set of static public keys.
Applicable when type is 'STATIC_KEYS'
alg
string
The algorithm intended for use with this key.
Required when format is 'JSON_WEB_KEY'
e
string
The base64 url encoded exponent of the RSA public key represented by this key.
Required when format is 'JSON_WEB_KEY'
format
string / required
    Choices:
  • JSON_WEB_KEY
  • PEM
The format of the public key.
key
string
The content of the PEM-encoded public key.
Required when format is 'PEM'
key_ops
list / elements=string
    Choices:
  • verify
The operations for which this key is to be used.
Applicable when format is 'JSON_WEB_KEY'
kid
string / required
A unique key ID. This key will be used to verify the signature of a JWT with matching "kid".
kty
string
    Choices:
  • RSA
The key type.
Required when format is 'JSON_WEB_KEY'
n
string
The base64 url encoded modulus of the RSA public key represented by this key.
Required when format is 'JSON_WEB_KEY'
use
string
    Choices:
  • sig
The intended use of the public key.
Applicable when format is 'JSON_WEB_KEY'
max_cache_duration_in_hours
integer
The duration for which the JWKS should be cached before it is fetched again.
Applicable when type is one of ['REMOTE_JWKS', 'REMOTE_DISCOVERY']
source_uri_details
dictionary
Required when type is 'REMOTE_DISCOVERY'
type
string / required
    Choices:
  • DISCOVERY_URI
  • VALIDATION_BLOCK
Type of the Uri detail.
uri
string
The discovery URI for the auth server.
Required when type is 'DISCOVERY_URI'
type
string / required
    Choices:
  • REMOTE_JWKS
  • REMOTE_DISCOVERY
  • STATIC_KEYS
Type of the token validation policy.
uri
string
The uri from which to retrieve the key. It must be accessible without authentication.
Required when type is 'REMOTE_JWKS'
verify_claims
list / elements=dictionary
A list of claims which should be validated to consider the token valid.
Applicable when type is 'JWT_AUTHENTICATION'
is_required
boolean
    Choices:
  • no
  • yes
Whether the claim is required to be present in the JWT or not. If set to "false", the claim values will be matched only if the claim is present in the JWT.
Applicable when type is 'JWT_AUTHENTICATION'
key
string / required
Name of the claim.
Required when type is 'JWT_AUTHENTICATION'
values
list / elements=string
The list of acceptable values for a given claim. If this value is "null" or empty and "isRequired" set to "true", then the presence of this claim in the JWT is validated.
Applicable when type is 'JWT_AUTHENTICATION'
cors
dictionary
allowed_headers
list / elements=string
The list of headers that will be allowed from the client via the Access-Control-Allow-Headers header. '*' will allow all headers.
allowed_methods
list / elements=string
The list of allowed HTTP methods that will be returned for the preflight OPTIONS request in the Access-Control-Allow-Methods header. '*' will allow all methods.
allowed_origins
list / elements=string / required
The list of allowed origins that the CORS handler will use to respond to CORS requests. The gateway will send the Access-Control-Allow-Origin header with the best origin match for the circumstances. '*' will match any origins, and 'null' will match queries from 'file:' origins. All other origins must be qualified with the scheme, full hostname, and port if necessary.
exposed_headers
list / elements=string
The list of headers that the client will be allowed to see from the response as indicated by the Access-Control-Expose-Headers header. '*' will expose all headers.
is_allow_credentials_enabled
boolean
    Choices:
  • no
  • yes
Whether to send the Access-Control-Allow-Credentials header to allow CORS requests with cookies.
max_age_in_seconds
integer
The time in seconds for the client to cache preflight responses. This is sent as the Access-Control-Max-Age if greater than 0.
dynamic_authentication
dictionary
authentication_servers
list / elements=dictionary / required
List of authentication servers to choose from during dynamic authentication.
authentication_server_detail
dictionary / required
audiences
list / elements=string
The list of intended recipients for the token.
Required when type is 'JWT_AUTHENTICATION'
cache_key
list / elements=string
A list of keys from "parameters" attribute value whose values will be added to the cache key.
Applicable when type is 'CUSTOM_AUTHENTICATION'
function_id
string
The OCID of the Oracle Functions function resource.
Required when type is 'CUSTOM_AUTHENTICATION'
is_anonymous_access_allowed
boolean
    Choices:
  • no
  • yes
Whether an unauthenticated user may access the API. Must be "true" to enable ANONYMOUS route authorization.
issuers
list / elements=string
A list of parties that could have issued the token.
Required when type is 'JWT_AUTHENTICATION'
max_clock_skew_in_seconds
float
The maximum expected time difference between the system clocks of the token issuer and the API Gateway.
Applicable when type is one of ['TOKEN_AUTHENTICATION', 'JWT_AUTHENTICATION']
parameters
dictionary
A map where key is a user defined string and value is a context expressions whose values will be sent to the custom auth function. Values should contain an expression. Example: `{"foo": "request.header[abc]"}`
Applicable when type is 'CUSTOM_AUTHENTICATION'
public_keys
dictionary
Required when type is 'JWT_AUTHENTICATION'
is_ssl_verify_disabled
boolean
    Choices:
  • no
  • yes
Defines whether or not to uphold SSL verification.
Applicable when type is 'REMOTE_JWKS'
keys
list / elements=dictionary
The set of static public keys.
Applicable when type is 'STATIC_KEYS'
alg
string
The algorithm intended for use with this key.
Required when format is 'JSON_WEB_KEY'
e
string
The base64 url encoded exponent of the RSA public key represented by this key.
Required when format is 'JSON_WEB_KEY'
format
string / required
    Choices:
  • JSON_WEB_KEY
  • PEM
The format of the public key.
key
string
The content of the PEM-encoded public key.
Required when format is 'PEM'
key_ops
list / elements=string
    Choices:
  • verify
The operations for which this key is to be used.
Applicable when format is 'JSON_WEB_KEY'
kid
string / required
A unique key ID. This key will be used to verify the signature of a JWT with matching "kid".
kty
string
    Choices:
  • RSA
The key type.
Required when format is 'JSON_WEB_KEY'
n
string
The base64 url encoded modulus of the RSA public key represented by this key.
Required when format is 'JSON_WEB_KEY'
use
string
    Choices:
  • sig
The intended use of the public key.
Applicable when format is 'JSON_WEB_KEY'
max_cache_duration_in_hours
integer
The duration for which the JWKS should be cached before it is fetched again.
Applicable when type is 'REMOTE_JWKS'
type
string / required
    Choices:
  • STATIC_KEYS
  • REMOTE_JWKS
Type of the public key set.
uri
string
The uri from which to retrieve the key. It must be accessible without authentication.
Required when type is 'REMOTE_JWKS'
token_auth_scheme
string
The authentication scheme that is to be used when authenticating the token. This must to be provided if "tokenHeader" is specified.
Applicable when type is one of ['TOKEN_AUTHENTICATION', 'JWT_AUTHENTICATION']
token_header
string
The name of the header containing the authentication token.
token_query_param
string
The name of the query parameter containing the authentication token.
type
string / required
    Choices:
  • TOKEN_AUTHENTICATION
  • JWT_AUTHENTICATION
  • CUSTOM_AUTHENTICATION
Type of the authentication policy to use.
validation_failure_policy
dictionary
Applicable when type is one of ['TOKEN_AUTHENTICATION', 'CUSTOM_AUTHENTICATION']
client_details
dictionary
Required when type is 'OAUTH2'
client_id
string
Client ID for the OAuth2/OIDC app.
Required when type is 'CUSTOM'
client_secret_id
string
The OCID of the Oracle Vault Service secret resource.
Required when type is 'CUSTOM'
client_secret_version_number
integer
The version number of the client secret to use.
Required when type is 'CUSTOM'
type
string / required
    Choices:
  • CUSTOM
  • VALIDATION_BLOCK
To specify where the Client App details should be taken from.
fallback_redirect_path
string
The path to be used as fallback after OAuth2.
Applicable when type is 'OAUTH2'
logout_path
string
The path to be used as logout.
Applicable when type is 'OAUTH2'
max_expiry_duration_in_hours
integer
The duration for which the OAuth2 success token should be cached before it is fetched again.
Applicable when type is 'OAUTH2'
response_code
string
HTTP response code, can include context variables.
Applicable when type is 'MODIFY_RESPONSE'
response_header_transformations
dictionary
Applicable when type is 'MODIFY_RESPONSE'
filter_headers
dictionary
Applicable when type is 'MODIFY_RESPONSE'
items
list / elements=dictionary / required
The list of headers.
Required when type is 'MODIFY_RESPONSE'
name
string / required
The case-insensitive name of the header. This name must be unique across transformation policies.
Required when type is 'MODIFY_RESPONSE'
type
string / required
    Choices:
  • ALLOW
  • BLOCK
BLOCK drops any headers that are in the list of items, so it acts as an exclusion list. ALLOW permits only the headers in the list and removes all others, so it acts as an inclusion list.
Required when type is 'MODIFY_RESPONSE'
rename_headers
dictionary
Applicable when type is 'MODIFY_RESPONSE'
items
list / elements=dictionary / required
The list of headers.
Required when type is 'MODIFY_RESPONSE'
_from
string / required
The original case-insensitive name of the header. This name must be unique across transformation policies.
Required when type is 'MODIFY_RESPONSE'
to
string / required
The new name of the header. This name must be unique across transformation policies.
Required when type is 'MODIFY_RESPONSE'
set_headers
dictionary
Applicable when type is 'MODIFY_RESPONSE'
items
list / elements=dictionary / required
The list of headers.
Required when type is 'MODIFY_RESPONSE'
if_exists
string
    Choices:
  • OVERWRITE
  • APPEND
  • SKIP
If a header with the same name already exists in the request, OVERWRITE will overwrite the value, APPEND will append to the existing value, or SKIP will keep the existing value.
Applicable when type is 'MODIFY_RESPONSE'
name
string / required
The case-insensitive name of the header. This name must be unique across transformation policies.
Required when type is 'MODIFY_RESPONSE'
values
list / elements=string / required
A list of new values. Each value can be a constant or may include one or more expressions enclosed within ${} delimiters.
Required when type is 'MODIFY_RESPONSE'
response_message
string
HTTP response message.
Applicable when type is 'MODIFY_RESPONSE'
response_type
string
    Choices:
  • CODE
Response Type.
Required when type is 'OAUTH2'
scopes
list / elements=string
List of scopes.
Required when type is 'OAUTH2'
source_uri_details
dictionary
Required when type is 'OAUTH2'
type
string / required
    Choices:
  • DISCOVERY_URI
  • VALIDATION_BLOCK
Type of the Uri detail.
uri
string
The discovery URI for the auth server.
Required when type is 'DISCOVERY_URI'
type
string / required
    Choices:
  • MODIFY_RESPONSE
  • OAUTH2
Type of the Validation failure Policy.
use_cookies_for_intermediate_steps
boolean
    Choices:
  • no
  • yes
Defines whether or not to use cookies for OAuth2 intermediate steps.
Applicable when type is 'OAUTH2'
use_cookies_for_session
boolean
    Choices:
  • no
  • yes
Defines whether or not to use cookies for session maintenance.
Applicable when type is 'OAUTH2'
use_pkce
boolean
    Choices:
  • no
  • yes
Defines whether or not to support PKCE.
Applicable when type is 'OAUTH2'
validation_policy
dictionary
Required when type is 'TOKEN_AUTHENTICATION'
additional_validation_policy
dictionary
audiences
list / elements=string
The list of intended recipients for the token.
Applicable when type is 'REMOTE_JWKS'
issuers
list / elements=string
A list of parties that could have issued the token.
Applicable when type is 'REMOTE_JWKS'
verify_claims
list / elements=dictionary
A list of claims which should be validated to consider the token valid.
Applicable when type is 'REMOTE_JWKS'
is_required
boolean
    Choices:
  • no
  • yes
Whether the claim is required to be present in the JWT or not. If set to "false", the claim values will be matched only if the claim is present in the JWT.
Applicable when type is 'REMOTE_JWKS'
key
string / required
Name of the claim.
Required when type is 'REMOTE_JWKS'
values
list / elements=string
The list of acceptable values for a given claim. If this value is "null" or empty and "isRequired" set to "true", then the presence of this claim in the JWT is validated.
Applicable when type is 'REMOTE_JWKS'
client_details
dictionary
Required when type is 'REMOTE_DISCOVERY'
client_id
string
Client ID for the OAuth2/OIDC app.
Required when type is 'CUSTOM'
client_secret_id
string
The OCID of the Oracle Vault Service secret resource.
Required when type is 'CUSTOM'
client_secret_version_number
integer
The version number of the client secret to use.
Required when type is 'CUSTOM'
type
string / required
    Choices:
  • CUSTOM
  • VALIDATION_BLOCK
To specify where the Client App details should be taken from.
is_ssl_verify_disabled
boolean
    Choices:
  • no
  • yes
Defines whether or not to uphold SSL verification.
Applicable when type is one of ['REMOTE_JWKS', 'REMOTE_DISCOVERY']
keys
list / elements=dictionary
The set of static public keys.
Applicable when type is 'STATIC_KEYS'
alg
string
The algorithm intended for use with this key.
Required when format is 'JSON_WEB_KEY'
e
string
The base64 url encoded exponent of the RSA public key represented by this key.
Required when format is 'JSON_WEB_KEY'
format
string / required
    Choices:
  • JSON_WEB_KEY
  • PEM
The format of the public key.
key
string
The content of the PEM-encoded public key.
Required when format is 'PEM'
key_ops
list / elements=string
    Choices:
  • verify
The operations for which this key is to be used.
Applicable when format is 'JSON_WEB_KEY'
kid
string / required
A unique key ID. This key will be used to verify the signature of a JWT with matching "kid".
kty
string
    Choices:
  • RSA
The key type.
Required when format is 'JSON_WEB_KEY'
n
string
The base64 url encoded modulus of the RSA public key represented by this key.
Required when format is 'JSON_WEB_KEY'
use
string
    Choices:
  • sig
The intended use of the public key.
Applicable when format is 'JSON_WEB_KEY'
max_cache_duration_in_hours
integer
The duration for which the JWKS should be cached before it is fetched again.
Applicable when type is one of ['REMOTE_JWKS', 'REMOTE_DISCOVERY']
source_uri_details
dictionary
Required when type is 'REMOTE_DISCOVERY'
type
string / required
    Choices:
  • DISCOVERY_URI
  • VALIDATION_BLOCK
Type of the Uri detail.
uri
string
The discovery URI for the auth server.
Required when type is 'DISCOVERY_URI'
type
string / required
    Choices:
  • REMOTE_JWKS
  • REMOTE_DISCOVERY
  • STATIC_KEYS
Type of the token validation policy.
uri
string
The uri from which to retrieve the key. It must be accessible without authentication.
Required when type is 'REMOTE_JWKS'
verify_claims
list / elements=dictionary
A list of claims which should be validated to consider the token valid.
Applicable when type is 'JWT_AUTHENTICATION'
is_required
boolean
    Choices:
  • no
  • yes
Whether the claim is required to be present in the JWT or not. If set to "false", the claim values will be matched only if the claim is present in the JWT.
Applicable when type is 'JWT_AUTHENTICATION'
key
string / required
Name of the claim.
Required when type is 'JWT_AUTHENTICATION'
values
list / elements=string
The list of acceptable values for a given claim. If this value is "null" or empty and "isRequired" set to "true", then the presence of this claim in the JWT is validated.
Applicable when type is 'JWT_AUTHENTICATION'
key
dictionary / required
expression
string
A selection key string containing a wildcard to match with the context variable in an incoming request. If the context variable matches the string, the request is sent to the route or authentication server associated with the selection key. Valid wildcards are '*' (zero or more characters) and '+' (one or more characters). The string can only contain one wildcard, and the wildcard must be at the start or the end of the string.
Required when type is 'WILDCARD'
is_default
boolean
    Choices:
  • no
  • yes
Specifies whether to use the route or authentication server associated with this selection key as the default. The default is used if the value of a context variable in an incoming request does not match any of the other selection key values when dynamically routing and dynamically authenticating requests.
name
string / required
Name assigned to the branch.
type
string
    Choices:
  • WILDCARD
  • ANY_OF ←
Type of the selection key.
values
list / elements=string
The set of selection keys to match with the context variable in an incoming request. If the context variable exactly matches one of the keys in the set, the request is sent to the route or authentication server associated with the set.
Applicable when type is 'ANY_OF'
selection_source
dictionary / required
selector
string / required
String describing the context variable used as selector.
type
string
    Choices:
  • SINGLE ←
Type of the Selection source to use.
mutual_tls
dictionary
allowed_sans
list / elements=string
Allowed list of CN or SAN which will be used for verification of certificate.
is_verified_certificate_required
boolean
    Choices:
  • no
  • yes
Determines whether to enable client verification when API Consumer makes connection to the gateway.
rate_limiting
dictionary
rate_in_requests_per_second
integer / required
The maximum number of requests per second to allow.
rate_key
string / required
    Choices:
  • CLIENT_IP
  • TOTAL
The key used to group requests together.
usage_plans
dictionary
token_locations
list / elements=string / required
A list of context variables specifying where API tokens may be located in a request. Example locations: - "request.headers[token]" - "request.query[token]" - "request.auth[Token]" - "request.path[TOKEN]"
routes
list / elements=dictionary
A list of routes that this API exposes.
backend
dictionary / required
allowed_post_logout_uris
list / elements=string
Applicable when type is 'OAUTH2_LOGOUT_BACKEND'
body
string
The body of the stock response from the mock backend.
Applicable when type is 'STOCK_RESPONSE_BACKEND'
connect_timeout_in_seconds
float
Defines a timeout for establishing a connection with a proxied server.
Applicable when type is 'HTTP_BACKEND'
function_id
string
The OCID of the Oracle Functions function resource.
Required when type is 'ORACLE_FUNCTIONS_BACKEND'
headers
list / elements=dictionary
The headers of the stock response from the mock backend.
Applicable when type is 'STOCK_RESPONSE_BACKEND'
name
string
Name of the header.
Applicable when type is 'STOCK_RESPONSE_BACKEND'
value
string
Value of the header.
Applicable when type is 'STOCK_RESPONSE_BACKEND'
is_ssl_verify_disabled
boolean
    Choices:
  • no
  • yes
Defines whether or not to uphold SSL verification.
Applicable when type is 'HTTP_BACKEND'
post_logout_state
string
Defines a state that should be shared on redirecting to postLogout URL.
Applicable when type is 'OAUTH2_LOGOUT_BACKEND'
read_timeout_in_seconds
float
Defines a timeout for reading a response from the proxied server.
Applicable when type is 'HTTP_BACKEND'
routing_backends
list / elements=dictionary
List of backends to chose from for Dynamic Routing.
Required when type is 'DYNAMIC_ROUTING_BACKEND'
backend
dictionary / required
Required when type is 'DYNAMIC_ROUTING_BACKEND'
type
string / required
    Choices:
  • ORACLE_FUNCTIONS_BACKEND
  • HTTP_BACKEND
  • STOCK_RESPONSE_BACKEND
  • DYNAMIC_ROUTING_BACKEND
  • OAUTH2_LOGOUT_BACKEND
Type of the API backend.
key
dictionary / required
Required when type is 'DYNAMIC_ROUTING_BACKEND'
expression
string
A selection key string containing a wildcard to match with the context variable in an incoming request. If the context variable matches the string, the request is sent to the route or authentication server associated with the selection key. Valid wildcards are '*' (zero or more characters) and '+' (one or more characters). The string can only contain one wildcard, and the wildcard must be at the start or the end of the string.
Required when type is 'WILDCARD'
is_default
boolean
    Choices:
  • no
  • yes
Specifies whether to use the route or authentication server associated with this selection key as the default. The default is used if the value of a context variable in an incoming request does not match any of the other selection key values when dynamically routing and dynamically authenticating requests.
name
string / required
Name assigned to the branch.
type
string
    Choices:
  • WILDCARD
  • ANY_OF ←
Type of the selection key.
values
list / elements=string
The set of selection keys to match with the context variable in an incoming request. If the context variable exactly matches one of the keys in the set, the request is sent to the route or authentication server associated with the set.
Applicable when type is 'ANY_OF'
selection_source
dictionary
Required when type is 'DYNAMIC_ROUTING_BACKEND'
selector
string / required
String describing the context variable used as selector.
type
string
    Choices:
  • SINGLE ←
Type of the Selection source to use.
send_timeout_in_seconds
float
Defines a timeout for transmitting a request to the proxied server.
Applicable when type is 'HTTP_BACKEND'
status
integer
The status code of the stock response from the mock backend.
Required when type is 'STOCK_RESPONSE_BACKEND'
type
string / required
    Choices:
  • OAUTH2_LOGOUT_BACKEND
  • HTTP_BACKEND
  • ORACLE_FUNCTIONS_BACKEND
  • STOCK_RESPONSE_BACKEND
  • DYNAMIC_ROUTING_BACKEND
Type of the API backend.
url
string
Required when type is 'HTTP_BACKEND'
logging_policies
dictionary
access_log
dictionary
is_enabled
boolean
    Choices:
  • no
  • yes
Enables pushing of access logs to the legacy OCI Object Storage log archival bucket.
Oracle recommends using the OCI Logging service to enable, retrieve, and query access logs for an API Deployment. If there is an active log object for the API Deployment and its category is set to 'access' in OCI Logging service, the logs will not be uploaded to the legacy OCI Object Storage log archival bucket.
Please note that the functionality to push to the legacy OCI Object Storage log archival bucket has been deprecated and will be removed in the future.
execution_log
dictionary
is_enabled
boolean
    Choices:
  • no
  • yes
Enables pushing of execution logs to the legacy OCI Object Storage log archival bucket.
Oracle recommends using the OCI Logging service to enable, retrieve, and query execution logs for an API Deployment. If there is an active log object for the API Deployment and its category is set to 'execution' in OCI Logging service, the logs will not be uploaded to the legacy OCI Object Storage log archival bucket.
Please note that the functionality to push to the legacy OCI Object Storage log archival bucket has been deprecated and will be removed in the future.
log_level
string
    Choices:
  • INFO
  • WARN
  • ERROR
Specifies the log level used to control logging output of execution logs. Enabling logging at a given level also enables logging at all higher levels.
methods
list / elements=string
    Choices:
  • ANY
  • HEAD
  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • OPTIONS
A list of allowed methods on this route.
path
string / required
A URL path pattern that must be matched on this route. The path pattern may contain a subset of RFC 6570 identifiers to allow wildcard and parameterized matching.
request_policies
dictionary
authorization
dictionary
allowed_scope
list / elements=string
A user whose scope includes any of these access ranges is allowed on this route. Access ranges are case-sensitive.
Required when type is 'ANY_OF'
type
string
    Choices:
  • ANY_OF
  • ANONYMOUS
  • AUTHENTICATION_ONLY ←
Indicates how authorization should be applied. For a type of ANY_OF, an "allowedScope" property must also be specified. Otherwise, only a type is required. For a type of ANONYMOUS, an authenticated API must have the "isAnonymousAccessAllowed" property set to "true" in the authentication policy.
body_validation
dictionary
content
dictionary / required
The content of the request body. The key is a media type range subset restricted to the following schema
key ::= ( / ( "*" "/" "*" ) / ( type "/" "*" ) / ( type "/" subtype ) )
For requests that match multiple keys, only the most specific key is applicable. e.g. `text/plain` overrides `text/*`
validation_type
string
    Choices:
  • NONE ←
Validation type defines the content validation method.
Make the validation to first parse the body as the respective format.
required
boolean
    Choices:
  • no
  • yes
Determines if the request body is required in the request.
validation_mode
string
    Choices:
  • ENFORCING
  • PERMISSIVE
  • DISABLED
Validation behavior mode.
In `ENFORCING` mode, upon a validation failure, the request will be rejected with a 4xx response and not sent to the backend.
In `PERMISSIVE` mode, the result of the validation will be exposed as metrics while the request will follow the normal path.
`DISABLED` type turns the validation off.
cors
dictionary
allowed_headers
list / elements=string
The list of headers that will be allowed from the client via the Access-Control-Allow-Headers header. '*' will allow all headers.
allowed_methods
list / elements=string
The list of allowed HTTP methods that will be returned for the preflight OPTIONS request in the Access-Control-Allow-Methods header. '*' will allow all methods.
allowed_origins
list / elements=string / required
The list of allowed origins that the CORS handler will use to respond to CORS requests. The gateway will send the Access-Control-Allow-Origin header with the best origin match for the circumstances. '*' will match any origins, and 'null' will match queries from 'file:' origins. All other origins must be qualified with the scheme, full hostname, and port if necessary.
exposed_headers
list / elements=string
The list of headers that the client will be allowed to see from the response as indicated by the Access-Control-Expose-Headers header. '*' will expose all headers.
is_allow_credentials_enabled
boolean
    Choices:
  • no
  • yes
Whether to send the Access-Control-Allow-Credentials header to allow CORS requests with cookies.
max_age_in_seconds
integer
The time in seconds for the client to cache preflight responses. This is sent as the Access-Control-Max-Age if greater than 0.
header_transformations
dictionary
filter_headers
dictionary
items
list / elements=dictionary / required
The list of headers.
name
string / required
The case-insensitive name of the header. This name must be unique across transformation policies.
type
string / required
    Choices:
  • ALLOW
  • BLOCK
BLOCK drops any headers that are in the list of items, so it acts as an exclusion list. ALLOW permits only the headers in the list and removes all others, so it acts as an inclusion list.
rename_headers
dictionary
items
list / elements=dictionary / required
The list of headers.
_from
string / required
The original case-insensitive name of the header. This name must be unique across transformation policies.
to
string / required
The new name of the header. This name must be unique across transformation policies.
set_headers
dictionary
items
list / elements=dictionary / required
The list of headers.
if_exists
string
    Choices:
  • OVERWRITE
  • APPEND
  • SKIP
If a header with the same name already exists in the request, OVERWRITE will overwrite the value, APPEND will append to the existing value, or SKIP will keep the existing value.
name
string / required
The case-insensitive name of the header. This name must be unique across transformation policies.
values
list / elements=string / required
A list of new values. Each value can be a constant or may include one or more expressions enclosed within ${} delimiters.
header_validations
dictionary
headers
list / elements=dictionary
name
string / required
Parameter name.
required
boolean
    Choices:
  • no
  • yes
Determines if the header is required in the request.
validation_mode
string
    Choices:
  • ENFORCING
  • PERMISSIVE
  • DISABLED
Validation behavior mode.
In `ENFORCING` mode, upon a validation failure, the request will be rejected with a 4xx response and not sent to the backend.
In `PERMISSIVE` mode, the result of the validation will be exposed as metrics while the request will follow the normal path.
`DISABLED` type turns the validation off.
query_parameter_transformations
dictionary
filter_query_parameters
dictionary
items
list / elements=dictionary / required
The list of query parameters.
name
string / required
The case-sensitive name of the query parameter.
type
string / required
    Choices:
  • ALLOW
  • BLOCK
BLOCK drops any query parameters that are in the list of items, so it acts as an exclusion list. ALLOW permits only the parameters in the list and removes all others, so it acts as an inclusion list.
rename_query_parameters
dictionary
items
list / elements=dictionary / required
The list of query parameters.
_from
string / required
The original case-sensitive name of the query parameter. This name must be unique across transformation policies.
to
string / required
The new name of the query parameter. This name must be unique across transformation policies.
set_query_parameters
dictionary
items
list / elements=dictionary / required
The list of query parameters.
if_exists
string
    Choices:
  • OVERWRITE
  • APPEND
  • SKIP
If a query parameter with the same name already exists in the request, OVERWRITE will overwrite the value, APPEND will append to the existing value, or SKIP will keep the existing value.
name
string / required
The case-sensitive name of the query parameter. This name must be unique across transformation policies.