Provision an Oracle SOA Suite on Marketplace Instance Using Oracle Cloud Infrastructure REST APIs
You can provision an Oracle SOA Suite on Marketplace instance using Oracle Cloud Infrastructure REST APIs to perform operations such as creating a database, creating a stack, creating a plan job, and creating an apply job.
Topics:
Use the REST APIs in the order provided here to provision an Oracle SOA Suite on Marketplace instance.Create a Database
Use the LaunchDbSystem
REST API to create a new database system in the
specified compartment and availability domain. The Oracle Database edition that you specify
applies to all the databases on that database system. The selected edition cannot be
changed. An initial database is created on the database system based on the request
parameters you provide and some default options.
Syntax
See LaunchDbSystem
in the Oracle Cloud
Infrastructure documentation.
Example Request Payload for Oracle SOA Suite on Marketplace
{
"availabilityDomain": "#{availabilityDomain}",
"compartmentId": "#{compartmentId}",
"cpuCoreCount": 2,
"displayName": "#{dbServiceName}",
"hostname": "#{dbServiceName}host",
"initialDataStorageSizeInGB": 512,
"nodeCount": 1,
"shape": "#{dbShape}",
"source": "NONE",
"sshPublicKeys": [
"#{sshPublicKey}"
],
"subnetId": "#{subnet}",
"databaseEdition": "STANDARD_EDITION",
"dbHome": {
"database": {
"adminPassword": "#{dbPassword}",
"dbName": "#{dbName}",
"pdbName": "#{pdbName}"
},
"dbVersion": "#{dbVersion}"
}
}
Example Response Payload for Oracle SOA Suite on Marketplace
{
"availabilityDomain" : "OXET:PHX-AD-1",
"compartmentId" : "ocid1.tenancy.oc1..<unique_ID>",
"cpuCoreCount" : 8,
"databaseEdition" : "ENTERPRISE_EDITION",
"diskRedundancy" : "HIGH",
"displayName" : "tst3dbsys",
"domain" : "my.company.com",
"hostname" : "athena",
"id" : "ocid1.dbsystem.oc1.phx.<unique_ID>",
"kmsKeyId" : "ocid1.key.oc1.phx.<unique_ID>",
"lastPatchHistoryEntryId" : null,
"licenseModel" : "LICENSE_INCLUDED",
"lifecycleDetails" : null,
"lifecycleState" : "PROVISIONING",
"listenerPort" : 1521,
"scanIpIds": null,
"shape" : "BM.DenseIO1.36",
"sshPublicKeys" : [ "ssh-rsa <public_SSH_key> name@example.com" ],
"subnetId" : "ocid1.subnet.oc1.phx.<unique_ID>",
"timeCreated" : "2016-11-23T01:59:07.030Z",
"version" : "201609160308",
"vipIds": null
}
Create a Stack
Use the CreateStack
REST API to create a stack in the
specified compartment. You can create a stack from a Terraform configuration. The Terraform
configuration can be directly uploaded or referenced from a source code control system. You
can also create a stack from an existing compartment.
Syntax
See CreateStack
in the Oracle Cloud
Infrastructure documentation.
Example Request Payload for Oracle SOA Suite on Marketplace
{
"compartmentId": "#{compartmentId}",
"displayName": "#{serviceName}_AUTO_STACK",
"description": "#{serviceName}_AUTO_STACK",
"configSource": {
"configSourceType": "ZIP_UPLOAD",
"zipFileBase64Encoded": "#{zipFileBase64Encoded}",
"workingDirectory": null
},
"variables": {
"ocidb_database_id": "#{ocidbDatabaseId}",
"use_kms_decryption": "false",
"wls_node_count": "#{managedServerCount}",
"ocidb_dbhome_id": "#{ocidbDbHomeId}",
"ocidb_compartment_id": "#{compartmentId}",
"ocidb_pdb_service_name": "#{pdbName}",
"oci_db_user": "#{dbUserName}",
"oci_db_password": "#{dbPassword}",
"wls_subnet_id": "#{subnet}",
"use_schema_partitioning": "false",
"region": "#{region}",
"use_advanced_wls_instance_config": "false",
"ocidb_dbsystem_id": "#{ocidbDbSystemId}",
"tenancy_ocid": "#{tenancyOcid}",
"topology": "#{topology}",
"existing_vcn_id": "#{existingVcnId}",
"network_compartment_id": "#{compartmentId}",
"compartment_ocid": "#{compartmentId}",
"add_load_balancer": "#{addLoadBalancer}",
"ssh_public_key": "#{sshPublicKey}",
"service_name": "#{serviceName}",
"instance_image_id": "#{instanceImageId}",
"wls_availability_domain_name": "#{availabilityDomain}",
"instance_shape": "#{instanceShape}",
"wls_admin_user": "#{wlsUserName}",
"wls_admin_password": "#{wlsPassword}",
"subnet_strategy_existing_vcn": "#{subnetStrategyExistingVcn}",
"db_strategy_existing_vcn": "#{dbStrategyExistingVcn}",
"use_custom_schema_prefix": "#{useCustomSchemaPrefix}",
"rcu_schema_prefix": "#{rcuSchemaPrefix}",
"use_custom_schema_password": "#{useCustomSchemaPassword}",
"rcu_schema_password": "#{rcuSchemaPassword}"
},
"terraformVersion": "0.12.x"
}
Example Response Payload for Oracle SOA Suite on Marketplace
{
"id": "ocid.stack.oc1..<unique_ID>",
"compartmentId": "ocid.compartment.oc1..<unique_ID>",
"displayName": "Stack Display Name",
"description": "Brief description of the stack.",
"timeCreated": "2018-10-02T19:18:44.437Z",
"lifecycleState": "CREATING"
"configSource": {
"configSourceType": "ZIP_UPLOAD"
"workingDirectory": "<file_path_to_directory>"
},
"variables": {
"additionalProp1": "myVariable01"
"additionalProp2": "myVariable02"
},
"terraformVersion": "0.12.x",
"stackDriftStatus": "DRIFTED",
"timeDriftLastChecked": "2019-10-02T19:18:44.437Z",
"freeformTags": {
"additionalProp1": "{"Department": "Finance"}",
},
"definedTags": {
"additionalProp1": {
"additionalProp1": {"CostCenter": "42"},
}
}
}
Output
The response payload provides the OCID for the value of stackId
in Create a Plan Job and Create an Apply Job.
Create a Plan Job
Once the stack is created successfully, use the CreateJob
REST API to create a plan job, using the stack ID.
Syntax
See CreateJob
in the Oracle Cloud
Infrastructure documentation.
Example Request Payload for Oracle SOA Suite on Marketplace
{
"displayName": "sob12214noncrop-plan",
"stackId": "#{mp_createStack-id}",
"jobOperationDetails": {
"operation": "PLAN"
}
}
where
stackId
is shown in the output ofCreateStack
Example Response Payload for Oracle SOA Suite on Marketplace
{
"id": "ocid.job.oc1..<unique_ID>",
"stackId": "ocid.stack.oc1..<unique_ID>",
"compartmentId": "ocid.compartment.oc1..<unique_ID>",
"displayName": "Stack Display Name",
"operation": "Apply",
"jobOperationDetails": {
"operation": "APPLY",
"executionPlanStrategy": "FROM_PLAN_JOB_ID",
"executionPlanJobId": "ocid.job.oc1..<unique_ID>"
},
"applyJobPlanResolution": {
"planJobId": "ocid.job.oc1..<unique_ID>"
},
"resolvedPlanJobId": "ocid.job.oc1..<unique_ID>",
"timeCreated": "2018-10-02T19:18:44.437Z",
"timeFinished": "2018-10-02T19:18:44.439Z",
"lifecycleState": "IN_PROGRESS"
"workingDirectory": "<file_path_to_directory>",
"variables": {
"additionalProp1": "myVariable01"
"additionalProp2": "myVariable02"
},
"configSource": {
"configSourceType": "GIT_CONFIG_SOURCE",
"workingDirectory": "<file_path_to_directory>",
"configurationSourceProviderId": "ocid.ormconfigsourceprovider.oc1..<unique_ID>",
"branchName": "MyBranch",
"repositoryUrl":"https://github.com/user/repo.git",
"commitId": "3244456656565678787"
},
"freeformTags": {
"additionalProp1": "{"Department": "Finance"}",
},
"definedTags": {
"additionalProp1": {
"additionalProp1": {"CostCenter": "42"},
}
}
}
Output
The response payload provides the OCID for the value of executionPlanJobId
in Create an Apply Job.
Create an Apply Job
Once the plan job completes successfully, use the CreateJob
REST API to create an apply job for the same stack.
Syntax
See CreateJob
in the Oracle Cloud
Infrastructure documentation.
Example Request Payload for Oracle SOA Suite on Marketplace
{
"stackId": "#{mp_createStack-id}",
"displayName": "sob12214noncrop-apply",
"jobOperationDetails": {
"operation": "APPLY",
"executionPlanStrategy": "FROM_PLAN_JOB_ID",
"executionPlanJobId": "#{mp_planJob-id}"
}
}
where
stackId
is the job OCI shown shown in the output ofCreateStack
Example Response Payload for Oracle SOA Suite on Marketplace
{
"id": "ocid.job.oc1..<unique_ID>",
"stackId": "ocid.stack.oc1..<unique_ID>",
"compartmentId": "ocid.compartment.oc1..<unique_ID>",
"displayName": "Stack Display Name",
"operation": "Apply",
"jobOperationDetails": {
"operation": "APPLY",
"executionPlanStrategy": "FROM_PLAN_JOB_ID",
"executionPlanJobId": "ocid.job.oc1..<unique_ID>"
},
"applyJobPlanResolution": {
"planJobId": "ocid.job.oc1..<unique_ID>"
},
"resolvedPlanJobId": "ocid.job.oc1..<unique_ID>",
"timeCreated": "2018-10-02T19:18:44.437Z",
"timeFinished": "2018-10-02T19:18:44.439Z",
"lifecycleState": "IN_PROGRESS"
"workingDirectory": "<file_path_to_directory>",
"variables": {
"additionalProp1": "myVariable01"
"additionalProp2": "myVariable02"
},
"configSource": {
"configSourceType": "GIT_CONFIG_SOURCE",
"workingDirectory": "<file_path_to_directory>",
"configurationSourceProviderId": "ocid.ormconfigsourceprovider.oc1..<unique_ID>",
"branchName": "MyBranch",
"repositoryUrl":"https://github.com/user/repo.git",
"commitId": "3244456656565678787"
},
"freeformTags": {
"additionalProp1": "{"Department": "Finance"}",
},
"definedTags": {
"additionalProp1": {
"additionalProp1": {"CostCenter": "42"},
}
}
}