// 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).
import * as apigateway from "oci-apigateway";
import common = require("oci-common");
// Create a default authentication provider that uses the DEFAULT
// profile in the configuration file.
// Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.
const provider: common.ConfigFileAuthenticationDetailsProvider = new common.ConfigFileAuthenticationDetailsProvider();
(async () => {
try {
// Create a service client
const client = new apigateway.DeploymentClient({ authenticationDetailsProvider: provider });
// Create a request and dependent object(s).
const createDeploymentDetails = {
displayName: "EXAMPLE-displayName-Value",
gatewayId: "ocid1.test.oc1..<unique_ID>EXAMPLE-gatewayId-Value",
compartmentId: "ocid1.test.oc1..<unique_ID>EXAMPLE-compartmentId-Value",
pathPrefix: "EXAMPLE-pathPrefix-Value",
specification: {
requestPolicies: {
authentication: {
type: "JWT_AUTHENTICATION", tokenHeader: "EXAMPLE-tokenHeader-Value",
tokenQueryParam: "EXAMPLE-tokenQueryParam-Value",
tokenAuthScheme: "EXAMPLE-tokenAuthScheme-Value",
maxClockSkewInSeconds: 15.945475,
issuers: ["EXAMPLE--Value" ],
audiences: ["EXAMPLE--Value" ],
verifyClaims: [{
key: "EXAMPLE-key-Value",
values: ["EXAMPLE--Value" ],
isRequired: true,
}
],
publicKeys: {
type: "REMOTE_JWKS", uri: "EXAMPLE-uri-Value",
isSslVerifyDisabled: true,
maxCacheDurationInHours: 19
}
,
isAnonymousAccessAllowed: false
}
,
rateLimiting: {
rateInRequestsPerSecond: 816,
rateKey: apigateway.models.RateLimitingPolicy.RateKey.ClientIp,
}
,
cors: {
allowedOrigins: ["EXAMPLE--Value" ],
allowedMethods: ["EXAMPLE--Value" ],
allowedHeaders: ["EXAMPLE--Value" ],
exposedHeaders: ["EXAMPLE--Value" ],
isAllowCredentialsEnabled: false,
maxAgeInSeconds: 34,
}
,
mutualTls: {
isVerifiedCertificateRequired: true,
allowedSans: ["EXAMPLE--Value" ],
}
,
usagePlans: {
tokenLocations: ["EXAMPLE--Value" ],
}
,
dynamicAuthentication: {
selectionSource: {
type: "SINGLE", selector: "EXAMPLE-selector-Value"
}
,
authenticationServers: [{
key: {
type: "ANY_OF", values: ["EXAMPLE--Value" ],
isDefault: false,
name: "EXAMPLE-name-Value"
}
,
authenticationServerDetail: {
type: "TOKEN_AUTHENTICATION", tokenHeader: "EXAMPLE-tokenHeader-Value",
tokenQueryParam: "EXAMPLE-tokenQueryParam-Value",
tokenAuthScheme: "EXAMPLE-tokenAuthScheme-Value",
maxClockSkewInSeconds: 4.506712,
validationPolicy: {
type: "REMOTE_DISCOVERY", clientDetails: {
type: "CUSTOM", clientId: "ocid1.test.oc1..<unique_ID>EXAMPLE-clientId-Value",
clientSecretId: "ocid1.test.oc1..<unique_ID>EXAMPLE-clientSecretId-Value",
clientSecretVersionNumber: 468
}
,
sourceUriDetails: {
type: "DISCOVERY_URI", uri: "EXAMPLE-uri-Value"
}
,
isSslVerifyDisabled: true,
maxCacheDurationInHours: 15,
additionalValidationPolicy: {
issuers: ["EXAMPLE--Value" ],
audiences: ["EXAMPLE--Value" ],
verifyClaims: [{
key: "EXAMPLE-key-Value",
values: ["EXAMPLE--Value" ],
isRequired: false,
}
],
}
}
,
validationFailurePolicy: {
type: "MODIFY_RESPONSE", responseCode: "EXAMPLE-responseCode-Value",
responseMessage: "EXAMPLE-responseMessage-Value",
responseHeaderTransformations: {
setHeaders: {
items: [{
name: "EXAMPLE-name-Value",
values: ["EXAMPLE--Value" ],
ifExists: apigateway.models.SetHeaderPolicyItem.IfExists.Overwrite,
}
],
}
,
renameHeaders: {
items: [{
from: "EXAMPLE-from-Value",
to: "EXAMPLE-to-Value",
}
],
}
,
filterHeaders: {
type: apigateway.models.FilterHeaderPolicy.Type.Allow,
items: [{
name: "EXAMPLE-name-Value",
}
],
}
,
}
}
,
isAnonymousAccessAllowed: true
}
,
}
],
}
,
}
,
loggingPolicies: {
accessLog: {
isEnabled: false,
}
,
executionLog: {
isEnabled: false,
logLevel: apigateway.models.ExecutionLogPolicy.LogLevel.Warn,
}
,
}
,
routes: [{
path: "EXAMPLE-path-Value",
methods: [apigateway.models.ApiSpecificationRoute.Methods.Any ],
requestPolicies: {
authorization: {
type: "ANY_OF", allowedScope: ["EXAMPLE--Value" ]
}
,
cors: {
allowedOrigins: ["EXAMPLE--Value" ],
allowedMethods: ["EXAMPLE--Value" ],
allowedHeaders: ["EXAMPLE--Value" ],
exposedHeaders: ["EXAMPLE--Value" ],
isAllowCredentialsEnabled: true,
maxAgeInSeconds: 975,
}
,
queryParameterValidations: {
parameters: [{
required: true,
name: "EXAMPLE-name-Value",
}
],
validationMode: apigateway.models.QueryParameterValidationRequestPolicy.ValidationMode.Disabled,
}
,
headerValidations: {
headers: [{
required: true,
name: "EXAMPLE-name-Value",
}
],
validationMode: apigateway.models.HeaderValidationRequestPolicy.ValidationMode.Permissive,
}
,
bodyValidation: {
required: true,
content: {
EXAMPLE_KEY_jsJGQ :{
validationType: "NONE",
}
},
validationMode: apigateway.models.BodyValidationRequestPolicy.ValidationMode.Permissive,
}
,
headerTransformations: {
setHeaders: {
items: [{
name: "EXAMPLE-name-Value",
values: ["EXAMPLE--Value" ],
ifExists: apigateway.models.SetHeaderPolicyItem.IfExists.Skip,
}
],
}
,
renameHeaders: {
items: [{
from: "EXAMPLE-from-Value",
to: "EXAMPLE-to-Value",
}
],
}
,
filterHeaders: {
type: apigateway.models.FilterHeaderPolicy.Type.Block,
items: [{
name: "EXAMPLE-name-Value",
}
],
}
,
}
,
queryParameterTransformations: {
setQueryParameters: {
items: [{
name: "EXAMPLE-name-Value",
values: ["EXAMPLE--Value" ],
ifExists: apigateway.models.SetQueryParameterPolicyItem.IfExists.Skip,
}
],
}
,
renameQueryParameters: {
items: [{
from: "EXAMPLE-from-Value",
to: "EXAMPLE-to-Value",
}
],
}
,
filterQueryParameters: {
type: apigateway.models.FilterQueryParameterPolicy.Type.Block,
items: [{
name: "EXAMPLE-name-Value",
}
],
}
,
}
,
responseCacheLookup: {
type: "SIMPLE_LOOKUP_POLICY", cacheKeyAdditions: ["EXAMPLE--Value" ],
isEnabled: false,
isPrivateCachingEnabled: true
}
,
}
,
responsePolicies: {
headerTransformations: {
setHeaders: {
items: [{
name: "EXAMPLE-name-Value",
values: ["EXAMPLE--Value" ],
ifExists: apigateway.models.SetHeaderPolicyItem.IfExists.Append,
}
],
}
,
renameHeaders: {
items: [{
from: "EXAMPLE-from-Value",
to: "EXAMPLE-to-Value",
}
],
}
,
filterHeaders: {
type: apigateway.models.FilterHeaderPolicy.Type.Allow,
items: [{
name: "EXAMPLE-name-Value",
}
],
}
,
}
,
responseCacheStore: {
type: "FIXED_TTL_STORE_POLICY", timeToLiveInSeconds: 41
}
,
}
,
loggingPolicies: {
accessLog: {
isEnabled: false,
}
,
executionLog: {
isEnabled: true,
logLevel: apigateway.models.ExecutionLogPolicy.LogLevel.Warn,
}
,
}
,
backend: {
type: "STOCK_RESPONSE_BACKEND", body: "EXAMPLE-body-Value",
status: 103,
headers: [{
name: "EXAMPLE-name-Value",
value: "EXAMPLE-value-Value",
}
]
}
,
}
],
}
,
locks: [{
type: apigateway.models.AddResourceLockDetails.Type.Delete,
message: "EXAMPLE-message-Value",
}
],
freeformTags: {
EXAMPLE_KEY_vGbob :"EXAMPLE_VALUE_tOVyOpICuc9Xdaa7usB1"
},
definedTags: {
EXAMPLE_KEY_VVf7a :{
EXAMPLE_KEY_teuRC :"EXAMPLE--Value"
}
},
}
const createDeploymentRequest: apigateway.requests.CreateDeploymentRequest = {
createDeploymentDetails: createDeploymentDetails,
opcRetryToken: "EXAMPLE-opcRetryToken-Value",
opcRequestId: "GBIU7PQFLPMWYT8AYUCY<unique_ID>",
};
// Send request to the Client.
const createDeploymentResponse = await client.createDeployment(createDeploymentRequest);
}
catch (error) {
console.log("createDeployment Failed with error " + error);
}
})();