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 of CreateStack

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 of CreateStack

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"},
    }
  }
}