oci-cli 3.64.0__py3-none-any.whl → 3.64.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list-finding-analytics.txt +14 -0
  2. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list-findings.txt +8 -0
  3. oci_cli/help_text_producer/data_files/text/cmdref/db/pluggable-database/create-local-clone.txt +4 -0
  4. oci_cli/help_text_producer/data_files/text/cmdref/db/pluggable-database/create-remote-clone.txt +4 -0
  5. oci_cli/help_text_producer/data_files/text/cmdref/db/pluggable-database/create-snapshot.txt +157 -0
  6. oci_cli/help_text_producer/data_files/text/cmdref/db/pluggable-database/delete-snapshot.txt +129 -0
  7. oci_cli/help_text_producer/data_files/text/cmdref/db/pluggable-database/get-snapshot.txt +92 -0
  8. oci_cli/help_text_producer/data_files/text/cmdref/db/pluggable-database/list-snapshots.txt +145 -0
  9. oci_cli/help_text_producer/data_files/text/cmdref/db/pluggable-database.txt +8 -0
  10. oci_cli/help_text_producer/data_files/text/cmdref/db.txt +8 -0
  11. oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control/work-request/{work-request-log/list.txt → work-request-log-entry/list-work-request-logs.txt} +5 -5
  12. oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control/work-request/{work-request-log.txt → work-request-log-entry.txt} +3 -3
  13. oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control/work-request.txt +2 -2
  14. oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control.txt +2 -2
  15. oci_cli/help_text_producer/data_files/text/cmdref/generative-ai-inference/chat-result/chat-cohere-chat-request.txt +3 -1
  16. oci_cli/help_text_producer/data_files/text/cmdref/generative-ai-inference/chat-result/chat-generic-chat-request.txt +83 -3
  17. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/work-request-error/{list.txt → list-errors.txt} +5 -5
  18. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/work-request-error.txt +1 -1
  19. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/work-request-log-entry/{list-work-request-logs.txt → list-logs.txt} +5 -5
  20. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/work-request-log-entry.txt +1 -1
  21. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request.txt +2 -2
  22. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane.txt +2 -2
  23. oci_cli/help_text_producer/data_files/text/cmdref/lfs/lustre-file-system.txt +1 -1
  24. oci_cli/help_text_producer/data_files/text/cmdref/lfs.txt +2 -1
  25. oci_cli/help_text_producer/data_files/text/cmdref/network/ipv6/create.txt +4 -0
  26. oci_cli/help_text_producer/data_files/text/cmdref/network/vnic/assign-ipv6.txt +4 -0
  27. oci_cli/help_text_producer/data_files/text/cmdref/support/incident/create.txt +6 -6
  28. oci_cli/help_text_producer/data_files/text/cmdref/support/incident/get.txt +2 -2
  29. oci_cli/help_text_producer/data_files/text/cmdref/support/incident/list.txt +1 -1
  30. oci_cli/help_text_producer/data_files/text/cmdref/support/incident/update.txt +4 -4
  31. oci_cli/help_text_producer/data_files/text/cmdref/support/incident-resource-type/list.txt +3 -3
  32. oci_cli/help_text_producer/data_files/text/cmdref/support/validation-response/validate-user.txt +1 -1
  33. oci_cli/version.py +1 -1
  34. {oci_cli-3.64.0.dist-info → oci_cli-3.64.1.dist-info}/METADATA +2 -2
  35. {oci_cli-3.64.0.dist-info → oci_cli-3.64.1.dist-info}/RECORD +46 -42
  36. services/core/src/oci_cli_virtual_network/generated/virtualnetwork_cli.py +5 -1
  37. services/core/src/oci_cli_virtual_network/virtualnetwork_cli_extended.py +5 -1
  38. services/data_safe/src/oci_cli_data_safe/generated/datasafe_cli.py +12 -2
  39. services/database/src/oci_cli_database/database_cli_extended.py +53 -2
  40. services/database/src/oci_cli_database/generated/database_cli.py +222 -2
  41. services/generative_ai_inference/src/oci_cli_generative_ai_inference/generated/generativeaiinference_cli.py +39 -5
  42. {oci_cli-3.64.0.dist-info → oci_cli-3.64.1.dist-info}/LICENSE.txt +0 -0
  43. {oci_cli-3.64.0.dist-info → oci_cli-3.64.1.dist-info}/THIRD_PARTY_LICENSES.txt +0 -0
  44. {oci_cli-3.64.0.dist-info → oci_cli-3.64.1.dist-info}/WHEEL +0 -0
  45. {oci_cli-3.64.0.dist-info → oci_cli-3.64.1.dist-info}/entry_points.txt +0 -0
  46. {oci_cli-3.64.0.dist-info → oci_cli-3.64.1.dist-info}/top_level.txt +0 -0
@@ -482,6 +482,12 @@ def db_version_group():
482
482
  pass
483
483
 
484
484
 
485
+ @click.command(cli_util.override('db.pluggable_database_snapshot_group.command_name', 'pluggable-database-snapshot'), cls=CommandGroupWithAlias, help="""Details of the Pluggable Database Snapshot.""")
486
+ @cli_util.help_option_group
487
+ def pluggable_database_snapshot_group():
488
+ pass
489
+
490
+
485
491
  @click.command(cli_util.override('db.key_store_summary_group.command_name', 'key-store-summary'), cls=CommandGroupWithAlias, help="""Details of the Key Store.""")
486
492
  @cli_util.help_option_group
487
493
  def key_store_summary_group():
@@ -593,6 +599,7 @@ db_root_group.add_command(cloud_vm_cluster_group)
593
599
  db_root_group.add_command(exascale_db_storage_vault_group)
594
600
  db_root_group.add_command(autonomous_db_version_group)
595
601
  db_root_group.add_command(db_version_group)
602
+ db_root_group.add_command(pluggable_database_snapshot_group)
596
603
  db_root_group.add_command(key_store_summary_group)
597
604
  db_root_group.add_command(autonomous_db_preview_version_group)
598
605
  db_root_group.add_command(vm_cluster_group)
@@ -14096,6 +14103,7 @@ Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMP
14096
14103
  @cli_util.option('--pdb-creation-type-details-dblink-user-password', help=u"""The DB link user password.""")
14097
14104
  @cli_util.option('--pdb-creation-type-details-refreshable-clone-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
14098
14105
  @cli_util.option('--pdb-creation-type-details-is-thin-clone', type=click.BOOL, help=u"""True if Pluggable Database needs to be thin cloned and false if Pluggable Database needs to be thick cloned.""")
14106
+ @cli_util.option('--pdb-creation-type-details-source-pluggable-database-snapshot-id', help=u"""The OCID of the Source Pluggable Database Snapshot id.""")
14099
14107
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["PROVISIONING", "AVAILABLE", "TERMINATING", "TERMINATED", "UPDATING", "FAILED", "RELOCATING", "RELOCATED", "REFRESHING", "RESTORE_IN_PROGRESS", "RESTORE_FAILED", "BACKUP_IN_PROGRESS", "DISABLED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
14100
14108
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
14101
14109
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
@@ -14104,7 +14112,7 @@ Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMP
14104
14112
  @click.pass_context
14105
14113
  @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'freeform-tags': {'module': 'database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'database', 'class': 'dict(str, dict(str, object))'}, 'pdb-creation-type-details-refreshable-clone-details': {'module': 'database', 'class': 'CreatePluggableDatabaseRefreshableCloneDetails'}}, output_type={'module': 'database', 'class': 'PluggableDatabase'})
14106
14114
  @cli_util.wrap_exceptions
14107
- def create_pluggable_database_create_pluggable_database_from_remote_clone_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, pdb_name, container_database_id, pdb_creation_type_details_source_pluggable_database_id, pdb_creation_type_details_source_container_database_admin_password, pdb_admin_password, tde_wallet_password, should_pdb_admin_account_be_locked, container_database_admin_password, should_create_pdb_backup, freeform_tags, defined_tags, pdb_creation_type_details_dblink_username, pdb_creation_type_details_dblink_user_password, pdb_creation_type_details_refreshable_clone_details, pdb_creation_type_details_is_thin_clone):
14115
+ def create_pluggable_database_create_pluggable_database_from_remote_clone_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, pdb_name, container_database_id, pdb_creation_type_details_source_pluggable_database_id, pdb_creation_type_details_source_container_database_admin_password, pdb_admin_password, tde_wallet_password, should_pdb_admin_account_be_locked, container_database_admin_password, should_create_pdb_backup, freeform_tags, defined_tags, pdb_creation_type_details_dblink_username, pdb_creation_type_details_dblink_user_password, pdb_creation_type_details_refreshable_clone_details, pdb_creation_type_details_is_thin_clone, pdb_creation_type_details_source_pluggable_database_snapshot_id):
14108
14116
 
14109
14117
  kwargs = {}
14110
14118
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
@@ -14149,6 +14157,9 @@ def create_pluggable_database_create_pluggable_database_from_remote_clone_detail
14149
14157
  if pdb_creation_type_details_is_thin_clone is not None:
14150
14158
  _details['pdbCreationTypeDetails']['isThinClone'] = pdb_creation_type_details_is_thin_clone
14151
14159
 
14160
+ if pdb_creation_type_details_source_pluggable_database_snapshot_id is not None:
14161
+ _details['pdbCreationTypeDetails']['sourcePluggableDatabaseSnapshotId'] = pdb_creation_type_details_source_pluggable_database_snapshot_id
14162
+
14152
14163
  _details['pdbCreationTypeDetails']['creationType'] = 'REMOTE_CLONE_PDB'
14153
14164
 
14154
14165
  client = cli_util.build_client('database', 'database', ctx)
@@ -14196,6 +14207,7 @@ def create_pluggable_database_create_pluggable_database_from_remote_clone_detail
14196
14207
  Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
14197
14208
  @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags].""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
14198
14209
  @cli_util.option('--pdb-creation-type-details-is-thin-clone', type=click.BOOL, help=u"""True if Pluggable Database needs to be thin cloned and false if Pluggable Database needs to be thick cloned.""")
14210
+ @cli_util.option('--pdb-creation-type-details-source-pluggable-database-snapshot-id', help=u"""The OCID of the Source Pluggable Database Snapshot id.""")
14199
14211
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["PROVISIONING", "AVAILABLE", "TERMINATING", "TERMINATED", "UPDATING", "FAILED", "RELOCATING", "RELOCATED", "REFRESHING", "RESTORE_IN_PROGRESS", "RESTORE_FAILED", "BACKUP_IN_PROGRESS", "DISABLED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
14200
14212
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
14201
14213
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
@@ -14204,7 +14216,7 @@ Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMP
14204
14216
  @click.pass_context
14205
14217
  @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'freeform-tags': {'module': 'database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'database', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'database', 'class': 'PluggableDatabase'})
14206
14218
  @cli_util.wrap_exceptions
14207
- def create_pluggable_database_create_pluggable_database_from_local_clone_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, pdb_name, container_database_id, pdb_creation_type_details_source_pluggable_database_id, pdb_admin_password, tde_wallet_password, should_pdb_admin_account_be_locked, container_database_admin_password, should_create_pdb_backup, freeform_tags, defined_tags, pdb_creation_type_details_is_thin_clone):
14219
+ def create_pluggable_database_create_pluggable_database_from_local_clone_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, pdb_name, container_database_id, pdb_creation_type_details_source_pluggable_database_id, pdb_admin_password, tde_wallet_password, should_pdb_admin_account_be_locked, container_database_admin_password, should_create_pdb_backup, freeform_tags, defined_tags, pdb_creation_type_details_is_thin_clone, pdb_creation_type_details_source_pluggable_database_snapshot_id):
14208
14220
 
14209
14221
  kwargs = {}
14210
14222
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
@@ -14239,6 +14251,9 @@ def create_pluggable_database_create_pluggable_database_from_local_clone_details
14239
14251
  if pdb_creation_type_details_is_thin_clone is not None:
14240
14252
  _details['pdbCreationTypeDetails']['isThinClone'] = pdb_creation_type_details_is_thin_clone
14241
14253
 
14254
+ if pdb_creation_type_details_source_pluggable_database_snapshot_id is not None:
14255
+ _details['pdbCreationTypeDetails']['sourcePluggableDatabaseSnapshotId'] = pdb_creation_type_details_source_pluggable_database_snapshot_id
14256
+
14242
14257
  _details['pdbCreationTypeDetails']['creationType'] = 'LOCAL_CLONE_PDB'
14243
14258
 
14244
14259
  client = cli_util.build_client('database', 'database', ctx)
@@ -14272,6 +14287,67 @@ def create_pluggable_database_create_pluggable_database_from_local_clone_details
14272
14287
  cli_util.render_response(result, ctx)
14273
14288
 
14274
14289
 
14290
+ @pluggable_database_snapshot_group.command(name=cli_util.override('db.create_pluggable_database_snapshot.command_name', 'create'), help=u"""Creates a Pluggable Database Snapshot \n[Command Reference](createPluggableDatabaseSnapshot)""")
14291
+ @cli_util.option('--name', required=True, help=u"""The user-friendly name for the Database Snapshot. The name should be unique.""")
14292
+ @cli_util.option('--pluggable-database-id', required=True, help=u"""The [OCID] of the Exadata Pluggable Database.""")
14293
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""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].
14294
+
14295
+ Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
14296
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags].""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
14297
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "AVAILABLE", "TERMINATING", "TERMINATED", "FAILED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
14298
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
14299
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
14300
+ @json_skeleton_utils.get_cli_json_input_option({'freeform-tags': {'module': 'database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'database', 'class': 'dict(str, dict(str, object))'}})
14301
+ @cli_util.help_option
14302
+ @click.pass_context
14303
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'freeform-tags': {'module': 'database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'database', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'database', 'class': 'PluggableDatabaseSnapshot'})
14304
+ @cli_util.wrap_exceptions
14305
+ def create_pluggable_database_snapshot(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, name, pluggable_database_id, freeform_tags, defined_tags):
14306
+
14307
+ kwargs = {}
14308
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
14309
+
14310
+ _details = {}
14311
+ _details['name'] = name
14312
+ _details['pluggableDatabaseId'] = pluggable_database_id
14313
+
14314
+ if freeform_tags is not None:
14315
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
14316
+
14317
+ if defined_tags is not None:
14318
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
14319
+
14320
+ client = cli_util.build_client('database', 'database', ctx)
14321
+ result = client.create_pluggable_database_snapshot(
14322
+ create_pluggable_database_snapshot_details=_details,
14323
+ **kwargs
14324
+ )
14325
+ if wait_for_state:
14326
+
14327
+ if hasattr(client, 'get_pluggable_database_snapshot') and callable(getattr(client, 'get_pluggable_database_snapshot')):
14328
+ try:
14329
+ wait_period_kwargs = {}
14330
+ if max_wait_seconds is not None:
14331
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
14332
+ if wait_interval_seconds is not None:
14333
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
14334
+
14335
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
14336
+ result = oci.wait_until(client, client.get_pluggable_database_snapshot(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
14337
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
14338
+ # If we fail, we should show an error, but we should still provide the information to the customer
14339
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
14340
+ cli_util.render_response(result, ctx)
14341
+ sys.exit(2)
14342
+ except Exception:
14343
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
14344
+ cli_util.render_response(result, ctx)
14345
+ raise
14346
+ else:
14347
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
14348
+ cli_util.render_response(result, ctx)
14349
+
14350
+
14275
14351
  @scheduled_action_group.command(name=cli_util.override('db.create_scheduled_action.command_name', 'create'), help=u"""Creates a Scheduled Action resource. \n[Command Reference](createScheduledAction)""")
14276
14352
  @cli_util.option('--action-type', required=True, type=custom_types.CliCaseInsensitiveChoice(["DB_SERVER_FULL_SOFTWARE_UPDATE", "STORAGE_SERVER_FULL_SOFTWARE_UPDATE", "NETWORK_SWITCH_FULL_SOFTWARE_UPDATE"]), help=u"""The type of the scheduled action being performed""")
14277
14353
  @cli_util.option('--scheduling-plan-id', required=True, help=u"""The [OCID] of the Scheduling Plan.""")
@@ -16419,6 +16495,63 @@ def delete_pluggable_database(ctx, from_json, wait_for_state, max_wait_seconds,
16419
16495
  cli_util.render_response(result, ctx)
16420
16496
 
16421
16497
 
16498
+ @pluggable_database_snapshot_group.command(name=cli_util.override('db.delete_pluggable_database_snapshot.command_name', 'delete'), help=u"""Deletes the specified Exadata Pluggable Database Snapshot. \n[Command Reference](deletePluggableDatabaseSnapshot)""")
16499
+ @cli_util.option('--pluggable-database-snapshot-id', required=True, help=u"""The Exadata Pluggable Database Snapshot [OCID].""")
16500
+ @cli_util.option('--if-match', help=u"""For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the etag from a previous GET or POST response for that resource. The resource will be updated or deleted only if the etag you provide matches the resource's current etag value.""")
16501
+ @cli_util.confirm_delete_option
16502
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED"]), multiple=True, help="""This operation asynchronously creates, modifies or deletes a resource and uses a work request to track the progress of the operation. Specify this option to perform the action and then wait until the work request reaches a certain state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
16503
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the work request to reach the state defined by --wait-for-state. Defaults to 1200 seconds.""")
16504
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the work request has reached the state defined by --wait-for-state. Defaults to 30 seconds.""")
16505
+ @json_skeleton_utils.get_cli_json_input_option({})
16506
+ @cli_util.help_option
16507
+ @click.pass_context
16508
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={})
16509
+ @cli_util.wrap_exceptions
16510
+ def delete_pluggable_database_snapshot(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, pluggable_database_snapshot_id, if_match):
16511
+
16512
+ if isinstance(pluggable_database_snapshot_id, six.string_types) and len(pluggable_database_snapshot_id.strip()) == 0:
16513
+ raise click.UsageError('Parameter --pluggable-database-snapshot-id cannot be whitespace or empty string')
16514
+
16515
+ kwargs = {}
16516
+ if if_match is not None:
16517
+ kwargs['if_match'] = if_match
16518
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
16519
+ client = cli_util.build_client('database', 'database', ctx)
16520
+ result = client.delete_pluggable_database_snapshot(
16521
+ pluggable_database_snapshot_id=pluggable_database_snapshot_id,
16522
+ **kwargs
16523
+ )
16524
+ work_request_client = cli_util.build_client('work_requests', 'work_request', ctx)
16525
+ if wait_for_state:
16526
+
16527
+ if hasattr(work_request_client, 'get_work_request') and callable(getattr(work_request_client, 'get_work_request')):
16528
+ try:
16529
+ wait_period_kwargs = {}
16530
+ if max_wait_seconds is not None:
16531
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
16532
+ if wait_interval_seconds is not None:
16533
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
16534
+ if 'opc-work-request-id' not in result.headers:
16535
+ click.echo('Encountered error while waiting for work request to enter the specified state. Outputting last known resource state')
16536
+ cli_util.render_response(result, ctx)
16537
+ return
16538
+
16539
+ click.echo('Action completed. Waiting until the work request has entered state: {}'.format(wait_for_state), file=sys.stderr)
16540
+ result = oci.wait_until(work_request_client, work_request_client.get_work_request(result.headers['opc-work-request-id']), 'status', wait_for_state, **wait_period_kwargs)
16541
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
16542
+ # If we fail, we should show an error, but we should still provide the information to the customer
16543
+ click.echo('Failed to wait until the work request entered the specified state. Please retrieve the work request to find its current state', file=sys.stderr)
16544
+ cli_util.render_response(result, ctx)
16545
+ sys.exit(2)
16546
+ except Exception:
16547
+ click.echo('Encountered error while waiting for work request to enter the specified state. Outputting last known resource state', file=sys.stderr)
16548
+ cli_util.render_response(result, ctx)
16549
+ raise
16550
+ else:
16551
+ click.echo('Unable to wait for the work request to enter the specified state', file=sys.stderr)
16552
+ cli_util.render_response(result, ctx)
16553
+
16554
+
16422
16555
  @scheduled_action_group.command(name=cli_util.override('db.delete_scheduled_action.command_name', 'delete'), help=u"""Deletes the scheduled action. \n[Command Reference](deleteScheduledAction)""")
16423
16556
  @cli_util.option('--scheduled-action-id', required=True, help=u"""The Scheduled Action [OCID].""")
16424
16557
  @cli_util.option('--if-match', help=u"""For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the etag from a previous GET or POST response for that resource. The resource will be updated or deleted only if the etag you provide matches the resource's current etag value.""")
@@ -20543,6 +20676,28 @@ def get_pluggable_database(ctx, from_json, pluggable_database_id):
20543
20676
  cli_util.render_response(result, ctx)
20544
20677
 
20545
20678
 
20679
+ @pluggable_database_snapshot_group.command(name=cli_util.override('db.get_pluggable_database_snapshot.command_name', 'get'), help=u"""Gets information about the specified Exadata Pluggable Database Snapshot in the specified compartment. \n[Command Reference](getPluggableDatabaseSnapshot)""")
20680
+ @cli_util.option('--pluggable-database-snapshot-id', required=True, help=u"""The Exadata Pluggable Database Snapshot [OCID].""")
20681
+ @json_skeleton_utils.get_cli_json_input_option({})
20682
+ @cli_util.help_option
20683
+ @click.pass_context
20684
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={}, output_type={'module': 'database', 'class': 'PluggableDatabaseSnapshot'})
20685
+ @cli_util.wrap_exceptions
20686
+ def get_pluggable_database_snapshot(ctx, from_json, pluggable_database_snapshot_id):
20687
+
20688
+ if isinstance(pluggable_database_snapshot_id, six.string_types) and len(pluggable_database_snapshot_id.strip()) == 0:
20689
+ raise click.UsageError('Parameter --pluggable-database-snapshot-id cannot be whitespace or empty string')
20690
+
20691
+ kwargs = {}
20692
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
20693
+ client = cli_util.build_client('database', 'database', ctx)
20694
+ result = client.get_pluggable_database_snapshot(
20695
+ pluggable_database_snapshot_id=pluggable_database_snapshot_id,
20696
+ **kwargs
20697
+ )
20698
+ cli_util.render_response(result, ctx)
20699
+
20700
+
20546
20701
  @scheduled_action_group.command(name=cli_util.override('db.get_scheduled_action.command_name', 'get'), help=u"""Gets information about the specified Scheduled Action. \n[Command Reference](getScheduledAction)""")
20547
20702
  @cli_util.option('--scheduled-action-id', required=True, help=u"""The Scheduled Action [OCID].""")
20548
20703
  @json_skeleton_utils.get_cli_json_input_option({})
@@ -25902,6 +26057,71 @@ def list_pdb_conversion_history_entries(ctx, from_json, all_pages, page_size, da
25902
26057
  cli_util.render_response(result, ctx)
25903
26058
 
25904
26059
 
26060
+ @pluggable_database_snapshot_group.command(name=cli_util.override('db.list_pluggable_database_snapshots.command_name', 'list'), help=u"""Gets a list of the Exadata Pluggable Database Snapshots in the specified compartment. \n[Command Reference](listPluggableDatabaseSnapshots)""")
26061
+ @cli_util.option('--compartment-id', help=u"""The compartment [OCID].""")
26062
+ @cli_util.option('--limit', type=click.INT, help=u"""The maximum number of items to return per page.""")
26063
+ @cli_util.option('--page', help=u"""The pagination token to continue listing from.""")
26064
+ @cli_util.option('--sort-by', type=custom_types.CliCaseInsensitiveChoice(["TIMECREATED", "NAME"]), help=u"""The field to sort by. You can provide one sort order (`sortOrder`). Default order for TIMECREATED is descending. Default order for NAME is ascending. The NAME sort order is case sensitive.""")
26065
+ @cli_util.option('--name', help=u"""A filter to return only resources that match the entire name given. The match is not case sensitive.""")
26066
+ @cli_util.option('--sort-order', type=custom_types.CliCaseInsensitiveChoice(["ASC", "DESC"]), help=u"""The sort order to use, either ascending (`ASC`) or descending (`DESC`).""")
26067
+ @cli_util.option('--lifecycle-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "AVAILABLE", "TERMINATING", "TERMINATED", "FAILED"]), help=u"""A filter to return only Exadata Pluggable Database Snapshots that match the given lifecycle state exactly.""")
26068
+ @cli_util.option('--cluster-id', help=u"""A filter to return only Exadata Database Node Snapshots that match the given VM cluster.""")
26069
+ @cli_util.option('--pluggable-database-id', help=u"""A filter to return only Exadata Pluggable Database Snapshots that match the given database [OCID].""")
26070
+ @cli_util.option('--all', 'all_pages', is_flag=True, help="""Fetches all pages of results. If you provide this option, then you cannot provide the --limit option.""")
26071
+ @cli_util.option('--page-size', type=click.INT, help="""When fetching results, the number of results to fetch per call. Only valid when used with --all or --limit, and ignored otherwise.""")
26072
+ @json_skeleton_utils.get_cli_json_input_option({})
26073
+ @cli_util.help_option
26074
+ @click.pass_context
26075
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={}, output_type={'module': 'database', 'class': 'list[PluggableDatabaseSnapshotSummary]'})
26076
+ @cli_util.wrap_exceptions
26077
+ def list_pluggable_database_snapshots(ctx, from_json, all_pages, page_size, compartment_id, limit, page, sort_by, name, sort_order, lifecycle_state, cluster_id, pluggable_database_id):
26078
+
26079
+ if all_pages and limit:
26080
+ raise click.UsageError('If you provide the --all option you cannot provide the --limit option')
26081
+
26082
+ kwargs = {}
26083
+ if compartment_id is not None:
26084
+ kwargs['compartment_id'] = compartment_id
26085
+ if limit is not None:
26086
+ kwargs['limit'] = limit
26087
+ if page is not None:
26088
+ kwargs['page'] = page
26089
+ if sort_by is not None:
26090
+ kwargs['sort_by'] = sort_by
26091
+ if name is not None:
26092
+ kwargs['name'] = name
26093
+ if sort_order is not None:
26094
+ kwargs['sort_order'] = sort_order
26095
+ if lifecycle_state is not None:
26096
+ kwargs['lifecycle_state'] = lifecycle_state
26097
+ if cluster_id is not None:
26098
+ kwargs['cluster_id'] = cluster_id
26099
+ if pluggable_database_id is not None:
26100
+ kwargs['pluggable_database_id'] = pluggable_database_id
26101
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
26102
+ client = cli_util.build_client('database', 'database', ctx)
26103
+ if all_pages:
26104
+ if page_size:
26105
+ kwargs['limit'] = page_size
26106
+
26107
+ result = cli_util.list_call_get_all_results(
26108
+ client.list_pluggable_database_snapshots,
26109
+ **kwargs
26110
+ )
26111
+ elif limit is not None:
26112
+ result = cli_util.list_call_get_up_to_limit(
26113
+ client.list_pluggable_database_snapshots,
26114
+ limit,
26115
+ page_size,
26116
+ **kwargs
26117
+ )
26118
+ else:
26119
+ result = client.list_pluggable_database_snapshots(
26120
+ **kwargs
26121
+ )
26122
+ cli_util.render_response(result, ctx)
26123
+
26124
+
25905
26125
  @pluggable_database_group.command(name=cli_util.override('db.list_pluggable_databases.command_name', 'list'), help=u"""Gets a list of the pluggable databases in a database or compartment. You must provide either a `databaseId` or `compartmentId` value. \n[Command Reference](listPluggableDatabases)""")
25906
26126
  @cli_util.option('--compartment-id', help=u"""The compartment [OCID].""")
25907
26127
  @cli_util.option('--database-id', help=u"""The [OCID] of the database.""")
@@ -228,7 +228,13 @@ def chat_on_demand_serving_mode(ctx, from_json, compartment_id, chat_request, se
228
228
  @cli_util.option('--chat-request-messages', type=custom_types.CLI_COMPLEX_TYPE, help=u"""The series of messages in a chat request. Includes the previous messages in a conversation. Each message includes a role (`USER` or the `CHATBOT`) and content.
229
229
 
230
230
  This option is a JSON list with items of type Message. For documentation on Message please see our API reference: https://docs.cloud.oracle.com/api/#/en/generativeaiinference/20231130/datatypes/Message.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
231
+ @cli_util.option('--chat-request-reasoning-effort', type=custom_types.CliCaseInsensitiveChoice(["MINIMAL", "LOW", "MEDIUM", "HIGH"]), help=u"""Constrains effort on reasoning for reasoning models. Currently supported values are minimal, low, medium, and high. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response.""")
232
+ @cli_util.option('--chat-request-verbosity', type=custom_types.CliCaseInsensitiveChoice(["LOW", "MEDIUM", "HIGH"]), help=u"""Constrains the verbosity of the model's response. Lower values will result in more concise responses, while higher values will result in more verbose responses.""")
233
+ @cli_util.option('--chat-request-metadata', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.
234
+
235
+ Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
231
236
  @cli_util.option('--chat-request-is-stream', type=click.BOOL, help=u"""Whether to stream back partial progress. If set to true, as tokens become available, they are sent as data-only server-sent events.""")
237
+ @cli_util.option('--chat-request-stream-options', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
232
238
  @cli_util.option('--chat-request-num-generations', type=click.INT, help=u"""The number of of generated texts that will be returned.""")
233
239
  @cli_util.option('--chat-request-seed', type=click.INT, help=u"""If specified, the backend will make a best effort to sample tokens deterministically, so that repeated requests with the same seed and parameters yield the same result. However, determinism cannot be fully guaranteed.""")
234
240
  @cli_util.option('--chat-request-is-echo', type=click.BOOL, help=u"""Whether to include the user prompt in the response. Applies only to non-stream results.""")
@@ -249,20 +255,24 @@ Similar to frequency penalty, a penalty is applied to previously present tokens,
249
255
  @cli_util.option('--chat-request-log-probs', type=click.INT, help=u"""Includes the logarithmic probabilities for the most likely output tokens and the chosen tokens.
250
256
 
251
257
  For example, if the log probability is 5, the API returns a list of the 5 most likely tokens. The API returns the log probability of the sampled token, so there might be up to logprobs+1 elements in the response.""")
252
- @cli_util.option('--chat-request-max-tokens', type=click.INT, help=u"""The maximum number of tokens that can be generated per output sequence. The token count of your prompt plus `maxTokens` must not exceed the model's context length. Not setting a value for maxTokens results in the possible use of model's full context length.""")
258
+ @cli_util.option('--chat-request-max-tokens', type=click.INT, help=u"""The maximum number of tokens that can be generated per output sequence. The token count of your prompt plus maxTokens must not exceed the model's context length. For on-demand inferencing, the response length is capped at 4,000 tokens for each run.""")
259
+ @cli_util.option('--chat-request-max-completion-tokens', type=click.INT, help=u"""An upper bound for the number of tokens that can be generated for a completion, including visible output tokens and reasoning tokens.""")
253
260
  @cli_util.option('--chat-request-logit-bias', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Modifies the likelihood of specified tokens that appear in the completion.
254
261
 
255
262
  Example: '{\"6395\": 2, \"8134\": 1, \"21943\": 0.5, \"5923\": -100}'""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
263
+ @cli_util.option('--chat-request-prediction', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
264
+ @cli_util.option('--chat-request-response-format', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
256
265
  @cli_util.option('--chat-request-tool-choice', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
266
+ @cli_util.option('--chat-request-is-parallel-tool-calls', type=click.BOOL, help=u"""Whether to enable parallel function calling during tool use.""")
257
267
  @cli_util.option('--chat-request-tools', type=custom_types.CLI_COMPLEX_TYPE, help=u"""A list of tools the model may call. Use this to provide a list of functions the model may generate JSON inputs for. A max of 128 functions are supported.
258
268
 
259
269
  This option is a JSON list with items of type ToolDefinition. For documentation on ToolDefinition please see our API reference: https://docs.cloud.oracle.com/api/#/en/generativeaiinference/20231130/datatypes/ToolDefinition.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
260
- @json_skeleton_utils.get_cli_json_input_option({'serving-mode': {'module': 'generative_ai_inference', 'class': 'ServingMode'}, 'chat-request-messages': {'module': 'generative_ai_inference', 'class': 'list[Message]'}, 'chat-request-stop': {'module': 'generative_ai_inference', 'class': 'list[string]'}, 'chat-request-logit-bias': {'module': 'generative_ai_inference', 'class': 'object'}, 'chat-request-tool-choice': {'module': 'generative_ai_inference', 'class': 'ToolChoice'}, 'chat-request-tools': {'module': 'generative_ai_inference', 'class': 'list[ToolDefinition]'}})
270
+ @json_skeleton_utils.get_cli_json_input_option({'serving-mode': {'module': 'generative_ai_inference', 'class': 'ServingMode'}, 'chat-request-messages': {'module': 'generative_ai_inference', 'class': 'list[Message]'}, 'chat-request-metadata': {'module': 'generative_ai_inference', 'class': 'object'}, 'chat-request-stream-options': {'module': 'generative_ai_inference', 'class': 'StreamOptions'}, 'chat-request-stop': {'module': 'generative_ai_inference', 'class': 'list[string]'}, 'chat-request-logit-bias': {'module': 'generative_ai_inference', 'class': 'object'}, 'chat-request-prediction': {'module': 'generative_ai_inference', 'class': 'Prediction'}, 'chat-request-response-format': {'module': 'generative_ai_inference', 'class': 'ResponseFormat'}, 'chat-request-tool-choice': {'module': 'generative_ai_inference', 'class': 'ToolChoice'}, 'chat-request-tools': {'module': 'generative_ai_inference', 'class': 'list[ToolDefinition]'}})
261
271
  @cli_util.help_option
262
272
  @click.pass_context
263
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'serving-mode': {'module': 'generative_ai_inference', 'class': 'ServingMode'}, 'chat-request-messages': {'module': 'generative_ai_inference', 'class': 'list[Message]'}, 'chat-request-stop': {'module': 'generative_ai_inference', 'class': 'list[string]'}, 'chat-request-logit-bias': {'module': 'generative_ai_inference', 'class': 'object'}, 'chat-request-tool-choice': {'module': 'generative_ai_inference', 'class': 'ToolChoice'}, 'chat-request-tools': {'module': 'generative_ai_inference', 'class': 'list[ToolDefinition]'}}, output_type={'module': 'generative_ai_inference', 'class': 'ChatResult'})
273
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'serving-mode': {'module': 'generative_ai_inference', 'class': 'ServingMode'}, 'chat-request-messages': {'module': 'generative_ai_inference', 'class': 'list[Message]'}, 'chat-request-metadata': {'module': 'generative_ai_inference', 'class': 'object'}, 'chat-request-stream-options': {'module': 'generative_ai_inference', 'class': 'StreamOptions'}, 'chat-request-stop': {'module': 'generative_ai_inference', 'class': 'list[string]'}, 'chat-request-logit-bias': {'module': 'generative_ai_inference', 'class': 'object'}, 'chat-request-prediction': {'module': 'generative_ai_inference', 'class': 'Prediction'}, 'chat-request-response-format': {'module': 'generative_ai_inference', 'class': 'ResponseFormat'}, 'chat-request-tool-choice': {'module': 'generative_ai_inference', 'class': 'ToolChoice'}, 'chat-request-tools': {'module': 'generative_ai_inference', 'class': 'list[ToolDefinition]'}}, output_type={'module': 'generative_ai_inference', 'class': 'ChatResult'})
264
274
  @cli_util.wrap_exceptions
265
- def chat_generic_chat_request(ctx, from_json, compartment_id, serving_mode, chat_request_messages, chat_request_is_stream, chat_request_num_generations, chat_request_seed, chat_request_is_echo, chat_request_top_k, chat_request_top_p, chat_request_temperature, chat_request_frequency_penalty, chat_request_presence_penalty, chat_request_stop, chat_request_log_probs, chat_request_max_tokens, chat_request_logit_bias, chat_request_tool_choice, chat_request_tools):
275
+ def chat_generic_chat_request(ctx, from_json, compartment_id, serving_mode, chat_request_messages, chat_request_reasoning_effort, chat_request_verbosity, chat_request_metadata, chat_request_is_stream, chat_request_stream_options, chat_request_num_generations, chat_request_seed, chat_request_is_echo, chat_request_top_k, chat_request_top_p, chat_request_temperature, chat_request_frequency_penalty, chat_request_presence_penalty, chat_request_stop, chat_request_log_probs, chat_request_max_tokens, chat_request_max_completion_tokens, chat_request_logit_bias, chat_request_prediction, chat_request_response_format, chat_request_tool_choice, chat_request_is_parallel_tool_calls, chat_request_tools):
266
276
 
267
277
  kwargs = {}
268
278
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
@@ -275,9 +285,21 @@ def chat_generic_chat_request(ctx, from_json, compartment_id, serving_mode, chat
275
285
  if chat_request_messages is not None:
276
286
  _details['chatRequest']['messages'] = cli_util.parse_json_parameter("chat_request_messages", chat_request_messages)
277
287
 
288
+ if chat_request_reasoning_effort is not None:
289
+ _details['chatRequest']['reasoningEffort'] = chat_request_reasoning_effort
290
+
291
+ if chat_request_verbosity is not None:
292
+ _details['chatRequest']['verbosity'] = chat_request_verbosity
293
+
294
+ if chat_request_metadata is not None:
295
+ _details['chatRequest']['metadata'] = cli_util.parse_json_parameter("chat_request_metadata", chat_request_metadata)
296
+
278
297
  if chat_request_is_stream is not None:
279
298
  _details['chatRequest']['isStream'] = chat_request_is_stream
280
299
 
300
+ if chat_request_stream_options is not None:
301
+ _details['chatRequest']['streamOptions'] = cli_util.parse_json_parameter("chat_request_stream_options", chat_request_stream_options)
302
+
281
303
  if chat_request_num_generations is not None:
282
304
  _details['chatRequest']['numGenerations'] = chat_request_num_generations
283
305
 
@@ -311,12 +333,24 @@ def chat_generic_chat_request(ctx, from_json, compartment_id, serving_mode, chat
311
333
  if chat_request_max_tokens is not None:
312
334
  _details['chatRequest']['maxTokens'] = chat_request_max_tokens
313
335
 
336
+ if chat_request_max_completion_tokens is not None:
337
+ _details['chatRequest']['maxCompletionTokens'] = chat_request_max_completion_tokens
338
+
314
339
  if chat_request_logit_bias is not None:
315
340
  _details['chatRequest']['logitBias'] = cli_util.parse_json_parameter("chat_request_logit_bias", chat_request_logit_bias)
316
341
 
342
+ if chat_request_prediction is not None:
343
+ _details['chatRequest']['prediction'] = cli_util.parse_json_parameter("chat_request_prediction", chat_request_prediction)
344
+
345
+ if chat_request_response_format is not None:
346
+ _details['chatRequest']['responseFormat'] = cli_util.parse_json_parameter("chat_request_response_format", chat_request_response_format)
347
+
317
348
  if chat_request_tool_choice is not None:
318
349
  _details['chatRequest']['toolChoice'] = cli_util.parse_json_parameter("chat_request_tool_choice", chat_request_tool_choice)
319
350
 
351
+ if chat_request_is_parallel_tool_calls is not None:
352
+ _details['chatRequest']['isParallelToolCalls'] = chat_request_is_parallel_tool_calls
353
+
320
354
  if chat_request_tools is not None:
321
355
  _details['chatRequest']['tools'] = cli_util.parse_json_parameter("chat_request_tools", chat_request_tools)
322
356
 
@@ -347,7 +381,7 @@ Example: `[ { \"title\": \"Tall penguins\", \"snippet\": \"Emperor penguins ar
347
381
  Example: `You are a travel advisor. Answer with a pirate tone.`""")
348
382
  @cli_util.option('--chat-request-is-stream', type=click.BOOL, help=u"""Whether to stream the partial progress of the model's response. When set to true, as tokens become available, they are sent as data-only server-sent events.""")
349
383
  @cli_util.option('--chat-request-stream-options', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
350
- @cli_util.option('--chat-request-max-tokens', type=click.INT, help=u"""The maximum number of output tokens that the model will generate for the response.""")
384
+ @cli_util.option('--chat-request-max-tokens', type=click.INT, help=u"""The maximum number of output tokens that the model will generate for the response. The token count of your prompt plus maxTokens must not exceed the model's context length. For on-demand inferencing, the response length is capped at 4,000 tokens for each run.""")
351
385
  @cli_util.option('--chat-request-max-input-tokens', type=click.INT, help=u"""The maximum number of input tokens to send to the model. If not specified, max_input_tokens is the model's context length limit minus a small buffer.""")
352
386
  @cli_util.option('--chat-request-temperature', help=u"""A number that sets the randomness of the generated output. A lower temperature means less random generations. Use lower numbers for tasks such as question answering or summarizing. High temperatures can generate hallucinations or factually incorrect information. Start with temperatures lower than 1.0 and increase the temperature for more creative outputs, as you regenerate the prompts to refine the outputs.""")
353
387
  @cli_util.option('--chat-request-top-k', type=click.INT, help=u"""A sampling method in which the model chooses the next token randomly from the top k most likely tokens. A higher value for k generates more random output, which makes the output text sound more natural. The default value for k is 0 which disables this method and considers all tokens. To set a number for the likely tokens, choose an integer between 1 and 500.