> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexagon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# createConnectionPlan

> This operation will create a template connection plan file using all the connections found on the current OIC Target. This connection plan can be appl

This operation will create a template connection plan file using all the connections found on the current OIC Target.  This connection plan can be applied during the [updateConnections](https://docs.flexagon.com/flexdeploy-10-0-documentation/flexdeploy-plugin-guides/flexdeploy-oracle-integration-cloud-plugin-guide/updateconnections.md), [importIntegration](https://docs.flexagon.com/flexdeploy-10-0-documentation/flexdeploy-plugin-guides/flexdeploy-oracle-integration-cloud-plugin-guide/importintegration.md), or [partialDeploy](https://docs.flexagon.com/flexdeploy-10-0-documentation/flexdeploy-plugin-guides/flexdeploy-oracle-integration-cloud-plugin-guide/packagedeploy-oic.md) operation.

Its purpose is to allow environment-specific properties to be replaced for connections prior to deployment.  This prevents manual updates of the connection's artifacts between deployments to different environments.

> [!NOTE]
>
> Either **FDOIC\_CLOUD\_ACCOUNT\_CODE** target property value or **FDOIC\_INP\_CLOUD\_ACCOUNT\_CODE** plugin input value should exist. When both exist, the plugin input value will take precedence. See [Creating/Editing a Cloud Account and Provider](https://docs.flexagon.com/flexdeploy-10-0-documentation/flexdeploy-users-guide/integrations/cloud-account-and-provider.md) for details on how to setup Cloud Account for OIC.

# Target Properties

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Property Name**</th><th>**Property Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>OIC Account</td><td>`FDOIC_CLOUD_ACCOUNT_CODE`</td><td>No</td><td>The OIC account with all the required properties like Base URI, Username and Password for connecting to an OIC Instance.</td></tr></tbody></table>

# Inputs

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Input Name**</th><th>**Input Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>OIC Account</td><td>`FDOIC_INP_CLOUD_ACCOUNT_CODE`</td><td>No</td><td>The OIC account with all the required properties like Base URI, Username and Password for connecting to an OIC Instance.Typically, this will not be used because the value will come from the property FDOIC\_CLOUD\_ACCOUNT\_CODE instead.</td></tr><tr><td>OIC Connection List</td><td>`FDOIC_INP_CONNECTION_LIST`</td><td>No</td><td>CSV list of connection ids to use during creation. Leave blank to create a connection plan for all connections on in the OIC environment.</td></tr><tr><td>OIC Project List</td><td>`FDOIC_INP_PROJECT_LIST`</td><td>No</td><td>CSV list of project ids to create connection plans for. Leave blank to export all project connections.</td></tr><tr><td>OIC Connection Plan File</td><td>`FDOIC_INP_CONNECTION_PLAN`</td><td>No</td><td>Optional input to specify a different connection plan file name. If not specified, it defaults to 'connectionPlan.properties'.  An absolute path can be specified. Otherwise, the location is relative to the temp directory.</td></tr></tbody></table>

If neither the OIC Connection List nor the OIC Project List is given, connection plans for all connections are created.

If either is given, just connection plans for those listed are created.

If both are given, connection plans for the listed of both lists are created.

# Artifacts

This operation doesn’t consume or produce any artifacts.

# Endpoint Selection

This operation will select all available endpoints associated to the Target.

# Endpoint Execution

This operation will execute on any one of the selected endpoints and will be random in the determination of which one.

# Special Considerations

## Connection Plan Format

The connection plan closely follows Java Properties syntax with the notable exception that spaces to not delimit the key value pairs. 

> [!NOTE]
>
> ### Line Format
>
> %ConnectionId%.(connection|secure).%propertyDisplayName%=%value%

<table><colgroup><col /><col /></colgroup><tbody><tr><th>Line Field</th><th>Description</th></tr><tr><td>ConnectionId</td><td>The connectionId on the server.  This is typically the connection name found in the UI with spaces replaced by underscores and in all caps.  Example: Sample FTP Connection = SAMPLE\_FTP\_CONNECTION.</td></tr><tr><td>connection|secure</td><td>Literal text of either 'connection' or 'secure' to indicate if it is a secure property or normal connection property.</td></tr><tr><td>propertyDisplayName</td><td>This is the name of the property as seen in the UI.</td></tr><tr><td>value</td><td>This is the literal text or FD Properties.</td></tr></tbody></table>

##### **Sample Properties**

```
#Add values for any properties you wish to change when updating connections.
#FlexDeploy properties or plain text are allowed

SAMPLE_FTP_CONNECTION.connection.FTP Server Host Address=${{FD_OIC_FTP_HOST}}
SAMPLE_FTP_CONNECTION.connection.FTP Server Port=
SAMPLE_FTP_CONNECTION.connection.SFTP Connection=
SAMPLE_FTP_CONNECTION.connection.Host Key=
SAMPLE_FTP_CONNECTION.connection.SSL Certificate=
SAMPLE_FTP_CONNECTION.connection.FTP Server Time Zone=
SAMPLE_FTP_CONNECTION.secure.User Name=albundy
SAMPLE_FTP_CONNECTION.secure.Password=${{FD_OIC_FTP_PASSWORD}}
SAMPLE_FTP_CONNECTION.secure.SSL Certificate Password=
SAMPLE_FTP_CONNECTION.secure.PGP Public Key=
SAMPLE_FTP_CONNECTION.secure.ASCII-Armor Encryption Format=
SAMPLE_FTP_CONNECTION.secure.Cipher Algorithm=
SAMPLE_FTP_CONNECTION.secure.PGP Private Key=
SAMPLE_FTP_CONNECTION.secure.PGP Private Key Password=

TEST_SOAP_CONNECTION.connection.WSDL URL=
TEST_SOAP_CONNECTION.connection.Service WSDL=
TEST_SOAP_CONNECTION.connection.Target Server's TLS version (Optional)=
TEST_SOAP_CONNECTION.connection.Suppress insertion of timestamp into the request (Optional)=
TEST_SOAP_CONNECTION.connection.Ignore timestamp in the response message (Optional)=
TEST_SOAP_CONNECTION.connection.Enable two way SSL for outbound connections (Optional)=
TEST_SOAP_CONNECTION.connection.Identity keystore alias name (Optional)=
```

## Connection Plan Processing

In the sample above we can see we are replacing the FTP Server Host on the SAMPLE\_FTP\_CONNECTION with \$\{\{FD\_OIC\_FTP\_HOST}}.  This means that FD\_OIC\_FTP\_HOST is configured as a FlexDeploy property (most likely a Target property) and has a different value for each OIC environment we have.  This allows us to dynamically set the FTP Server Host based on environment without ever changing our artifacts. The properties should be added to a deploy workflow that is used to deploy the integrations or update the connections. Then the workflow must be connected to the OIC target group using the topology screens.

> [!NOTE]
>
> ### Empty Properties
>
> Only properties that need to be replaced should be in the connection plan file.  If there are lines without a value (as seen above), the property will be set to null.
