oci-cli 3.69.0__py3-none-any.whl → 3.70.0__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.
- oci_cli/bin/psa.psm1 +51 -0
- oci_cli/help_text_producer/data_files/text/cmdref/compute-management/instance-pool/create.txt +11 -0
- oci_cli/help_text_producer/data_files/text/cmdref/compute-management/instance-pool/update.txt +11 -0
- oci_cli/help_text_producer/data_files/text/cmdref/compute-management/instance-pool-instance/attach.txt +1 -1
- oci_cli/help_text_producer/data_files/text/cmdref/compute-management/instance-pool-instance/termination-proceed.txt +116 -0
- oci_cli/help_text_producer/data_files/text/cmdref/compute-management/instance-pool-instance.txt +2 -0
- oci_cli/help_text_producer/data_files/text/cmdref/compute-management.txt +2 -0
- oci_cli/help_text_producer/data_files/text/cmdref/db/dbnode-snapshot/delete.txt +129 -0
- oci_cli/help_text_producer/data_files/text/cmdref/db/dbnode-snapshot/get.txt +92 -0
- oci_cli/help_text_producer/data_files/text/cmdref/db/dbnode-snapshot/list.txt +153 -0
- oci_cli/help_text_producer/data_files/text/cmdref/db/dbnode-snapshot/mount.txt +131 -0
- oci_cli/help_text_producer/data_files/text/cmdref/db/dbnode-snapshot/unmount.txt +131 -0
- oci_cli/help_text_producer/data_files/text/cmdref/db/dbnode-snapshot.txt +22 -0
- oci_cli/help_text_producer/data_files/text/cmdref/db/exadb-vm-cluster/add.txt +154 -0
- oci_cli/help_text_producer/data_files/text/cmdref/db/exadb-vm-cluster.txt +2 -0
- oci_cli/help_text_producer/data_files/text/cmdref/db.txt +14 -0
- oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control/work-request/{work-request-log-entry/list-work-request-logs.txt → work-request-log/list.txt} +5 -5
- oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control/work-request.txt +2 -2
- oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control.txt +2 -2
- oci_cli/help_text_producer/data_files/text/cmdref/distributed-database/distributed-autonomous-db-service/distributed-autonomous-database/change-distributed-autonomous-db-backup-config.txt +159 -0
- oci_cli/help_text_producer/data_files/text/cmdref/distributed-database/distributed-autonomous-db-service/distributed-autonomous-database/create.txt +42 -12
- oci_cli/help_text_producer/data_files/text/cmdref/distributed-database/distributed-autonomous-db-service/distributed-autonomous-database/rotate-distributed-autonomous-database-passwords.txt +3 -2
- oci_cli/help_text_producer/data_files/text/cmdref/distributed-database/distributed-autonomous-db-service/distributed-autonomous-database.txt +2 -0
- oci_cli/help_text_producer/data_files/text/cmdref/distributed-database/distributed-autonomous-db-service.txt +2 -0
- oci_cli/help_text_producer/data_files/text/cmdref/distributed-database/distributed-db-service/distributed-database/create.txt +31 -11
- oci_cli/help_text_producer/data_files/text/cmdref/distributed-database/distributed-db-service/distributed-database/rotate-distributed-database-passwords.txt +3 -2
- oci_cli/help_text_producer/data_files/text/cmdref/distributed-database.txt +2 -0
- oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/work-request-error/{list-errors.txt → list.txt} +5 -5
- oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/work-request-error.txt +1 -1
- oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/{work-request-log/list.txt → work-request-log-entry/list-work-request-logs.txt} +5 -5
- oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request.txt +3 -3
- oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane.txt +3 -3
- oci_cli/help_text_producer/data_files/text/cmdref/psa/private-service-access/change-compartment.txt +136 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/private-service-access/create.txt +214 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/private-service-access/delete.txt +133 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/private-service-access/get.txt +95 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/private-service-access/list.txt +152 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/private-service-access/update.txt +211 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/private-service-access.txt +25 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/psa-services/list.txt +129 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/psa-services.txt +16 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/work-request/cancel.txt +103 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/work-request/get.txt +91 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/work-request/list.txt +140 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/work-request-error/list.txt +131 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/work-request-error.txt +15 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/work-request-log/list.txt +131 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/work-request-log.txt +15 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa/work-request.txt +23 -0
- oci_cli/help_text_producer/data_files/text/cmdref/psa.txt +47 -0
- oci_cli/help_text_producer/data_files/text/cmdref/session/authenticate.txt +9 -9
- oci_cli/help_text_producer/data_files/text/cmdref/support/incident/create.txt +6 -6
- oci_cli/help_text_producer/data_files/text/cmdref/support/incident/get.txt +2 -2
- oci_cli/help_text_producer/data_files/text/cmdref/support/incident/list.txt +1 -1
- oci_cli/help_text_producer/data_files/text/cmdref/support/incident/update.txt +4 -4
- oci_cli/help_text_producer/data_files/text/cmdref/support/incident-resource-type/list.txt +3 -3
- oci_cli/help_text_producer/data_files/text/cmdref/support/validation-response/validate-user.txt +1 -1
- oci_cli/help_text_producer/data_files/text/index.txt +2 -0
- oci_cli/service_mapping.py +5 -0
- oci_cli/version.py +1 -1
- {oci_cli-3.69.0.dist-info → oci_cli-3.70.0.dist-info}/METADATA +2 -2
- {oci_cli-3.69.0.dist-info → oci_cli-3.70.0.dist-info}/RECORD +81 -45
- services/core/src/oci_cli_compute_management/generated/computemanagement_cli.py +44 -9
- services/database/src/oci_cli_database/generated/database_cli.py +309 -0
- services/distributed_database/src/oci_cli_distributed_autonomous_db_service/generated/distributedautonomousdbservice_cli.py +77 -12
- services/distributed_database/src/oci_cli_distributed_db_service/generated/distributeddbservice_cli.py +8 -8
- services/psa/__init__.py +4 -0
- services/psa/src/__init__.py +4 -0
- services/psa/src/oci_cli_private_service_access/__init__.py +4 -0
- services/psa/src/oci_cli_private_service_access/generated/__init__.py +4 -0
- services/psa/src/oci_cli_private_service_access/generated/client_mappings.py +14 -0
- services/psa/src/oci_cli_private_service_access/generated/privateserviceaccess_cli.py +738 -0
- services/psa/src/oci_cli_private_service_access/privateserviceaccess_cli_extended.py +92 -0
- services/psa/tests/__init__.py +4 -0
- /oci_cli/help_text_producer/data_files/text/cmdref/{governance-rules-control-plane → delegate-access-control}/work-request/work-request-log.txt +0 -0
- /oci_cli/help_text_producer/data_files/text/cmdref/{delegate-access-control → governance-rules-control-plane}/work-request/work-request-log-entry.txt +0 -0
- {oci_cli-3.69.0.dist-info → oci_cli-3.70.0.dist-info}/LICENSE.txt +0 -0
- {oci_cli-3.69.0.dist-info → oci_cli-3.70.0.dist-info}/THIRD_PARTY_LICENSES.txt +0 -0
- {oci_cli-3.69.0.dist-info → oci_cli-3.70.0.dist-info}/WHEEL +0 -0
- {oci_cli-3.69.0.dist-info → oci_cli-3.70.0.dist-info}/entry_points.txt +0 -0
- {oci_cli-3.69.0.dist-info → oci_cli-3.70.0.dist-info}/top_level.txt +0 -0
|
@@ -308,6 +308,12 @@ def console_connection_group():
|
|
|
308
308
|
pass
|
|
309
309
|
|
|
310
310
|
|
|
311
|
+
@click.command(cli_util.override('db.dbnode_snapshot_group.command_name', 'dbnode-snapshot'), cls=CommandGroupWithAlias, help="""Details of the Database Node Snapshot.""")
|
|
312
|
+
@cli_util.help_option_group
|
|
313
|
+
def dbnode_snapshot_group():
|
|
314
|
+
pass
|
|
315
|
+
|
|
316
|
+
|
|
311
317
|
@click.command(cli_util.override('db.external_database_connector_group.command_name', 'external-database-connector'), cls=CommandGroupWithAlias, help="""An Oracle Cloud Infrastructure resource used to connect to an external Oracle Database. This resource stores the database connection string, user credentials, and related details that allow you to manage your external database using the Oracle Cloud Infrastructure Console and API interfaces.""")
|
|
312
318
|
@cli_util.help_option_group
|
|
313
319
|
def external_database_connector_group():
|
|
@@ -574,6 +580,7 @@ db_root_group.add_command(system_version_collection_group)
|
|
|
574
580
|
db_root_group.add_command(backup_destination_summary_group)
|
|
575
581
|
db_root_group.add_command(db_node_group)
|
|
576
582
|
db_root_group.add_command(console_connection_group)
|
|
583
|
+
db_root_group.add_command(dbnode_snapshot_group)
|
|
577
584
|
db_root_group.add_command(external_database_connector_group)
|
|
578
585
|
db_root_group.add_command(console_history_group)
|
|
579
586
|
db_root_group.add_command(db_server_group)
|
|
@@ -664,6 +671,49 @@ def activate_exadata_infrastructure(ctx, from_json, wait_for_state, max_wait_sec
|
|
|
664
671
|
cli_util.render_response(result, ctx)
|
|
665
672
|
|
|
666
673
|
|
|
674
|
+
@exadb_vm_cluster_group.command(name=cli_util.override('db.add_dbnode_snapshots_for_exadb_vm_cluster.command_name', 'add'), help=u"""Add a database node snapshots to the Exadb VM cluster.. \n[Command Reference](addDbnodeSnapshotsForExadbVmCluster)""")
|
|
675
|
+
@cli_util.option('--name', required=True, help=u"""The user-friendly name for the Database Node Snapshot. The name should be unique.""")
|
|
676
|
+
@cli_util.option('--source-dbnode-ids', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""The [OCID] of the Exadata Database Node.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
677
|
+
@cli_util.option('--exadb-vm-cluster-id', required=True, help=u"""The Exadata VM cluster [OCID] on Exascale Infrastructure.""")
|
|
678
|
+
@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].
|
|
679
|
+
|
|
680
|
+
Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
681
|
+
@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)
|
|
682
|
+
@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.""")
|
|
683
|
+
@json_skeleton_utils.get_cli_json_input_option({'source-dbnode-ids': {'module': 'database', 'class': 'list[string]'}, 'freeform-tags': {'module': 'database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'database', 'class': 'dict(str, dict(str, object))'}})
|
|
684
|
+
@cli_util.help_option
|
|
685
|
+
@click.pass_context
|
|
686
|
+
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'source-dbnode-ids': {'module': 'database', 'class': 'list[string]'}, 'freeform-tags': {'module': 'database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'database', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'database', 'class': 'DbnodeSnapshots'})
|
|
687
|
+
@cli_util.wrap_exceptions
|
|
688
|
+
def add_dbnode_snapshots_for_exadb_vm_cluster(ctx, from_json, name, source_dbnode_ids, exadb_vm_cluster_id, freeform_tags, defined_tags, if_match):
|
|
689
|
+
|
|
690
|
+
if isinstance(exadb_vm_cluster_id, six.string_types) and len(exadb_vm_cluster_id.strip()) == 0:
|
|
691
|
+
raise click.UsageError('Parameter --exadb-vm-cluster-id cannot be whitespace or empty string')
|
|
692
|
+
|
|
693
|
+
kwargs = {}
|
|
694
|
+
if if_match is not None:
|
|
695
|
+
kwargs['if_match'] = if_match
|
|
696
|
+
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
|
|
697
|
+
|
|
698
|
+
_details = {}
|
|
699
|
+
_details['name'] = name
|
|
700
|
+
_details['sourceDbnodeIds'] = cli_util.parse_json_parameter("source_dbnode_ids", source_dbnode_ids)
|
|
701
|
+
|
|
702
|
+
if freeform_tags is not None:
|
|
703
|
+
_details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
|
|
704
|
+
|
|
705
|
+
if defined_tags is not None:
|
|
706
|
+
_details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
|
|
707
|
+
|
|
708
|
+
client = cli_util.build_client('database', 'database', ctx)
|
|
709
|
+
result = client.add_dbnode_snapshots_for_exadb_vm_cluster(
|
|
710
|
+
exadb_vm_cluster_id=exadb_vm_cluster_id,
|
|
711
|
+
add_dbnode_snapshots_for_exadb_vm_cluster_details=_details,
|
|
712
|
+
**kwargs
|
|
713
|
+
)
|
|
714
|
+
cli_util.render_response(result, ctx)
|
|
715
|
+
|
|
716
|
+
|
|
667
717
|
@autonomous_container_database_group.command(name=cli_util.override('db.add_standby_autonomous_container_database.command_name', 'add'), help=u"""Add a standby Autonomous Container Database. For more information about Autonomous Data Guard,see [Protect Critical Databases from Failures and Disasters Using Autonomous Data Guard]. \n[Command Reference](addStandbyAutonomousContainerDatabase)""")
|
|
668
718
|
@cli_util.option('--autonomous-container-database-id', required=True, help=u"""The Autonomous Container Database [OCID].""")
|
|
669
719
|
@cli_util.option('--fast-start-fail-over-lag-limit-in-seconds', type=click.INT, help=u"""The lag time for my preference based on data loss tolerance in seconds.""")
|
|
@@ -16539,6 +16589,63 @@ def delete_db_home(ctx, from_json, wait_for_state, max_wait_seconds, wait_interv
|
|
|
16539
16589
|
cli_util.render_response(result, ctx)
|
|
16540
16590
|
|
|
16541
16591
|
|
|
16592
|
+
@dbnode_snapshot_group.command(name=cli_util.override('db.delete_dbnode_snapshot.command_name', 'delete'), help=u"""Deletes the specified Exadata Database Node Snapshot. \n[Command Reference](deleteDbnodeSnapshot)""")
|
|
16593
|
+
@cli_util.option('--dbnode-snapshot-id', required=True, help=u"""The Exadata Database Node Snapshot [OCID].""")
|
|
16594
|
+
@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.""")
|
|
16595
|
+
@cli_util.confirm_delete_option
|
|
16596
|
+
@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.""")
|
|
16597
|
+
@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.""")
|
|
16598
|
+
@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.""")
|
|
16599
|
+
@json_skeleton_utils.get_cli_json_input_option({})
|
|
16600
|
+
@cli_util.help_option
|
|
16601
|
+
@click.pass_context
|
|
16602
|
+
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={})
|
|
16603
|
+
@cli_util.wrap_exceptions
|
|
16604
|
+
def delete_dbnode_snapshot(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, dbnode_snapshot_id, if_match):
|
|
16605
|
+
|
|
16606
|
+
if isinstance(dbnode_snapshot_id, six.string_types) and len(dbnode_snapshot_id.strip()) == 0:
|
|
16607
|
+
raise click.UsageError('Parameter --dbnode-snapshot-id cannot be whitespace or empty string')
|
|
16608
|
+
|
|
16609
|
+
kwargs = {}
|
|
16610
|
+
if if_match is not None:
|
|
16611
|
+
kwargs['if_match'] = if_match
|
|
16612
|
+
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
|
|
16613
|
+
client = cli_util.build_client('database', 'database', ctx)
|
|
16614
|
+
result = client.delete_dbnode_snapshot(
|
|
16615
|
+
dbnode_snapshot_id=dbnode_snapshot_id,
|
|
16616
|
+
**kwargs
|
|
16617
|
+
)
|
|
16618
|
+
work_request_client = cli_util.build_client('work_requests', 'work_request', ctx)
|
|
16619
|
+
if wait_for_state:
|
|
16620
|
+
|
|
16621
|
+
if hasattr(work_request_client, 'get_work_request') and callable(getattr(work_request_client, 'get_work_request')):
|
|
16622
|
+
try:
|
|
16623
|
+
wait_period_kwargs = {}
|
|
16624
|
+
if max_wait_seconds is not None:
|
|
16625
|
+
wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
|
|
16626
|
+
if wait_interval_seconds is not None:
|
|
16627
|
+
wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
|
|
16628
|
+
if 'opc-work-request-id' not in result.headers:
|
|
16629
|
+
click.echo('Encountered error while waiting for work request to enter the specified state. Outputting last known resource state')
|
|
16630
|
+
cli_util.render_response(result, ctx)
|
|
16631
|
+
return
|
|
16632
|
+
|
|
16633
|
+
click.echo('Action completed. Waiting until the work request has entered state: {}'.format(wait_for_state), file=sys.stderr)
|
|
16634
|
+
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)
|
|
16635
|
+
except oci.exceptions.MaximumWaitTimeExceeded as e:
|
|
16636
|
+
# If we fail, we should show an error, but we should still provide the information to the customer
|
|
16637
|
+
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)
|
|
16638
|
+
cli_util.render_response(result, ctx)
|
|
16639
|
+
sys.exit(2)
|
|
16640
|
+
except Exception:
|
|
16641
|
+
click.echo('Encountered error while waiting for work request to enter the specified state. Outputting last known resource state', file=sys.stderr)
|
|
16642
|
+
cli_util.render_response(result, ctx)
|
|
16643
|
+
raise
|
|
16644
|
+
else:
|
|
16645
|
+
click.echo('Unable to wait for the work request to enter the specified state', file=sys.stderr)
|
|
16646
|
+
cli_util.render_response(result, ctx)
|
|
16647
|
+
|
|
16648
|
+
|
|
16542
16649
|
@exadata_infrastructure_group.command(name=cli_util.override('db.delete_exadata_infrastructure.command_name', 'delete'), help=u"""Deletes the Exadata Cloud@Customer infrastructure. \n[Command Reference](deleteExadataInfrastructure)""")
|
|
16543
16650
|
@cli_util.option('--exadata-infrastructure-id', required=True, help=u"""The Exadata infrastructure [OCID].""")
|
|
16544
16651
|
@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.""")
|
|
@@ -20906,6 +21013,28 @@ def get_db_system_upgrade_history_entry(ctx, from_json, db_system_id, upgrade_hi
|
|
|
20906
21013
|
cli_util.render_response(result, ctx)
|
|
20907
21014
|
|
|
20908
21015
|
|
|
21016
|
+
@dbnode_snapshot_group.command(name=cli_util.override('db.get_dbnode_snapshot.command_name', 'get'), help=u"""Gets information about the specified Exadata Database Node Snapshot in the specified compartment. \n[Command Reference](getDbnodeSnapshot)""")
|
|
21017
|
+
@cli_util.option('--dbnode-snapshot-id', required=True, help=u"""The Exadata Database Node Snapshot [OCID].""")
|
|
21018
|
+
@json_skeleton_utils.get_cli_json_input_option({})
|
|
21019
|
+
@cli_util.help_option
|
|
21020
|
+
@click.pass_context
|
|
21021
|
+
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={}, output_type={'module': 'database', 'class': 'DbnodeSnapshot'})
|
|
21022
|
+
@cli_util.wrap_exceptions
|
|
21023
|
+
def get_dbnode_snapshot(ctx, from_json, dbnode_snapshot_id):
|
|
21024
|
+
|
|
21025
|
+
if isinstance(dbnode_snapshot_id, six.string_types) and len(dbnode_snapshot_id.strip()) == 0:
|
|
21026
|
+
raise click.UsageError('Parameter --dbnode-snapshot-id cannot be whitespace or empty string')
|
|
21027
|
+
|
|
21028
|
+
kwargs = {}
|
|
21029
|
+
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
|
|
21030
|
+
client = cli_util.build_client('database', 'database', ctx)
|
|
21031
|
+
result = client.get_dbnode_snapshot(
|
|
21032
|
+
dbnode_snapshot_id=dbnode_snapshot_id,
|
|
21033
|
+
**kwargs
|
|
21034
|
+
)
|
|
21035
|
+
cli_util.render_response(result, ctx)
|
|
21036
|
+
|
|
21037
|
+
|
|
20909
21038
|
@exadata_infrastructure_group.command(name=cli_util.override('db.get_exadata_infrastructure.command_name', 'get'), help=u"""Gets information about the specified Exadata infrastructure. Applies to Exadata Cloud@Customer instances only. To get information on an Exadata Cloud Service infrastructure resource, use the [GetCloudExadataInfrastructure] operation. \n[Command Reference](getExadataInfrastructure)""")
|
|
20910
21039
|
@cli_util.option('--exadata-infrastructure-id', required=True, help=u"""The Exadata infrastructure [OCID].""")
|
|
20911
21040
|
@cli_util.option('--excluded-fields', type=custom_types.CliCaseInsensitiveChoice(["multiRackConfigurationFile"]), multiple=True, help=u"""If provided, the specified fields will be excluded in the response.""")
|
|
@@ -25679,6 +25808,72 @@ def list_db_versions(ctx, from_json, all_pages, page_size, compartment_id, limit
|
|
|
25679
25808
|
cli_util.render_response(result, ctx)
|
|
25680
25809
|
|
|
25681
25810
|
|
|
25811
|
+
@dbnode_snapshot_group.command(name=cli_util.override('db.list_dbnode_snapshots.command_name', 'list'), help=u"""Gets a list of the Exadata Database Node Snapshots in the specified compartment. \n[Command Reference](listDbnodeSnapshots)""")
|
|
25812
|
+
@cli_util.option('--compartment-id', required=True, help=u"""The compartment [OCID].""")
|
|
25813
|
+
@cli_util.option('--limit', type=click.INT, help=u"""The maximum number of items to return per page.""")
|
|
25814
|
+
@cli_util.option('--page', help=u"""The pagination token to continue listing from.""")
|
|
25815
|
+
@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.""")
|
|
25816
|
+
@cli_util.option('--name', help=u"""A filter to return only resources that match the entire name given. The match is not case sensitive.""")
|
|
25817
|
+
@cli_util.option('--sort-order', type=custom_types.CliCaseInsensitiveChoice(["ASC", "DESC"]), help=u"""The sort order to use, either ascending (`ASC`) or descending (`DESC`).""")
|
|
25818
|
+
@cli_util.option('--lifecycle-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "AVAILABLE", "TERMINATING", "TERMINATED", "FAILED", "MOUNTED", "MOUNTING", "UNMOUNTING"]), help=u"""A filter to return only Exadata Database Snapshots that match the given lifecycle state exactly.""")
|
|
25819
|
+
@cli_util.option('--cluster-id', help=u"""A filter to return only Exadata Database Node Snapshots that match the given VM cluster.""")
|
|
25820
|
+
@cli_util.option('--source-dbnode-id', help=u"""A filter to return only Exadata Database Snapshots that match the given database node.""")
|
|
25821
|
+
@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.""")
|
|
25822
|
+
@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.""")
|
|
25823
|
+
@json_skeleton_utils.get_cli_json_input_option({})
|
|
25824
|
+
@cli_util.help_option
|
|
25825
|
+
@click.pass_context
|
|
25826
|
+
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={}, output_type={'module': 'database', 'class': 'list[DbnodeSnapshotSummary]'})
|
|
25827
|
+
@cli_util.wrap_exceptions
|
|
25828
|
+
def list_dbnode_snapshots(ctx, from_json, all_pages, page_size, compartment_id, limit, page, sort_by, name, sort_order, lifecycle_state, cluster_id, source_dbnode_id):
|
|
25829
|
+
|
|
25830
|
+
if all_pages and limit:
|
|
25831
|
+
raise click.UsageError('If you provide the --all option you cannot provide the --limit option')
|
|
25832
|
+
|
|
25833
|
+
kwargs = {}
|
|
25834
|
+
if limit is not None:
|
|
25835
|
+
kwargs['limit'] = limit
|
|
25836
|
+
if page is not None:
|
|
25837
|
+
kwargs['page'] = page
|
|
25838
|
+
if sort_by is not None:
|
|
25839
|
+
kwargs['sort_by'] = sort_by
|
|
25840
|
+
if name is not None:
|
|
25841
|
+
kwargs['name'] = name
|
|
25842
|
+
if sort_order is not None:
|
|
25843
|
+
kwargs['sort_order'] = sort_order
|
|
25844
|
+
if lifecycle_state is not None:
|
|
25845
|
+
kwargs['lifecycle_state'] = lifecycle_state
|
|
25846
|
+
if cluster_id is not None:
|
|
25847
|
+
kwargs['cluster_id'] = cluster_id
|
|
25848
|
+
if source_dbnode_id is not None:
|
|
25849
|
+
kwargs['source_dbnode_id'] = source_dbnode_id
|
|
25850
|
+
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
|
|
25851
|
+
client = cli_util.build_client('database', 'database', ctx)
|
|
25852
|
+
if all_pages:
|
|
25853
|
+
if page_size:
|
|
25854
|
+
kwargs['limit'] = page_size
|
|
25855
|
+
|
|
25856
|
+
result = cli_util.list_call_get_all_results(
|
|
25857
|
+
client.list_dbnode_snapshots,
|
|
25858
|
+
compartment_id=compartment_id,
|
|
25859
|
+
**kwargs
|
|
25860
|
+
)
|
|
25861
|
+
elif limit is not None:
|
|
25862
|
+
result = cli_util.list_call_get_up_to_limit(
|
|
25863
|
+
client.list_dbnode_snapshots,
|
|
25864
|
+
limit,
|
|
25865
|
+
page_size,
|
|
25866
|
+
compartment_id=compartment_id,
|
|
25867
|
+
**kwargs
|
|
25868
|
+
)
|
|
25869
|
+
else:
|
|
25870
|
+
result = client.list_dbnode_snapshots(
|
|
25871
|
+
compartment_id=compartment_id,
|
|
25872
|
+
**kwargs
|
|
25873
|
+
)
|
|
25874
|
+
cli_util.render_response(result, ctx)
|
|
25875
|
+
|
|
25876
|
+
|
|
25682
25877
|
@exadata_infrastructure_group.command(name=cli_util.override('db.list_exadata_infrastructures.command_name', 'list'), help=u"""Lists the Exadata infrastructure resources in the specified compartment. Applies to Exadata Cloud@Customer instances only. To list the Exadata Cloud Service infrastructure resources in a compartment, use the [ListCloudExadataInfrastructures] operation. \n[Command Reference](listExadataInfrastructures)""")
|
|
25683
25878
|
@cli_util.option('--compartment-id', required=True, help=u"""The compartment [OCID].""")
|
|
25684
25879
|
@cli_util.option('--limit', type=click.INT, help=u"""The maximum number of items to return per page.""")
|
|
@@ -28370,6 +28565,63 @@ def modify_pluggable_database_management(ctx, from_json, wait_for_state, max_wai
|
|
|
28370
28565
|
cli_util.render_response(result, ctx)
|
|
28371
28566
|
|
|
28372
28567
|
|
|
28568
|
+
@dbnode_snapshot_group.command(name=cli_util.override('db.mount_dbnode_snapshot.command_name', 'mount'), help=u"""Mounts the snapshot for the provided dbNode. \n[Command Reference](mountDbnodeSnapshot)""")
|
|
28569
|
+
@cli_util.option('--db-node-id', required=True, help=u"""The [OCID] of the Exadata Database Node where snapshot needs to be mounted.""")
|
|
28570
|
+
@cli_util.option('--dbnode-snapshot-id', required=True, help=u"""The Exadata Database Node Snapshot [OCID].""")
|
|
28571
|
+
@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.""")
|
|
28572
|
+
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "AVAILABLE", "TERMINATING", "TERMINATED", "FAILED", "MOUNTED", "MOUNTING", "UNMOUNTING"]), 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.""")
|
|
28573
|
+
@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.""")
|
|
28574
|
+
@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.""")
|
|
28575
|
+
@json_skeleton_utils.get_cli_json_input_option({})
|
|
28576
|
+
@cli_util.help_option
|
|
28577
|
+
@click.pass_context
|
|
28578
|
+
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={}, output_type={'module': 'database', 'class': 'DbnodeSnapshot'})
|
|
28579
|
+
@cli_util.wrap_exceptions
|
|
28580
|
+
def mount_dbnode_snapshot(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, db_node_id, dbnode_snapshot_id, if_match):
|
|
28581
|
+
|
|
28582
|
+
if isinstance(dbnode_snapshot_id, six.string_types) and len(dbnode_snapshot_id.strip()) == 0:
|
|
28583
|
+
raise click.UsageError('Parameter --dbnode-snapshot-id cannot be whitespace or empty string')
|
|
28584
|
+
|
|
28585
|
+
kwargs = {}
|
|
28586
|
+
if if_match is not None:
|
|
28587
|
+
kwargs['if_match'] = if_match
|
|
28588
|
+
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
|
|
28589
|
+
|
|
28590
|
+
_details = {}
|
|
28591
|
+
_details['dbNodeId'] = db_node_id
|
|
28592
|
+
|
|
28593
|
+
client = cli_util.build_client('database', 'database', ctx)
|
|
28594
|
+
result = client.mount_dbnode_snapshot(
|
|
28595
|
+
dbnode_snapshot_id=dbnode_snapshot_id,
|
|
28596
|
+
mount_dbnode_snapshot_details=_details,
|
|
28597
|
+
**kwargs
|
|
28598
|
+
)
|
|
28599
|
+
if wait_for_state:
|
|
28600
|
+
|
|
28601
|
+
if hasattr(client, 'get_dbnode_snapshot') and callable(getattr(client, 'get_dbnode_snapshot')):
|
|
28602
|
+
try:
|
|
28603
|
+
wait_period_kwargs = {}
|
|
28604
|
+
if max_wait_seconds is not None:
|
|
28605
|
+
wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
|
|
28606
|
+
if wait_interval_seconds is not None:
|
|
28607
|
+
wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
|
|
28608
|
+
|
|
28609
|
+
click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
|
|
28610
|
+
result = oci.wait_until(client, client.get_dbnode_snapshot(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
|
|
28611
|
+
except oci.exceptions.MaximumWaitTimeExceeded as e:
|
|
28612
|
+
# If we fail, we should show an error, but we should still provide the information to the customer
|
|
28613
|
+
click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
|
|
28614
|
+
cli_util.render_response(result, ctx)
|
|
28615
|
+
sys.exit(2)
|
|
28616
|
+
except Exception:
|
|
28617
|
+
click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
|
|
28618
|
+
cli_util.render_response(result, ctx)
|
|
28619
|
+
raise
|
|
28620
|
+
else:
|
|
28621
|
+
click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
|
|
28622
|
+
cli_util.render_response(result, ctx)
|
|
28623
|
+
|
|
28624
|
+
|
|
28373
28625
|
@execution_action_group.command(name=cli_util.override('db.move_execution_action_member.command_name', 'move-execution-action-member'), help=u"""Moves an execution action member to this execution action resource from another. \n[Command Reference](moveExecutionActionMember)""")
|
|
28374
28626
|
@cli_util.option('--execution-action-id', required=True, help=u"""The execution action [OCID].""")
|
|
28375
28627
|
@cli_util.option('--source-execution-action-id', help=u"""The [OCID] of the source execution action resource.""")
|
|
@@ -31296,6 +31548,63 @@ def terminate_db_system(ctx, from_json, wait_for_state, max_wait_seconds, wait_i
|
|
|
31296
31548
|
cli_util.render_response(result, ctx)
|
|
31297
31549
|
|
|
31298
31550
|
|
|
31551
|
+
@dbnode_snapshot_group.command(name=cli_util.override('db.unmount_dbnode_snapshot.command_name', 'unmount'), help=u"""Unmounts the snapshot for the provided dbNode. \n[Command Reference](unmountDbnodeSnapshot)""")
|
|
31552
|
+
@cli_util.option('--db-node-id', required=True, help=u"""The [OCID] of the Exadata Database Node where snapshot needs to be unmounted.""")
|
|
31553
|
+
@cli_util.option('--dbnode-snapshot-id', required=True, help=u"""The Exadata Database Node Snapshot [OCID].""")
|
|
31554
|
+
@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.""")
|
|
31555
|
+
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "AVAILABLE", "TERMINATING", "TERMINATED", "FAILED", "MOUNTED", "MOUNTING", "UNMOUNTING"]), 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.""")
|
|
31556
|
+
@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.""")
|
|
31557
|
+
@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.""")
|
|
31558
|
+
@json_skeleton_utils.get_cli_json_input_option({})
|
|
31559
|
+
@cli_util.help_option
|
|
31560
|
+
@click.pass_context
|
|
31561
|
+
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={}, output_type={'module': 'database', 'class': 'DbnodeSnapshot'})
|
|
31562
|
+
@cli_util.wrap_exceptions
|
|
31563
|
+
def unmount_dbnode_snapshot(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, db_node_id, dbnode_snapshot_id, if_match):
|
|
31564
|
+
|
|
31565
|
+
if isinstance(dbnode_snapshot_id, six.string_types) and len(dbnode_snapshot_id.strip()) == 0:
|
|
31566
|
+
raise click.UsageError('Parameter --dbnode-snapshot-id cannot be whitespace or empty string')
|
|
31567
|
+
|
|
31568
|
+
kwargs = {}
|
|
31569
|
+
if if_match is not None:
|
|
31570
|
+
kwargs['if_match'] = if_match
|
|
31571
|
+
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
|
|
31572
|
+
|
|
31573
|
+
_details = {}
|
|
31574
|
+
_details['dbNodeId'] = db_node_id
|
|
31575
|
+
|
|
31576
|
+
client = cli_util.build_client('database', 'database', ctx)
|
|
31577
|
+
result = client.unmount_dbnode_snapshot(
|
|
31578
|
+
dbnode_snapshot_id=dbnode_snapshot_id,
|
|
31579
|
+
unmount_dbnode_snapshot_details=_details,
|
|
31580
|
+
**kwargs
|
|
31581
|
+
)
|
|
31582
|
+
if wait_for_state:
|
|
31583
|
+
|
|
31584
|
+
if hasattr(client, 'get_dbnode_snapshot') and callable(getattr(client, 'get_dbnode_snapshot')):
|
|
31585
|
+
try:
|
|
31586
|
+
wait_period_kwargs = {}
|
|
31587
|
+
if max_wait_seconds is not None:
|
|
31588
|
+
wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
|
|
31589
|
+
if wait_interval_seconds is not None:
|
|
31590
|
+
wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
|
|
31591
|
+
|
|
31592
|
+
click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
|
|
31593
|
+
result = oci.wait_until(client, client.get_dbnode_snapshot(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
|
|
31594
|
+
except oci.exceptions.MaximumWaitTimeExceeded as e:
|
|
31595
|
+
# If we fail, we should show an error, but we should still provide the information to the customer
|
|
31596
|
+
click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
|
|
31597
|
+
cli_util.render_response(result, ctx)
|
|
31598
|
+
sys.exit(2)
|
|
31599
|
+
except Exception:
|
|
31600
|
+
click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
|
|
31601
|
+
cli_util.render_response(result, ctx)
|
|
31602
|
+
raise
|
|
31603
|
+
else:
|
|
31604
|
+
click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
|
|
31605
|
+
cli_util.render_response(result, ctx)
|
|
31606
|
+
|
|
31607
|
+
|
|
31299
31608
|
@cloud_vm_cluster_group.command(name=cli_util.override('db.unregister_cloud_vm_cluster_pkcs.command_name', 'unregister-cloud-vm-cluster-pkcs'), help=u"""Uninstall the PKCS11 driver for given keystore type \n[Command Reference](unregisterCloudVmClusterPkcs)""")
|
|
31300
31609
|
@cli_util.option('--cloud-vm-cluster-id', required=True, help=u"""The cloud VM cluster [OCID].""")
|
|
31301
31610
|
@cli_util.option('--tde-key-store-type', required=True, type=custom_types.CliCaseInsensitiveChoice(["AZURE", "OCI", "GCP"]), help=u"""TDE keystore type""")
|
|
@@ -165,6 +165,67 @@ def change_distributed_autonomous_database_compartment(ctx, from_json, wait_for_
|
|
|
165
165
|
cli_util.render_response(result, ctx)
|
|
166
166
|
|
|
167
167
|
|
|
168
|
+
@distributed_autonomous_database_group.command(name=cli_util.override('distributed_autonomous_db_service.change_distributed_autonomous_db_backup_config.command_name', 'change-distributed-autonomous-db-backup-config'), help=u"""Change the DbBackupConfig for the Globally distributed autonomous database. \n[Command Reference](changeDistributedAutonomousDbBackupConfig)""")
|
|
169
|
+
@cli_util.option('--distributed-autonomous-database-id', required=True, help=u"""Globally distributed autonomous database identifier""")
|
|
170
|
+
@cli_util.option('--db-backup-config', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
171
|
+
@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.""")
|
|
172
|
+
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "WAITING", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "NEEDS_ATTENTION"]), 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.""")
|
|
173
|
+
@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.""")
|
|
174
|
+
@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.""")
|
|
175
|
+
@json_skeleton_utils.get_cli_json_input_option({'db-backup-config': {'module': 'distributed_database', 'class': 'DistributedAutonomousDbBackupConfig'}})
|
|
176
|
+
@cli_util.help_option
|
|
177
|
+
@click.pass_context
|
|
178
|
+
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'db-backup-config': {'module': 'distributed_database', 'class': 'DistributedAutonomousDbBackupConfig'}})
|
|
179
|
+
@cli_util.wrap_exceptions
|
|
180
|
+
def change_distributed_autonomous_db_backup_config(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, distributed_autonomous_database_id, db_backup_config, if_match):
|
|
181
|
+
|
|
182
|
+
if isinstance(distributed_autonomous_database_id, six.string_types) and len(distributed_autonomous_database_id.strip()) == 0:
|
|
183
|
+
raise click.UsageError('Parameter --distributed-autonomous-database-id cannot be whitespace or empty string')
|
|
184
|
+
|
|
185
|
+
kwargs = {}
|
|
186
|
+
if if_match is not None:
|
|
187
|
+
kwargs['if_match'] = if_match
|
|
188
|
+
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
|
|
189
|
+
|
|
190
|
+
_details = {}
|
|
191
|
+
_details['dbBackupConfig'] = cli_util.parse_json_parameter("db_backup_config", db_backup_config)
|
|
192
|
+
|
|
193
|
+
client = cli_util.build_client('distributed_database', 'distributed_autonomous_db_service', ctx)
|
|
194
|
+
result = client.change_distributed_autonomous_db_backup_config(
|
|
195
|
+
distributed_autonomous_database_id=distributed_autonomous_database_id,
|
|
196
|
+
change_distributed_autonomous_db_backup_config_details=_details,
|
|
197
|
+
**kwargs
|
|
198
|
+
)
|
|
199
|
+
if wait_for_state:
|
|
200
|
+
|
|
201
|
+
if hasattr(client, 'get_work_request') and callable(getattr(client, 'get_work_request')):
|
|
202
|
+
try:
|
|
203
|
+
wait_period_kwargs = {}
|
|
204
|
+
if max_wait_seconds is not None:
|
|
205
|
+
wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
|
|
206
|
+
if wait_interval_seconds is not None:
|
|
207
|
+
wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
|
|
208
|
+
if 'opc-work-request-id' not in result.headers:
|
|
209
|
+
click.echo('Encountered error while waiting for work request to enter the specified state. Outputting last known resource state')
|
|
210
|
+
cli_util.render_response(result, ctx)
|
|
211
|
+
return
|
|
212
|
+
|
|
213
|
+
click.echo('Action completed. Waiting until the work request has entered state: {}'.format(wait_for_state), file=sys.stderr)
|
|
214
|
+
result = oci.wait_until(client, client.get_work_request(result.headers['opc-work-request-id']), 'status', wait_for_state, **wait_period_kwargs)
|
|
215
|
+
except oci.exceptions.MaximumWaitTimeExceeded as e:
|
|
216
|
+
# If we fail, we should show an error, but we should still provide the information to the customer
|
|
217
|
+
click.echo('Failed to wait until the work request entered the specified state. Outputting last known resource state', file=sys.stderr)
|
|
218
|
+
cli_util.render_response(result, ctx)
|
|
219
|
+
sys.exit(2)
|
|
220
|
+
except Exception:
|
|
221
|
+
click.echo('Encountered error while waiting for work request to enter the specified state. Outputting last known resource state', file=sys.stderr)
|
|
222
|
+
cli_util.render_response(result, ctx)
|
|
223
|
+
raise
|
|
224
|
+
else:
|
|
225
|
+
click.echo('Unable to wait for the work request to enter the specified state', file=sys.stderr)
|
|
226
|
+
cli_util.render_response(result, ctx)
|
|
227
|
+
|
|
228
|
+
|
|
168
229
|
@distributed_autonomous_database_group.command(name=cli_util.override('distributed_autonomous_db_service.configure_distributed_autonomous_database_gsms.command_name', 'configure-distributed-autonomous-database-gsms'), help=u"""Configure new Global Service Manager(GSM aka shard manager) instances for the Globally distributed autonomous database. \n[Command Reference](configureDistributedAutonomousDatabaseGsms)""")
|
|
169
230
|
@cli_util.option('--old-gsm-names', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""Names of old global service manager(GSM) instances corresponding to which new GSM instances need to be configured.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
170
231
|
@cli_util.option('--is-latest-gsm-image', required=True, type=click.BOOL, help=u"""Flag to indicate if new global service manager(GSM) instances shall use latest image or re-use image used by existing GSM instances.""")
|
|
@@ -293,31 +354,32 @@ def configure_distributed_autonomous_database_sharding(ctx, from_json, wait_for_
|
|
|
293
354
|
@cli_util.option('--prefix', required=True, help=u"""Unique name prefix for the Globally distributed autonomous databases. Only alpha-numeric values are allowed. First character has to be a letter followed by any combination of letter and number.""")
|
|
294
355
|
@cli_util.option('--private-endpoint-ids', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""The collection of [OCID] of the private endpoint associated with Globally distributed autonomous database.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
295
356
|
@cli_util.option('--sharding-method', required=True, type=custom_types.CliCaseInsensitiveChoice(["USER", "SYSTEM"]), help=u"""Sharding Methods for the Globally distributed autonomous database.""")
|
|
296
|
-
@cli_util.option('--db-workload', required=True, type=custom_types.CliCaseInsensitiveChoice(["OLTP", "DW"]), help=u"""Possible workload types.""")
|
|
357
|
+
@cli_util.option('--db-workload', required=True, type=custom_types.CliCaseInsensitiveChoice(["OLTP", "DW"]), help=u"""Possible workload types. Currently only OLTP workload type is supported.""")
|
|
297
358
|
@cli_util.option('--character-set', required=True, help=u"""The character set for the database.""")
|
|
298
359
|
@cli_util.option('--ncharacter-set', required=True, help=u"""The national character set for the database.""")
|
|
299
|
-
@cli_util.option('--listener-port', required=True, type=click.INT, help=u"""The listener port number for the Globally distributed autonomous database.""")
|
|
300
|
-
@cli_util.option('--ons-port-local', required=True, type=click.INT, help=u"""Ons local port number.""")
|
|
301
|
-
@cli_util.option('--ons-port-remote', required=True, type=click.INT, help=u"""Ons remote port number.""")
|
|
360
|
+
@cli_util.option('--listener-port', required=True, type=click.INT, help=u"""The listener port number for the Globally distributed autonomous database. The listener port number has to be unique for a customer tenancy across all distributed autonomous databases. Same port number should not be re-used for any other distributed autonomous database.""")
|
|
361
|
+
@cli_util.option('--ons-port-local', required=True, type=click.INT, help=u"""Ons local port number for Globally distributed autonomous database. The onsPortLocal has to be unique for a customer tenancy across all distributed autonomous databases. Same port number should not be re-used for any other distributed autonomous database.""")
|
|
362
|
+
@cli_util.option('--ons-port-remote', required=True, type=click.INT, help=u"""Ons remote port number for Globally distributed autonomous database. The onsPortRemote has to be unique for a customer tenancy across all distributed autonomous databases. Same port number should not be re-used for any other distributed autonomous database.""")
|
|
302
363
|
@cli_util.option('--db-deployment-type', required=True, type=custom_types.CliCaseInsensitiveChoice(["ADB_D"]), help=u"""The distributed autonomous database deployment type.""")
|
|
303
364
|
@cli_util.option('--shard-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of shards for the Globally distributed autonomous database.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
304
365
|
@cli_util.option('--catalog-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of catalog for the Globally distributed autonomous database.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
305
|
-
@cli_util.option('--chunks', type=click.INT, help=u"""
|
|
306
|
-
@cli_util.option('--listener-port-tls', type=click.INT, help=u"""The TLS listener port number for Globally distributed autonomous database.""")
|
|
307
|
-
@cli_util.option('--replication-method', type=custom_types.CliCaseInsensitiveChoice(["RAFT", "DG"]), help=u"""The Replication method for Globally distributed autonomous database. Use RAFT for Raft replication,
|
|
366
|
+
@cli_util.option('--chunks', type=click.INT, help=u"""Number of chunks in a shardspace. The value of chunks must be greater than 2 times the size of the largest shardgroup in any shardspace. Chunks is required to be provided for distributed autonomous databases being created with SYSTEM shardingMethod. For USER shardingMethod, chunks should not be set in create payload.""")
|
|
367
|
+
@cli_util.option('--listener-port-tls', type=click.INT, help=u"""The TLS listener port number for Globally distributed autonomous database. The TLS listener port number has to be unique for a customer tenancy across all distributed autonomous databases. Same port number should not be re-used for any other distributed autonomous database. The listenerPortTls is mandatory for dedicated infrastructure based distributed autonomous databases.""")
|
|
368
|
+
@cli_util.option('--replication-method', type=custom_types.CliCaseInsensitiveChoice(["RAFT", "DG"]), help=u"""The Replication method for Globally distributed autonomous database. Use RAFT for Raft based replication. With RAFT replication, shards cannot have peers details set on them. In case shards need to have peers, please do not set RAFT replicationMethod. For all non RAFT replication cases (with or without peers), please set replicationMethod as DG or do not set any value for replicationMethod.""")
|
|
308
369
|
@cli_util.option('--replication-factor', type=click.INT, help=u"""The Replication factor for RAFT replication based Globally distributed autonomous database. Currently supported values are 3, 5 and 7.""")
|
|
309
|
-
@cli_util.option('--replication-unit', type=click.INT, help=u"""For RAFT replication based Globally distributed autonomous database, the value should be
|
|
370
|
+
@cli_util.option('--replication-unit', type=click.INT, help=u"""The replication unit count for RAFT based distributed autonomous database. For RAFT replication based Globally distributed autonomous database, the value should be at least twice the number of shards.""")
|
|
371
|
+
@cli_util.option('--db-backup-config', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
310
372
|
@cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{\"bar-key\": \"value\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
311
373
|
@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. Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
312
374
|
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "WAITING", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "NEEDS_ATTENTION"]), 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.""")
|
|
313
375
|
@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.""")
|
|
314
376
|
@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.""")
|
|
315
|
-
@json_skeleton_utils.get_cli_json_input_option({'private-endpoint-ids': {'module': 'distributed_database', 'class': 'list[string]'}, 'shard-details': {'module': 'distributed_database', 'class': 'list[CreateDistributedAutonomousDatabaseShardDetails]'}, 'catalog-details': {'module': 'distributed_database', 'class': 'list[CreateDistributedAutonomousDatabaseCatalogDetails]'}, 'freeform-tags': {'module': 'distributed_database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'distributed_database', 'class': 'dict(str, dict(str, object))'}})
|
|
377
|
+
@json_skeleton_utils.get_cli_json_input_option({'private-endpoint-ids': {'module': 'distributed_database', 'class': 'list[string]'}, 'shard-details': {'module': 'distributed_database', 'class': 'list[CreateDistributedAutonomousDatabaseShardDetails]'}, 'catalog-details': {'module': 'distributed_database', 'class': 'list[CreateDistributedAutonomousDatabaseCatalogDetails]'}, 'db-backup-config': {'module': 'distributed_database', 'class': 'DistributedAutonomousDbBackupConfig'}, 'freeform-tags': {'module': 'distributed_database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'distributed_database', 'class': 'dict(str, dict(str, object))'}})
|
|
316
378
|
@cli_util.help_option
|
|
317
379
|
@click.pass_context
|
|
318
|
-
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'private-endpoint-ids': {'module': 'distributed_database', 'class': 'list[string]'}, 'shard-details': {'module': 'distributed_database', 'class': 'list[CreateDistributedAutonomousDatabaseShardDetails]'}, 'catalog-details': {'module': 'distributed_database', 'class': 'list[CreateDistributedAutonomousDatabaseCatalogDetails]'}, 'freeform-tags': {'module': 'distributed_database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'distributed_database', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'distributed_database', 'class': 'DistributedAutonomousDatabase'})
|
|
380
|
+
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'private-endpoint-ids': {'module': 'distributed_database', 'class': 'list[string]'}, 'shard-details': {'module': 'distributed_database', 'class': 'list[CreateDistributedAutonomousDatabaseShardDetails]'}, 'catalog-details': {'module': 'distributed_database', 'class': 'list[CreateDistributedAutonomousDatabaseCatalogDetails]'}, 'db-backup-config': {'module': 'distributed_database', 'class': 'DistributedAutonomousDbBackupConfig'}, 'freeform-tags': {'module': 'distributed_database', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'distributed_database', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'distributed_database', 'class': 'DistributedAutonomousDatabase'})
|
|
319
381
|
@cli_util.wrap_exceptions
|
|
320
|
-
def create_distributed_autonomous_database(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, display_name, database_version, prefix, private_endpoint_ids, sharding_method, db_workload, character_set, ncharacter_set, listener_port, ons_port_local, ons_port_remote, db_deployment_type, shard_details, catalog_details, chunks, listener_port_tls, replication_method, replication_factor, replication_unit, freeform_tags, defined_tags):
|
|
382
|
+
def create_distributed_autonomous_database(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, display_name, database_version, prefix, private_endpoint_ids, sharding_method, db_workload, character_set, ncharacter_set, listener_port, ons_port_local, ons_port_remote, db_deployment_type, shard_details, catalog_details, chunks, listener_port_tls, replication_method, replication_factor, replication_unit, db_backup_config, freeform_tags, defined_tags):
|
|
321
383
|
|
|
322
384
|
kwargs = {}
|
|
323
385
|
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
|
|
@@ -354,6 +416,9 @@ def create_distributed_autonomous_database(ctx, from_json, wait_for_state, max_w
|
|
|
354
416
|
if replication_unit is not None:
|
|
355
417
|
_details['replicationUnit'] = replication_unit
|
|
356
418
|
|
|
419
|
+
if db_backup_config is not None:
|
|
420
|
+
_details['dbBackupConfig'] = cli_util.parse_json_parameter("db_backup_config", db_backup_config)
|
|
421
|
+
|
|
357
422
|
if freeform_tags is not None:
|
|
358
423
|
_details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
|
|
359
424
|
|
|
@@ -769,7 +834,7 @@ def patch_distributed_autonomous_database(ctx, from_json, wait_for_state, max_wa
|
|
|
769
834
|
cli_util.render_response(result, ctx)
|
|
770
835
|
|
|
771
836
|
|
|
772
|
-
@distributed_autonomous_database_group.command(name=cli_util.override('distributed_autonomous_db_service.rotate_distributed_autonomous_database_passwords.command_name', 'rotate-distributed-autonomous-database-passwords'), help=u"""Rotate passwords for
|
|
837
|
+
@distributed_autonomous_database_group.command(name=cli_util.override('distributed_autonomous_db_service.rotate_distributed_autonomous_database_passwords.command_name', 'rotate-distributed-autonomous-database-passwords'), help=u"""Rotate the gsmuser and gsmcatuser passwords for shards and catalog of the Globally distributed autonomous database. This operation will also remove GdsCtlNodes if present. \n[Command Reference](rotateDistributedAutonomousDatabasePasswords)""")
|
|
773
838
|
@cli_util.option('--distributed-autonomous-database-id', required=True, help=u"""Globally distributed autonomous database identifier""")
|
|
774
839
|
@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.""")
|
|
775
840
|
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "WAITING", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "NEEDS_ATTENTION"]), 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.""")
|
|
@@ -356,17 +356,17 @@ def configure_distributed_database_sharding(ctx, from_json, wait_for_state, max_
|
|
|
356
356
|
@cli_util.option('--sharding-method', required=True, type=custom_types.CliCaseInsensitiveChoice(["USER", "SYSTEM"]), help=u"""Sharding Methods for the Globally distributed database.""")
|
|
357
357
|
@cli_util.option('--character-set', required=True, help=u"""The character set for the database.""")
|
|
358
358
|
@cli_util.option('--ncharacter-set', required=True, help=u"""The national character set for the database.""")
|
|
359
|
-
@cli_util.option('--listener-port', required=True, type=click.INT, help=u"""The listener port number for the Globally distributed database.""")
|
|
360
|
-
@cli_util.option('--ons-port-local', required=True, type=click.INT, help=u"""
|
|
361
|
-
@cli_util.option('--ons-port-remote', required=True, type=click.INT, help=u"""
|
|
359
|
+
@cli_util.option('--listener-port', required=True, type=click.INT, help=u"""The listener port number for the Globally distributed database. The listener port number has to be unique for a customer tenancy across all distributed databases. Same port number should not be re-used for any other distributed database.""")
|
|
360
|
+
@cli_util.option('--ons-port-local', required=True, type=click.INT, help=u"""The ons local port number for the Globally distributed database. The onsPortLocal has to be unique for a customer tenancy across all distributed databases. Same port number should not be re-used for any other distributed database.""")
|
|
361
|
+
@cli_util.option('--ons-port-remote', required=True, type=click.INT, help=u"""The ons remote port number for the Globally distributed database. The onsPortRemote has to be unique for a customer tenancy across all distributed databases. Same port number should not be re-used for any other distributed database.""")
|
|
362
362
|
@cli_util.option('--db-deployment-type', required=True, type=custom_types.CliCaseInsensitiveChoice(["EXADB_XS"]), help=u"""The distributed database deployment type.""")
|
|
363
363
|
@cli_util.option('--shard-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of shards for the Globally distributed database.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
364
364
|
@cli_util.option('--catalog-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of catalog for the Globally distributed database.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
365
|
-
@cli_util.option('--chunks', type=click.INT, help=u"""
|
|
366
|
-
@cli_util.option('--listener-port-tls', type=click.INT, help=u"""The TLS listener port number for Globally distributed database.""")
|
|
367
|
-
@cli_util.option('--replication-method', type=custom_types.CliCaseInsensitiveChoice(["RAFT", "DG"]), help=u"""The Replication method for Globally distributed database. Use RAFT for Raft replication,
|
|
365
|
+
@cli_util.option('--chunks', type=click.INT, help=u"""Number of chunks in a shardspace. The value of chunks must be greater than 2 times the size of the largest shardgroup in any shardspace. Chunks is required to be provided for distributed databases being created with SYSTEM shardingMethod. For USER shardingMethod, chunks should not be set in create payload.""")
|
|
366
|
+
@cli_util.option('--listener-port-tls', type=click.INT, help=u"""The TLS listener port number for the Globally distributed database. The TLS listener port number has to be unique for a customer tenancy across all distributed databases. Same port number should not be re-used for any other distributed database. For BASE_DB and EXADB_XS based distributed databases, tls is not supported hence the listenerPortTls is not needed to be provided in create payload.""")
|
|
367
|
+
@cli_util.option('--replication-method', type=custom_types.CliCaseInsensitiveChoice(["RAFT", "DG"]), help=u"""The Replication method for Globally distributed database. Use RAFT for Raft based replication. With RAFT replication, shards cannot have peers details set on them. In case shards need to have peers, please do not set RAFT replicationMethod. For all non RAFT replication cases (with or without peers), please set replicationMethod as DG or do not set any value for replicationMethod.""")
|
|
368
368
|
@cli_util.option('--replication-factor', type=click.INT, help=u"""The Replication factor for RAFT replication based Globally distributed database. Currently supported values are 3, 5 and 7.""")
|
|
369
|
-
@cli_util.option('--replication-unit', type=click.INT, help=u"""For RAFT replication based Globally distributed database, the value should be
|
|
369
|
+
@cli_util.option('--replication-unit', type=click.INT, help=u"""The replication unit count for RAFT based distributed database. For RAFT replication based Globally distributed database, the value should be at least twice the number of shards.""")
|
|
370
370
|
@cli_util.option('--gsm-ssh-public-key', help=u"""The SSH public key for Global service manager instances.""")
|
|
371
371
|
@cli_util.option('--db-backup-config', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
372
372
|
@cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{\"bar-key\": \"value\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
|
|
@@ -836,7 +836,7 @@ def patch_distributed_database(ctx, from_json, wait_for_state, max_wait_seconds,
|
|
|
836
836
|
cli_util.render_response(result, ctx)
|
|
837
837
|
|
|
838
838
|
|
|
839
|
-
@distributed_database_group.command(name=cli_util.override('distributed_db_service.rotate_distributed_database_passwords.command_name', 'rotate-distributed-database-passwords'), help=u"""Rotate passwords for
|
|
839
|
+
@distributed_database_group.command(name=cli_util.override('distributed_db_service.rotate_distributed_database_passwords.command_name', 'rotate-distributed-database-passwords'), help=u"""Rotate the gsmuser and gsmcatuser passwords for shards and catalog of the Globally distributed database. This operation will also remove GdsCtlNodes if present. \n[Command Reference](rotateDistributedDatabasePasswords)""")
|
|
840
840
|
@cli_util.option('--distributed-database-id', required=True, help=u"""Globally distributed database identifier""")
|
|
841
841
|
@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.""")
|
|
842
842
|
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "WAITING", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "NEEDS_ATTENTION"]), 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.""")
|
services/psa/__init__.py
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
# Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
|
|
3
|
+
# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
|
|
4
|
+
# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240301
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
# Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
|
|
3
|
+
# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
|
|
4
|
+
# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240301
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
# Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
|
|
3
|
+
# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
|
|
4
|
+
# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240301
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
# Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
|
|
3
|
+
# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
|
|
4
|
+
# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240301
|