Skip to content

Commit

Permalink
Releasing version 3.40.1
Browse files Browse the repository at this point in the history
Releasing version 3.40.1
  • Loading branch information
Swarn10 authored Apr 30, 2024
2 parents e2a35f1 + 974afb4 commit 23a088f
Show file tree
Hide file tree
Showing 21 changed files with 2,142 additions and 270 deletions.
73 changes: 73 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,79 @@ All notable changes to this project will be documented in this file.

The format is based on `Keep a Changelog <http://keepachangelog.com/>`__.

3.40.1 - 2024-04-30
--------------------
Added
~~~~~
* Database Service

* Support for enabling unified auditing for DBHome

* ``oci db db-home``

* Support to create Grid Infrastructure type of custom software images

* ``oci db database-software-image create --display-name, --compartment-id, --image-type "grid_image"``

* Support to list custom software images greater than a given patchSet version, to find the images available for use in patching.

* ``oci db database-software-image list --compartment-id, --image-type, --image-shape-family, --patch-set-greater-than-or-equal-to``

* Support Cloud VM cluster in-place patching using custom Grid Infrastructure image

* ``oci db cloud-vm-cluster update --cloud-vm-cluster-id, --gi-image-id, --update-action``

* Support VM cluster in-place patching using custom Grid Infrastructure image

* ``oci db vm-cluster update --vm-cluster-id, --gi-image-id, --update-action``

* Oracle Database Autonomous Recovery Service

* Support for Cancel Protected Database

* ``oci recovery protected-database cancel-protected-database-deletion [options]``

* Support for Schedule Protected Database

* ``oci recovery protected-database schedule-protected-database-deletion [options]``

* Support for Network Security Group for RSS

* ``oci recovery recovery-subnet create --nsg-ids [options]``
* ``oci recovery recovery-subnet update --nsg-ids [options]``

* Data Catalog

* Support for lineage metadata import

* ``oci data-catalog data-asset import-lineage``

* Database Management Service

* Support for monitoring ExaCC databases

* ``oci database-management managed-database enable-database-management-feature-database-diagnostics-and-management-feature-details``
* ``oci database-management managed-database enable-external-container-database-management-feature-external-database-diagnostics-and-management-feature-details``
* ``oci database-management managed-database enable-external-non-container-database-management-feature-external-database-diagnostics-and-management-feature-details``

* Data Safe Service

* Support for generate, list, get, delete and change compartment for pre-masking check before actual masking

* ``oci data-safe masking-policy-health-report change-compartment --compartment-id | -c, --masking-policy-health-report-id, -? | -h | --help``
* ``oci data-safe masking-policy-health-report delete --masking-policy-health-report-id, --force, -? | -h | --help``
* ``oci data-safe masking-policy-health-report generate-health-report --masking-policy-id, --check-type, --compartment-id | -c, --defined-tags, --freeform-tags, -? | -h | --help, --tablespace, --target-id``
* ``oci data-safe masking-policy-health-report get --masking-policy-health-report-id, -? | -h | --help``
* ``oci data-safe masking-policy-health-report list --compartment-id | -c, --access-level, --all, --compartment-id-in-subtree, --display-name, -? | -h | --help, --masking-policy-health-report-id, --masking-policy-id, --target-id``
* ``oci data-safe masking-policy-health-report list-masking-policy-health-report-logs --masking-policy-health-report-id, --all, -? | -h | --help, --message-type``

* Data Integration Service

* Support for workspace properties in create/update workspace

* ``oci data-integration workspace create``
* ``oci data-integration workspace update``

3.40.0 - 2024-04-23
--------------------
Added
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Jinja2==3.0.3
jmespath==0.10.0
ndg-httpsclient==0.4.2
mock==2.0.0
oci==2.126.0
oci==2.126.1
packaging==20.2
pluggy==0.13.0
py==1.11.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4721,6 +4721,39 @@ def import_glossary(ctx, from_json, catalog_id, glossary_key, glossary_file_cont
cli_util.render_response(result, ctx)


@data_asset_group.command(name=cli_util.override('data_catalog.import_lineage.command_name', 'import-lineage'), help=u"""Imports lineage metadata. Returns details about the job that performs the import. \n[Command Reference](importLineage)""")
@cli_util.option('--catalog-id', required=True, help=u"""Unique catalog identifier.""")
@cli_util.option('--data-asset-key', required=True, help=u"""Unique data asset key.""")
@cli_util.option('--lineage-payload', required=True, help=u"""The payload used to import lineage.""")
@json_skeleton_utils.get_cli_json_input_option({})
@cli_util.help_option
@click.pass_context
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={}, output_type={'module': 'data_catalog', 'class': 'ImportLineageJobResult'})
@cli_util.wrap_exceptions
def import_lineage(ctx, from_json, catalog_id, data_asset_key, lineage_payload):

if isinstance(catalog_id, six.string_types) and len(catalog_id.strip()) == 0:
raise click.UsageError('Parameter --catalog-id cannot be whitespace or empty string')

if isinstance(data_asset_key, six.string_types) and len(data_asset_key.strip()) == 0:
raise click.UsageError('Parameter --data-asset-key cannot be whitespace or empty string')

kwargs = {}
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])

_details = {}
_details['lineagePayload'] = lineage_payload

client = cli_util.build_client('data_catalog', 'data_catalog', ctx)
result = client.import_lineage(
catalog_id=catalog_id,
data_asset_key=data_asset_key,
import_lineage_details=_details,
**kwargs
)
cli_util.render_response(result, ctx)


@entity_group.command(name=cli_util.override('data_catalog.list_aggregated_physical_entities.command_name', 'list-aggregated-physical'), help=u"""List the physical entities aggregated by this logical entity. \n[Command Reference](listAggregatedPhysicalEntities)""")
@cli_util.option('--catalog-id', required=True, help=u"""Unique catalog identifier.""")
@cli_util.option('--data-asset-key', required=True, help=u"""Unique data asset key.""")
Expand Down Expand Up @@ -5609,14 +5642,15 @@ def list_derived_logical_entities(ctx, from_json, all_pages, page_size, catalog_
@cli_util.option('--sort-order', type=custom_types.CliCaseInsensitiveChoice(["ASC", "DESC"]), help=u"""The sort order to use, either 'asc' or 'desc'.""")
@cli_util.option('--limit', type=click.INT, help=u"""The maximum number of items to return.""")
@cli_util.option('--page', help=u"""The page token representing the page at which to start retrieving results. This is usually retrieved from a previous list call.""")
@cli_util.option('--is-process', type=click.BOOL, help=u"""A filter to return only process entities.""")
@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.""")
@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.""")
@json_skeleton_utils.get_cli_json_input_option({})
@cli_util.help_option
@click.pass_context
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={}, output_type={'module': 'data_catalog', 'class': 'EntityCollection'})
@cli_util.wrap_exceptions
def list_entities(ctx, from_json, all_pages, page_size, catalog_id, data_asset_key, display_name, business_name, display_or_business_name_contains, type_key, display_name_contains, lifecycle_state, time_created, time_updated, created_by_id, updated_by_id, external_key, pattern_key, time_external, time_status_updated, is_logical, is_partition, folder_key, path, harvest_status, last_job_key, fields, sort_by, sort_order, limit, page):
def list_entities(ctx, from_json, all_pages, page_size, catalog_id, data_asset_key, display_name, business_name, display_or_business_name_contains, type_key, display_name_contains, lifecycle_state, time_created, time_updated, created_by_id, updated_by_id, external_key, pattern_key, time_external, time_status_updated, is_logical, is_partition, folder_key, path, harvest_status, last_job_key, fields, sort_by, sort_order, limit, page, is_process):

if all_pages and limit:
raise click.UsageError('If you provide the --all option you cannot provide the --limit option')
Expand Down Expand Up @@ -5678,6 +5712,8 @@ def list_entities(ctx, from_json, all_pages, page_size, catalog_id, data_asset_k
kwargs['limit'] = limit
if page is not None:
kwargs['page'] = page
if is_process is not None:
kwargs['is_process'] = is_process
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
client = cli_util.build_client('data_catalog', 'data_catalog', ctx)
if all_pages:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@
"data_catalog.import_connection": "oci.data_catalog.DataCatalogClient.import_connection",
"data_catalog.import_data_asset": "oci.data_catalog.DataCatalogClient.import_data_asset",
"data_catalog.import_glossary": "oci.data_catalog.DataCatalogClient.import_glossary",
"data_catalog.import_lineage": "oci.data_catalog.DataCatalogClient.import_lineage",
"data_catalog.list_aggregated_physical_entities": "oci.data_catalog.DataCatalogClient.list_aggregated_physical_entities",
"data_catalog.list_attribute_tags": "oci.data_catalog.DataCatalogClient.list_attribute_tags",
"data_catalog.list_attributes": "oci.data_catalog.DataCatalogClient.list_attributes",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9504,15 +9504,16 @@ def create_user_defined_function_validation(ctx, from_json, workspace_id, key, m
@cli_util.option('--registry-compartment-id', help=u"""DCMS Data Asset Registry Compartment Identifier""")
@cli_util.option('--endpoint-name', help=u"""DCMS Private Endpoint Name""")
@cli_util.option('--endpoint-compartment-id', help=u"""DCMS PRivate Endpoint Compartment Identifier""")
@cli_util.option('--workspace-properties', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Key-values pairs of workspace for storing properties on the workspace.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"]), 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.""")
@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.""")
@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.""")
@json_skeleton_utils.get_cli_json_input_option({'freeform-tags': {'module': 'data_integration', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_integration', 'class': 'dict(str, dict(str, object))'}})
@json_skeleton_utils.get_cli_json_input_option({'freeform-tags': {'module': 'data_integration', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_integration', 'class': 'dict(str, dict(str, object))'}, 'workspace-properties': {'module': 'data_integration', 'class': 'dict(str, string)'}})
@cli_util.help_option
@click.pass_context
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'freeform-tags': {'module': 'data_integration', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_integration', 'class': 'dict(str, dict(str, object))'}})
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'freeform-tags': {'module': 'data_integration', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_integration', 'class': 'dict(str, dict(str, object))'}, 'workspace-properties': {'module': 'data_integration', 'class': 'dict(str, string)'}})
@cli_util.wrap_exceptions
def create_workspace(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, display_name, compartment_id, vcn_id, subnet_id, dns_server_ip, dns_server_zone, freeform_tags, defined_tags, description, is_private_network_enabled, registry_id, endpoint_id, registry_name, registry_compartment_id, endpoint_name, endpoint_compartment_id):
def create_workspace(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, display_name, compartment_id, vcn_id, subnet_id, dns_server_ip, dns_server_zone, freeform_tags, defined_tags, description, is_private_network_enabled, registry_id, endpoint_id, registry_name, registry_compartment_id, endpoint_name, endpoint_compartment_id, workspace_properties):

kwargs = {}
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
Expand Down Expand Up @@ -9563,6 +9564,9 @@ def create_workspace(ctx, from_json, wait_for_state, max_wait_seconds, wait_inte
if endpoint_compartment_id is not None:
_details['endpointCompartmentId'] = endpoint_compartment_id

if workspace_properties is not None:
_details['workspaceProperties'] = cli_util.parse_json_parameter("workspace_properties", workspace_properties)

client = cli_util.build_client('data_integration', 'data_integration', ctx)
result = client.create_workspace(
create_workspace_details=_details,
Expand Down Expand Up @@ -20795,23 +20799,24 @@ def update_user_defined_function(ctx, from_json, force, workspace_id, user_defin
@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. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@cli_util.option('--description', help=u"""A user defined description for the workspace.""")
@cli_util.option('--display-name', help=u"""A user-friendly display name for the workspace. Does not have to be unique, and can be modified. Avoid entering confidential information.""")
@cli_util.option('--workspace-properties', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Key-values pairs of workspace for storing properties on the workspace.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@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. When 'if-match' is provided and its value does not exactly match the 'etag' of the resource on the server, the request fails with the 412 response code.""")
@cli_util.option('--force', help="""Perform update without prompting for confirmation.""", is_flag=True)
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"]), 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.""")
@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.""")
@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.""")
@json_skeleton_utils.get_cli_json_input_option({'freeform-tags': {'module': 'data_integration', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_integration', 'class': 'dict(str, dict(str, object))'}})
@json_skeleton_utils.get_cli_json_input_option({'freeform-tags': {'module': 'data_integration', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_integration', 'class': 'dict(str, dict(str, object))'}, 'workspace-properties': {'module': 'data_integration', 'class': 'dict(str, string)'}})
@cli_util.help_option
@click.pass_context
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'freeform-tags': {'module': 'data_integration', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_integration', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_integration', 'class': 'Workspace'})
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'freeform-tags': {'module': 'data_integration', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_integration', 'class': 'dict(str, dict(str, object))'}, 'workspace-properties': {'module': 'data_integration', 'class': 'dict(str, string)'}}, output_type={'module': 'data_integration', 'class': 'Workspace'})
@cli_util.wrap_exceptions
def update_workspace(ctx, from_json, force, wait_for_state, max_wait_seconds, wait_interval_seconds, workspace_id, freeform_tags, defined_tags, description, display_name, if_match):
def update_workspace(ctx, from_json, force, wait_for_state, max_wait_seconds, wait_interval_seconds, workspace_id, freeform_tags, defined_tags, description, display_name, workspace_properties, if_match):

if isinstance(workspace_id, six.string_types) and len(workspace_id.strip()) == 0:
raise click.UsageError('Parameter --workspace-id cannot be whitespace or empty string')
if not force:
if freeform_tags or defined_tags:
if not click.confirm("WARNING: Updates to freeform-tags and defined-tags will replace any existing values. Are you sure you want to continue?"):
if freeform_tags or defined_tags or workspace_properties:
if not click.confirm("WARNING: Updates to freeform-tags and defined-tags and workspace-properties will replace any existing values. Are you sure you want to continue?"):
ctx.abort()

kwargs = {}
Expand All @@ -20833,6 +20838,9 @@ def update_workspace(ctx, from_json, force, wait_for_state, max_wait_seconds, wa
if display_name is not None:
_details['displayName'] = display_name

if workspace_properties is not None:
_details['workspaceProperties'] = cli_util.parse_json_parameter("workspace_properties", workspace_properties)

client = cli_util.build_client('data_integration', 'data_integration', ctx)
result = client.update_workspace(
workspace_id=workspace_id,
Expand Down
Loading

0 comments on commit 23a088f

Please sign in to comment.