フォーマット済JSONの生成

「パラメータ'parameter_name'はJSON形式である必要があります」というメッセージを受信した場合、JSON形式が正しくありません。次の方法は、データを正しく書式設定するのに役立ちます。

単一の複合型オプション値のJSON形式

オプションが複合型の場合、--generate-param-json-inputオプションを使用して、そのオプション値のJSON形式を生成できます。--generate-param-json-inputオプションの引数は、--オプション指定子を使用せずに、JSON形式にするオプションの名前です。たとえば、次のコマンドは、ルート表のルート・ルール(--route-rulesオプション)の指定に使用するJSON形式を示します。

network route-table update --generate-param-json-input route-rules
[
  {
    "cidrBlock": "string",
    "description": "string",
    "destination": "string",
    "destinationType": "string",
    "networkEntityId": "string"
  },
  {
    "cidrBlock": "string",
    "description": "string",
    "destination": "string",
    "destinationType": "string",
    "networkEntityId": "string"
  }
]

オプション引数に指定する値によって、既存の値が置き換えられます。たとえば、イングレス・ルールがすでにあり、エグレス・ルールを追加する場合は、既存のイングレス・ルールと新しいエグレス・ルールの両方を指定する必要があります。追加するルールのみを指定した場合、既存のルールは失われます。同様に、ポリシー・ステートメントを追加したり、定義済タグの値を追加するには、追加する内容に加えて、保持する既存のステートメントまたは値を再指定する必要があります。

次の例のように、出力に選択肢に関するメッセージが含まれている場合があります。

oci compute instance launch --generate-param-json-input source-details
[
  "This parameter should actually be a JSON object rather than an array - pick one of the
  following object variants to use",
  {
    "bootVolumeId": "string",
    "sourceType": "bootVolume"
  },
  {
    "bootVolumeSizeInGBs": 0,
    "imageId": "string",
    "kmsKeyId": "string",
    "sourceType": "image"
  }
]

Compute Web UIを使用してインスタンスを作成する場合は、カスタム・イメージまたはブート・ボリュームのいずれかを選択します。同様に、前述の例のメッセージでは、ブート・ボリューム・ブロックまたはイメージ・ブロックのいずれかを指定するように指示されます。両方を指定することはできません。

コマンドのすべてのオプションの値に対するJSON形式

--generate-full-command-json-inputオプションは、複合値でない値を含む、指定されたコマンドのすべてのオプションの値の JSON形式を示します。

oci network route-table update --generate-full-command-json-input > route_table_update.json

この出力のカスタマイズされたバージョンを渡すには、--from-jsonオプションを使用します。

oci network route-table update --from-json file://route_table_update.json

既存の値のJSON形式

このタイプのリソースがすでに存在する場合は、リソースのgetまたはlistを実行して、JSONの書式設定を確認したり、現在の値をチェックします。

oci network route-table get --rt-id ocid1.routetable.unique_ID

必要なブロックをこの出力から直接コピーし、必要に応じて値を変更します。

複数の値が許可される場合は、この方法を使用して、保持する値を上書きしないようにします。必要なブロックをgetまたはlist出力からコピーし、必要に応じて値を変更、追加または削除します。