Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 72 additions & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,78 @@ All notable changes to this project will be documented in this file.

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

3.79.0 - 2026-04-09
3.80.0 - 2026-04-21
-------------------
Added
~~~~~
* Database service

* Support for ASM Diskgroup Resize for CloudVmCluster in the Exadata Database Service on Dedicated Infrastructure

* ``oci db cloud-vm-cluster create --reco-storage-percentage --sparse-storage-percentage``
* ``oci db cloud-vm-cluster update --data-storage-percentage --is-local-backup-enabled --is-sparse-diskgroup-enabled --reco-storage-percentage --sparse-storage-percentage``

* Support for ASM Diskgroup Resize for VmCluster in the Exadata Database Service on Cloud@Customer

* ``oci db vm-cluster create --data-storage-percentage --reco-storage-percentage --sparse-storage-percentage``
* ``oci db vm-cluster update --data-storage-percentage --is-local-backup-enabled --is-sparse-diskgroup-enabled --reco-storage-percentage --sparse-storage-percentage``

* Fusion Applications service

* Support for Email Subdomain, Marketing Brand, and Microsite commands

* ``oci fusion-apps email-subdomain``
* ``oci fusion-apps marketing-brand``
* ``oci fusion-apps microsite``

* GoldenGate service

* Support for new technology types

* ``oci goldengate connection create-kafka-connection --technology-type MICROSOFT_FABRIC_EVENTSTREAM``
* ``oci goldengate connection create-postgresql-connection --technology-type EDB_POSTGRES_ADVANCED_SERVER``
* ``oci goldengate connection create-postgresql-connection --technology-type YUGABYTE_DB``

* Support for new optional endpoint parameter for Google BigQuery connections

* ``oci goldengate connection create-google-big-query-connection --endpoint-parameterconflict``
* ``oci goldengate connection update-google-big-query-connection --endpoint-parameterconflict``

* Support for new optional endpoint parameter for Google Cloud Storage connections

* ``oci goldengate connection create-google-cloud-storage-connection --endpoint-parameterconflict``
* ``oci goldengate connection update-google-cloud-storage-connection --endpoint-parameterconflict``

* Support for migrating Connection Secret details
* ``oci goldengate connection migrate``
* ``oci goldengate connection migrate-connection-secret-migrate-connection-details``

* Functions service

* Support for Application logging configuration

* ``oci fn application create --logging``
* ``oci fn application update --logging``

* Usage service

* Support for ``USAGE_ONLY`` queryType

* ``oci usage-api usage-summary request-summarized-usages --query-type USAGE_ONLY``

* Compute GPU Memory Cluster service

* Support for Reserved Private IP Ids

* ``oci compute compute-gpu-memory-cluster create --private-ip-ids``
* ``oci compute compute-gpu-memory-cluster update --private-ip-ids``

Changed
~~~~~~~
- [BREAKING] GoldenGate service: --private-ip is no longer supported for connection creation commands


3.79.0 - 2026-04-14
-------------------
Added
~~~~~
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Jinja2>=3.1.5,<4.0.0; python_version >= '3.7'
jmespath>=0.10.0,<=1.0.1
ndg-httpsclient==0.4.2
mock==2.0.0
oci==2.171.0
oci==2.172.0
packaging>=22.0,<25.0; python_version > '3.8'
packaging==20.2; python_version <= '3.8'
pluggy==0.13.0
Expand Down
296 changes: 191 additions & 105 deletions services/core/src/oci_cli_compute/generated/compute_cli.py

Large diffs are not rendered by default.

Large diffs are not rendered by default.

70 changes: 65 additions & 5 deletions services/database/src/oci_cli_database/generated/database_cli.py

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ def change_application_compartment(ctx, from_json, application_id, compartment_i

Example: `tcp://logserver.myserver:1234`""")
@cli_util.option('--trace-config', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@cli_util.option('--logging', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@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].

Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
Expand All @@ -119,12 +120,12 @@ def change_application_compartment(ctx, from_json, application_id, compartment_i
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "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 CREATING --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 resource to reach the lifecycle 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 resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
@json_skeleton_utils.get_cli_json_input_option({'config': {'module': 'functions', 'class': 'dict(str, string)'}, 'subnet-ids': {'module': 'functions', 'class': 'list[string]'}, 'network-security-group-ids': {'module': 'functions', 'class': 'list[string]'}, 'trace-config': {'module': 'functions', 'class': 'ApplicationTraceConfig'}, 'freeform-tags': {'module': 'functions', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}, 'image-policy-config': {'module': 'functions', 'class': 'ImagePolicyConfig'}, 'security-attributes': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}})
@json_skeleton_utils.get_cli_json_input_option({'config': {'module': 'functions', 'class': 'dict(str, string)'}, 'subnet-ids': {'module': 'functions', 'class': 'list[string]'}, 'network-security-group-ids': {'module': 'functions', 'class': 'list[string]'}, 'trace-config': {'module': 'functions', 'class': 'ApplicationTraceConfig'}, 'logging': {'module': 'functions', 'class': 'ApplicationLoggingConfig'}, 'freeform-tags': {'module': 'functions', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}, 'image-policy-config': {'module': 'functions', 'class': 'ImagePolicyConfig'}, 'security-attributes': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}})
@cli_util.help_option
@click.pass_context
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'config': {'module': 'functions', 'class': 'dict(str, string)'}, 'subnet-ids': {'module': 'functions', 'class': 'list[string]'}, 'network-security-group-ids': {'module': 'functions', 'class': 'list[string]'}, 'trace-config': {'module': 'functions', 'class': 'ApplicationTraceConfig'}, 'freeform-tags': {'module': 'functions', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}, 'image-policy-config': {'module': 'functions', 'class': 'ImagePolicyConfig'}, 'security-attributes': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'functions', 'class': 'Application'})
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'config': {'module': 'functions', 'class': 'dict(str, string)'}, 'subnet-ids': {'module': 'functions', 'class': 'list[string]'}, 'network-security-group-ids': {'module': 'functions', 'class': 'list[string]'}, 'trace-config': {'module': 'functions', 'class': 'ApplicationTraceConfig'}, 'logging': {'module': 'functions', 'class': 'ApplicationLoggingConfig'}, 'freeform-tags': {'module': 'functions', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}, 'image-policy-config': {'module': 'functions', 'class': 'ImagePolicyConfig'}, 'security-attributes': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'functions', 'class': 'Application'})
@cli_util.wrap_exceptions
def create_application(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, display_name, subnet_ids, config, shape, network_security_group_ids, syslog_url, trace_config, freeform_tags, defined_tags, image_policy_config, security_attributes):
def create_application(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, display_name, subnet_ids, config, shape, network_security_group_ids, syslog_url, trace_config, logging, freeform_tags, defined_tags, image_policy_config, security_attributes):

kwargs = {}
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
Expand All @@ -149,6 +150,9 @@ def create_application(ctx, from_json, wait_for_state, max_wait_seconds, wait_in
if trace_config is not None:
_details['traceConfig'] = cli_util.parse_json_parameter("trace_config", trace_config)

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

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

Expand Down Expand Up @@ -2081,6 +2085,7 @@ def list_triggers(ctx, from_json, all_pages, page_size, name, limit, page, sort_

Example: `tcp://logserver.myserver:1234`""")
@cli_util.option('--trace-config', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@cli_util.option('--logging', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@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].

Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
Expand All @@ -2096,18 +2101,18 @@ def list_triggers(ctx, from_json, all_pages, page_size, name, limit, page, sort_
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "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 CREATING --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 resource to reach the lifecycle 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 resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
@json_skeleton_utils.get_cli_json_input_option({'config': {'module': 'functions', 'class': 'dict(str, string)'}, 'network-security-group-ids': {'module': 'functions', 'class': 'list[string]'}, 'trace-config': {'module': 'functions', 'class': 'ApplicationTraceConfig'}, 'freeform-tags': {'module': 'functions', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}, 'image-policy-config': {'module': 'functions', 'class': 'ImagePolicyConfig'}, 'security-attributes': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}})
@json_skeleton_utils.get_cli_json_input_option({'config': {'module': 'functions', 'class': 'dict(str, string)'}, 'network-security-group-ids': {'module': 'functions', 'class': 'list[string]'}, 'trace-config': {'module': 'functions', 'class': 'ApplicationTraceConfig'}, 'logging': {'module': 'functions', 'class': 'ApplicationLoggingConfig'}, 'freeform-tags': {'module': 'functions', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}, 'image-policy-config': {'module': 'functions', 'class': 'ImagePolicyConfig'}, 'security-attributes': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}})
@cli_util.help_option
@click.pass_context
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'config': {'module': 'functions', 'class': 'dict(str, string)'}, 'network-security-group-ids': {'module': 'functions', 'class': 'list[string]'}, 'trace-config': {'module': 'functions', 'class': 'ApplicationTraceConfig'}, 'freeform-tags': {'module': 'functions', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}, 'image-policy-config': {'module': 'functions', 'class': 'ImagePolicyConfig'}, 'security-attributes': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'functions', 'class': 'Application'})
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'config': {'module': 'functions', 'class': 'dict(str, string)'}, 'network-security-group-ids': {'module': 'functions', 'class': 'list[string]'}, 'trace-config': {'module': 'functions', 'class': 'ApplicationTraceConfig'}, 'logging': {'module': 'functions', 'class': 'ApplicationLoggingConfig'}, 'freeform-tags': {'module': 'functions', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}, 'image-policy-config': {'module': 'functions', 'class': 'ImagePolicyConfig'}, 'security-attributes': {'module': 'functions', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'functions', 'class': 'Application'})
@cli_util.wrap_exceptions
def update_application(ctx, from_json, force, wait_for_state, max_wait_seconds, wait_interval_seconds, application_id, config, network_security_group_ids, syslog_url, trace_config, freeform_tags, defined_tags, image_policy_config, security_attributes, if_match):
def update_application(ctx, from_json, force, wait_for_state, max_wait_seconds, wait_interval_seconds, application_id, config, network_security_group_ids, syslog_url, trace_config, logging, freeform_tags, defined_tags, image_policy_config, security_attributes, if_match):

if isinstance(application_id, six.string_types) and len(application_id.strip()) == 0:
raise click.UsageError('Parameter --application-id cannot be whitespace or empty string')
if not force:
if config or network_security_group_ids or trace_config or freeform_tags or defined_tags or image_policy_config or security_attributes:
if not click.confirm("WARNING: Updates to config and network-security-group-ids and trace-config and freeform-tags and defined-tags and image-policy-config and security-attributes will replace any existing values. Are you sure you want to continue?"):
if config or network_security_group_ids or trace_config or logging or freeform_tags or defined_tags or image_policy_config or security_attributes:
if not click.confirm("WARNING: Updates to config and network-security-group-ids and trace-config and logging and freeform-tags and defined-tags and image-policy-config and security-attributes will replace any existing values. Are you sure you want to continue?"):
ctx.abort()

kwargs = {}
Expand All @@ -2129,6 +2134,9 @@ def update_application(ctx, from_json, force, wait_for_state, max_wait_seconds,
if trace_config is not None:
_details['traceConfig'] = cli_util.parse_json_parameter("trace_config", trace_config)

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

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

Expand Down
Loading