``generate-recommended-vm-cluster-network``
===========================================
.. contents:: :local:
 :depth: 1
Description
------------
Generates a recommended Cloud@Customer VM cluster network configuration. 


Usage
-----
.. code-block:: none

  oci db exadata-infrastructure generate-recommended-vm-cluster-network [OPTIONS]

Required Parameters
--------------------
.. option:: --compartment-id, -c [text]

The `OCID <https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm>`__ of the compartment.

.. option:: --display-name [text]

The user-friendly name for the VM cluster network. The name does not need to be unique.

.. option:: --exadata-infrastructure-id [text]

The Exadata infrastructure `OCID <https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm>`__.

.. option:: --networks [complex type]

List of parameters for generation of the client and backup networks.
This is a complex type whose value must be valid JSON. The value can be provided as a string on the command line or passed in as a file using
the file://path/to/file syntax.

The :option:`--generate-param-json-input` option can be used to generate an example of the JSON which must be provided. We recommend storing this example
in a file, modifying it as needed and then passing it back in via the file:// syntax.



Optional Parameters
--------------------
.. option:: --db-servers [complex type]

The list of Db server Ids to configure network.
This is a complex type whose value must be valid JSON. The value can be provided as a string on the command line or passed in as a file using
the file://path/to/file syntax.

The :option:`--generate-param-json-input` option can be used to generate an example of the JSON which must be provided. We recommend storing this example
in a file, modifying it as needed and then passing it back in via the file:// syntax.

.. option:: --defined-tags [complex type]

Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see `Resource Tags <https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm>`__.
This is a complex type whose value must be valid JSON. The value can be provided as a string on the command line or passed in as a file using
the file://path/to/file syntax.

The :option:`--generate-param-json-input` option can be used to generate an example of the JSON which must be provided. We recommend storing this example
in a file, modifying it as needed and then passing it back in via the file:// syntax.

.. option:: --dns [complex type]

The list of DNS server IP addresses. Maximum of 3 allowed.
This is a complex type whose value must be valid JSON. The value can be provided as a string on the command line or passed in as a file using
the file://path/to/file syntax.

The :option:`--generate-param-json-input` option can be used to generate an example of the JSON which must be provided. We recommend storing this example
in a file, modifying it as needed and then passing it back in via the file:// syntax.

.. option:: --dr-scan-listener-port-tcp [integer]

The DR SCAN TCPIP port. Default is 1521.

.. option:: --freeform-tags [complex type]

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 <https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm>`__.


Example:

.. code-block:: python

    {"Department": "Finance"}

This is a complex type whose value must be valid JSON. The value can be provided as a string on the command line or passed in as a file using
the file://path/to/file syntax.

The :option:`--generate-param-json-input` option can be used to generate an example of the JSON which must be provided. We recommend storing this example
in a file, modifying it as needed and then passing it back in via the file:// syntax.

.. option:: --from-json [text]

Provide input to this command as a JSON document from a file using the file://path-to/file syntax.

The :option:`--generate-full-command-json-input` option can be used to generate a sample json file to be used with this command option. The key names are pre-populated and match the command option names (converted to camelCase format, e.g. compartment-id --> compartmentId), while the values of the keys need to be populated by the user before using the sample file as an input to this command. For any command option that accepts multiple values, the value of the key can be a JSON array.

Options can still be provided on the command line. If an option exists in both the JSON document and the command line then the command line specified value will be used.

For examples on usage of this option, please see our "using CLI with advanced JSON options" link: https://docs.cloud.oracle.com/iaas/Content/API/SDKDocs/cliusing.htm#AdvancedJSONOptions

.. option:: --ntp [complex type]

The list of NTP server IP addresses. Maximum of 3 allowed.
This is a complex type whose value must be valid JSON. The value can be provided as a string on the command line or passed in as a file using
the file://path/to/file syntax.

The :option:`--generate-param-json-input` option can be used to generate an example of the JSON which must be provided. We recommend storing this example
in a file, modifying it as needed and then passing it back in via the file:// syntax.

.. option:: --scan-listener-port-tcp [integer]

The SCAN TCPIP port. Default is 1521.

.. option:: --scan-listener-port-tcp-ssl [integer]

The SCAN TCPIP SSL port. Default is 2484.



Global Parameters
------------------
Use ``oci --help`` for help on global parameters.

:option:`--auth-purpose`, :option:`--auth`, :option:`--cert-bundle`, :option:`--cli-auto-prompt`, :option:`--cli-rc-file`, :option:`--config-file`, :option:`--connection-timeout`, :option:`--debug`, :option:`--defaults-file`, :option:`--endpoint`, :option:`--generate-full-command-json-input`, :option:`--generate-param-json-input`, :option:`--help`, :option:`--latest-version`, :option:`--max-retries`, :option:`--no-retry`, :option:`--opc-client-request-id`, :option:`--opc-request-id`, :option:`--output`, :option:`--profile`, :option:`--proxy`, :option:`--query`, :option:`--raw-output`, :option:`--read-timeout`, :option:`--realm-specific-endpoint`, :option:`--region`, :option:`--release-info`, :option:`--request-id`, :option:`--version`, :option:`-?`, :option:`-d`, :option:`-h`, :option:`-i`, :option:`-v`



Example using required parameter
------------------

Copy and paste the following example into a JSON file, replacing the example parameters with your own.

.. code-block:: none
    :class: copy-code-block

    
	oci db exadata-infrastructure create --generate-param-json-input dns-server > dns-server.json
	oci db exadata-infrastructure create --generate-param-json-input ntp-server > ntp-server.json
	
	oci db exadata-infrastructure generate-recommended-vm-cluster-network --generate-param-json-input networks > networks.json
	


Copy the following CLI commands into a file named example.sh. Run the command by typing "bash example.sh" and replacing the example parameters with your own.

Please note this sample will only work in the POSIX-compliant bash-like shell. You need to set up `the OCI configuration  <https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/cliinstall.htm#configfile>`__ and `appropriate security policies  <https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/policygetstarted.htm>`__ before trying the examples.

.. code-block:: none
    :class: copy-code-block

    
	export admin_network_cidr=<substitute-value-of-admin_network_cidr> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-admin-network-cidr
	export cloud_control_plane_server1=<substitute-value-of-cloud_control_plane_server1> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-cloud-control-plane-server1
	export cloud_control_plane_server2=<substitute-value-of-cloud_control_plane_server2> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-cloud-control-plane-server2
	export compartment_id=<substitute-value-of-compartment_id> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-compartment-id
	export display_name=<substitute-value-of-display_name> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-display-name
	export gateway=<substitute-value-of-gateway> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-gateway
	export infini_band_network_cidr=<substitute-value-of-infini_band_network_cidr> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-infini-band-network-cidr
	export netmask=<substitute-value-of-netmask> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-netmask
	export shape=<substitute-value-of-shape> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-shape
	export time_zone=<substitute-value-of-time_zone> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/exadata-infrastructure/create.html#cmdoption-time-zone
	
	exadata_infrastructure_id=$(oci db exadata-infrastructure create --admin-network-cidr $admin_network_cidr --cloud-control-plane-server1 $cloud_control_plane_server1 --cloud-control-plane-server2 $cloud_control_plane_server2 --compartment-id $compartment_id --display-name $display_name --dns-server file://dns-server.json --gateway $gateway --infini-band-network-cidr $infini_band_network_cidr --netmask $netmask --ntp-server file://ntp-server.json --shape $shape --time-zone $time_zone --query data.id --raw-output)
	
	oci db exadata-infrastructure generate-recommended-vm-cluster-network --compartment-id $compartment_id --display-name $display_name --exadata-infrastructure-id $exadata_infrastructure_id --networks file://networks.json



