diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f6a21e8359..6c5cfaf5e3 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file. The format is based on `Keep a Changelog `_. +==================== +2.6.4 - 2019-11-12 +==================== + +Added +----- +* Support for access to APEX and SQL Dev features on autonomous transaction processing and autonomous data warehouse resources in the Database service +* Support for registering / deregistering autonomous transaction processing and autonomous data warehouse resources with Data Safe in the Database service +* Support for redirecting HTTP / HTTPS request URIs to different URIs in the Load Balancing service +* Support for specifying compartments on options APIs in the Container Engine for Kubernetes service +* Support for volume performance units on block volumes in the Block Storage service + ==================== 2.6.3 - 2019-11-05 ==================== diff --git a/docs/api/load_balancer.rst b/docs/api/load_balancer.rst index 8d879228b4..13a70d1379 100644 --- a/docs/api/load_balancer.rst +++ b/docs/api/load_balancer.rst @@ -58,10 +58,13 @@ Load Balancer oci.load_balancer.models.LoadBalancerPolicy oci.load_balancer.models.LoadBalancerProtocol oci.load_balancer.models.LoadBalancerShape + oci.load_balancer.models.PathMatchCondition oci.load_balancer.models.PathMatchType oci.load_balancer.models.PathRoute oci.load_balancer.models.PathRouteSet oci.load_balancer.models.PathRouteSetDetails + oci.load_balancer.models.RedirectRule + oci.load_balancer.models.RedirectUri oci.load_balancer.models.RemoveHttpRequestHeaderRule oci.load_balancer.models.RemoveHttpResponseHeaderRule oci.load_balancer.models.Rule diff --git a/docs/api/load_balancer/models/oci.load_balancer.models.PathMatchCondition.rst b/docs/api/load_balancer/models/oci.load_balancer.models.PathMatchCondition.rst new file mode 100644 index 0000000000..3a55236f44 --- /dev/null +++ b/docs/api/load_balancer/models/oci.load_balancer.models.PathMatchCondition.rst @@ -0,0 +1,11 @@ +PathMatchCondition +================== + +.. currentmodule:: oci.load_balancer.models + +.. autoclass:: PathMatchCondition + :show-inheritance: + :special-members: __init__ + :members: + :undoc-members: + :inherited-members: \ No newline at end of file diff --git a/docs/api/load_balancer/models/oci.load_balancer.models.RedirectRule.rst b/docs/api/load_balancer/models/oci.load_balancer.models.RedirectRule.rst new file mode 100644 index 0000000000..d78ff31df2 --- /dev/null +++ b/docs/api/load_balancer/models/oci.load_balancer.models.RedirectRule.rst @@ -0,0 +1,11 @@ +RedirectRule +============ + +.. currentmodule:: oci.load_balancer.models + +.. autoclass:: RedirectRule + :show-inheritance: + :special-members: __init__ + :members: + :undoc-members: + :inherited-members: \ No newline at end of file diff --git a/docs/api/load_balancer/models/oci.load_balancer.models.RedirectUri.rst b/docs/api/load_balancer/models/oci.load_balancer.models.RedirectUri.rst new file mode 100644 index 0000000000..246fd7b04c --- /dev/null +++ b/docs/api/load_balancer/models/oci.load_balancer.models.RedirectUri.rst @@ -0,0 +1,11 @@ +RedirectUri +=========== + +.. currentmodule:: oci.load_balancer.models + +.. autoclass:: RedirectUri + :show-inheritance: + :special-members: __init__ + :members: + :undoc-members: + :inherited-members: \ No newline at end of file diff --git a/src/oci/container_engine/container_engine_client.py b/src/oci/container_engine/container_engine_client.py index 11aefad6b2..858d7a8716 100644 --- a/src/oci/container_engine/container_engine_client.py +++ b/src/oci/container_engine/container_engine_client.py @@ -622,6 +622,9 @@ def get_cluster_options(self, cluster_option_id, **kwargs): :param str cluster_option_id: (required) The id of the option set to retrieve. Only \"all\" is supported. + :param str compartment_id: (optional) + The OCID of the compartment. + :param str opc_request_id: (optional) Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. @@ -643,6 +646,7 @@ def get_cluster_options(self, cluster_option_id, **kwargs): # Don't accept unknown kwargs expected_kwargs = [ "retry_strategy", + "compartment_id", "opc_request_id" ] extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs] @@ -660,6 +664,11 @@ def get_cluster_options(self, cluster_option_id, **kwargs): if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0): raise ValueError('Parameter {} cannot be None, whitespace or empty string'.format(k)) + query_params = { + "compartmentId": kwargs.get("compartment_id", missing) + } + query_params = {k: v for (k, v) in six.iteritems(query_params) if v is not missing and v is not None} + header_params = { "accept": "application/json", "content-type": "application/json", @@ -677,6 +686,7 @@ def get_cluster_options(self, cluster_option_id, **kwargs): resource_path=resource_path, method=method, path_params=path_params, + query_params=query_params, header_params=header_params, response_type="ClusterOptions") else: @@ -684,6 +694,7 @@ def get_cluster_options(self, cluster_option_id, **kwargs): resource_path=resource_path, method=method, path_params=path_params, + query_params=query_params, header_params=header_params, response_type="ClusterOptions") @@ -770,6 +781,9 @@ def get_node_pool_options(self, node_pool_option_id, **kwargs): :param str node_pool_option_id: (required) The id of the option set to retrieve. Use \"all\" get all options, or use a cluster ID to get options specific to the provided cluster. + :param str compartment_id: (optional) + The OCID of the compartment. + :param str opc_request_id: (optional) Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. @@ -791,6 +805,7 @@ def get_node_pool_options(self, node_pool_option_id, **kwargs): # Don't accept unknown kwargs expected_kwargs = [ "retry_strategy", + "compartment_id", "opc_request_id" ] extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs] @@ -808,6 +823,11 @@ def get_node_pool_options(self, node_pool_option_id, **kwargs): if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0): raise ValueError('Parameter {} cannot be None, whitespace or empty string'.format(k)) + query_params = { + "compartmentId": kwargs.get("compartment_id", missing) + } + query_params = {k: v for (k, v) in six.iteritems(query_params) if v is not missing and v is not None} + header_params = { "accept": "application/json", "content-type": "application/json", @@ -825,6 +845,7 @@ def get_node_pool_options(self, node_pool_option_id, **kwargs): resource_path=resource_path, method=method, path_params=path_params, + query_params=query_params, header_params=header_params, response_type="NodePoolOptions") else: @@ -832,6 +853,7 @@ def get_node_pool_options(self, node_pool_option_id, **kwargs): resource_path=resource_path, method=method, path_params=path_params, + query_params=query_params, header_params=header_params, response_type="NodePoolOptions") diff --git a/src/oci/container_engine/models/node_pool_options.py b/src/oci/container_engine/models/node_pool_options.py index e37414b5da..92ac74dcea 100644 --- a/src/oci/container_engine/models/node_pool_options.py +++ b/src/oci/container_engine/models/node_pool_options.py @@ -21,30 +21,30 @@ def __init__(self, **kwargs): The value to assign to the kubernetes_versions property of this NodePoolOptions. :type kubernetes_versions: list[str] - :param images: - The value to assign to the images property of this NodePoolOptions. - :type images: list[str] - :param shapes: The value to assign to the shapes property of this NodePoolOptions. :type shapes: list[str] + :param images: + The value to assign to the images property of this NodePoolOptions. + :type images: list[str] + """ self.swagger_types = { 'kubernetes_versions': 'list[str]', - 'images': 'list[str]', - 'shapes': 'list[str]' + 'shapes': 'list[str]', + 'images': 'list[str]' } self.attribute_map = { 'kubernetes_versions': 'kubernetesVersions', - 'images': 'images', - 'shapes': 'shapes' + 'shapes': 'shapes', + 'images': 'images' } self._kubernetes_versions = None - self._images = None self._shapes = None + self._images = None @property def kubernetes_versions(self): @@ -71,52 +71,52 @@ def kubernetes_versions(self, kubernetes_versions): self._kubernetes_versions = kubernetes_versions @property - def images(self): + def shapes(self): """ - Gets the images of this NodePoolOptions. - Available image names. + Gets the shapes of this NodePoolOptions. + Available shapes for nodes. - :return: The images of this NodePoolOptions. + :return: The shapes of this NodePoolOptions. :rtype: list[str] """ - return self._images + return self._shapes - @images.setter - def images(self, images): + @shapes.setter + def shapes(self, shapes): """ - Sets the images of this NodePoolOptions. - Available image names. + Sets the shapes of this NodePoolOptions. + Available shapes for nodes. - :param images: The images of this NodePoolOptions. + :param shapes: The shapes of this NodePoolOptions. :type: list[str] """ - self._images = images + self._shapes = shapes @property - def shapes(self): + def images(self): """ - Gets the shapes of this NodePoolOptions. - Available shapes for nodes. + Gets the images of this NodePoolOptions. + Available image names. - :return: The shapes of this NodePoolOptions. + :return: The images of this NodePoolOptions. :rtype: list[str] """ - return self._shapes + return self._images - @shapes.setter - def shapes(self, shapes): + @images.setter + def images(self, images): """ - Sets the shapes of this NodePoolOptions. - Available shapes for nodes. + Sets the images of this NodePoolOptions. + Available image names. - :param shapes: The shapes of this NodePoolOptions. + :param images: The images of this NodePoolOptions. :type: list[str] """ - self._shapes = shapes + self._images = images def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/core/models/boot_volume.py b/src/oci/core/models/boot_volume.py index 0fc5948973..5b377b81e2 100644 --- a/src/oci/core/models/boot_volume.py +++ b/src/oci/core/models/boot_volume.py @@ -88,6 +88,10 @@ def __init__(self, **kwargs): The value to assign to the is_hydrated property of this BootVolume. :type is_hydrated: bool + :param vpus_per_gb: + The value to assign to the vpus_per_gb property of this BootVolume. + :type vpus_per_gb: int + :param lifecycle_state: The value to assign to the lifecycle_state property of this BootVolume. Allowed values for this property are: "PROVISIONING", "RESTORING", "AVAILABLE", "TERMINATING", "TERMINATED", "FAULTY", 'UNKNOWN_ENUM_VALUE'. @@ -129,6 +133,7 @@ def __init__(self, **kwargs): 'id': 'str', 'image_id': 'str', 'is_hydrated': 'bool', + 'vpus_per_gb': 'int', 'lifecycle_state': 'str', 'size_in_gbs': 'int', 'size_in_mbs': 'int', @@ -148,6 +153,7 @@ def __init__(self, **kwargs): 'id': 'id', 'image_id': 'imageId', 'is_hydrated': 'isHydrated', + 'vpus_per_gb': 'vpusPerGB', 'lifecycle_state': 'lifecycleState', 'size_in_gbs': 'sizeInGBs', 'size_in_mbs': 'sizeInMBs', @@ -166,6 +172,7 @@ def __init__(self, **kwargs): self._id = None self._image_id = None self._is_hydrated = None + self._vpus_per_gb = None self._lifecycle_state = None self._size_in_gbs = None self._size_in_mbs = None @@ -418,6 +425,30 @@ def is_hydrated(self, is_hydrated): """ self._is_hydrated = is_hydrated + @property + def vpus_per_gb(self): + """ + Gets the vpus_per_gb of this BootVolume. + The number of Volume Performance Units that will be applied to this boot volume per GB. + + + :return: The vpus_per_gb of this BootVolume. + :rtype: int + """ + return self._vpus_per_gb + + @vpus_per_gb.setter + def vpus_per_gb(self, vpus_per_gb): + """ + Sets the vpus_per_gb of this BootVolume. + The number of Volume Performance Units that will be applied to this boot volume per GB. + + + :param vpus_per_gb: The vpus_per_gb of this BootVolume. + :type: int + """ + self._vpus_per_gb = vpus_per_gb + @property def lifecycle_state(self): """ diff --git a/src/oci/core/models/create_boot_volume_details.py b/src/oci/core/models/create_boot_volume_details.py index 862013ba86..6b9bce262d 100644 --- a/src/oci/core/models/create_boot_volume_details.py +++ b/src/oci/core/models/create_boot_volume_details.py @@ -49,6 +49,10 @@ def __init__(self, **kwargs): The value to assign to the size_in_gbs property of this CreateBootVolumeDetails. :type size_in_gbs: int + :param vpus_per_gb: + The value to assign to the vpus_per_gb property of this CreateBootVolumeDetails. + :type vpus_per_gb: int + :param source_details: The value to assign to the source_details property of this CreateBootVolumeDetails. :type source_details: BootVolumeSourceDetails @@ -63,6 +67,7 @@ def __init__(self, **kwargs): 'freeform_tags': 'dict(str, str)', 'kms_key_id': 'str', 'size_in_gbs': 'int', + 'vpus_per_gb': 'int', 'source_details': 'BootVolumeSourceDetails' } @@ -75,6 +80,7 @@ def __init__(self, **kwargs): 'freeform_tags': 'freeformTags', 'kms_key_id': 'kmsKeyId', 'size_in_gbs': 'sizeInGBs', + 'vpus_per_gb': 'vpusPerGB', 'source_details': 'sourceDetails' } @@ -86,6 +92,7 @@ def __init__(self, **kwargs): self._freeform_tags = None self._kms_key_id = None self._size_in_gbs = None + self._vpus_per_gb = None self._source_details = None @property @@ -308,6 +315,30 @@ def size_in_gbs(self, size_in_gbs): """ self._size_in_gbs = size_in_gbs + @property + def vpus_per_gb(self): + """ + Gets the vpus_per_gb of this CreateBootVolumeDetails. + The number of Volume Performance Units that will be applied to this boot volume per GB. + + + :return: The vpus_per_gb of this CreateBootVolumeDetails. + :rtype: int + """ + return self._vpus_per_gb + + @vpus_per_gb.setter + def vpus_per_gb(self, vpus_per_gb): + """ + Sets the vpus_per_gb of this CreateBootVolumeDetails. + The number of Volume Performance Units that will be applied to this boot volume per GB. + + + :param vpus_per_gb: The vpus_per_gb of this CreateBootVolumeDetails. + :type: int + """ + self._vpus_per_gb = vpus_per_gb + @property def source_details(self): """ diff --git a/src/oci/core/models/create_volume_details.py b/src/oci/core/models/create_volume_details.py index 2d37721208..7c164aed34 100644 --- a/src/oci/core/models/create_volume_details.py +++ b/src/oci/core/models/create_volume_details.py @@ -45,6 +45,10 @@ def __init__(self, **kwargs): The value to assign to the kms_key_id property of this CreateVolumeDetails. :type kms_key_id: str + :param vpus_per_gb: + The value to assign to the vpus_per_gb property of this CreateVolumeDetails. + :type vpus_per_gb: int + :param size_in_gbs: The value to assign to the size_in_gbs property of this CreateVolumeDetails. :type size_in_gbs: int @@ -70,6 +74,7 @@ def __init__(self, **kwargs): 'display_name': 'str', 'freeform_tags': 'dict(str, str)', 'kms_key_id': 'str', + 'vpus_per_gb': 'int', 'size_in_gbs': 'int', 'size_in_mbs': 'int', 'source_details': 'VolumeSourceDetails', @@ -84,6 +89,7 @@ def __init__(self, **kwargs): 'display_name': 'displayName', 'freeform_tags': 'freeformTags', 'kms_key_id': 'kmsKeyId', + 'vpus_per_gb': 'vpusPerGB', 'size_in_gbs': 'sizeInGBs', 'size_in_mbs': 'sizeInMBs', 'source_details': 'sourceDetails', @@ -97,6 +103,7 @@ def __init__(self, **kwargs): self._display_name = None self._freeform_tags = None self._kms_key_id = None + self._vpus_per_gb = None self._size_in_gbs = None self._size_in_mbs = None self._source_details = None @@ -298,6 +305,30 @@ def kms_key_id(self, kms_key_id): """ self._kms_key_id = kms_key_id + @property + def vpus_per_gb(self): + """ + Gets the vpus_per_gb of this CreateVolumeDetails. + The number of Volume Performance Units that will be applied to this volume per GB. + + + :return: The vpus_per_gb of this CreateVolumeDetails. + :rtype: int + """ + return self._vpus_per_gb + + @vpus_per_gb.setter + def vpus_per_gb(self, vpus_per_gb): + """ + Sets the vpus_per_gb of this CreateVolumeDetails. + The number of Volume Performance Units that will be applied to this volume per GB. + + + :param vpus_per_gb: The vpus_per_gb of this CreateVolumeDetails. + :type: int + """ + self._vpus_per_gb = vpus_per_gb + @property def size_in_gbs(self): """ diff --git a/src/oci/core/models/update_boot_volume_details.py b/src/oci/core/models/update_boot_volume_details.py index 20eeb2d075..dcbd1e32d9 100644 --- a/src/oci/core/models/update_boot_volume_details.py +++ b/src/oci/core/models/update_boot_volume_details.py @@ -33,25 +33,32 @@ def __init__(self, **kwargs): The value to assign to the size_in_gbs property of this UpdateBootVolumeDetails. :type size_in_gbs: int + :param vpus_per_gb: + The value to assign to the vpus_per_gb property of this UpdateBootVolumeDetails. + :type vpus_per_gb: int + """ self.swagger_types = { 'defined_tags': 'dict(str, dict(str, object))', 'display_name': 'str', 'freeform_tags': 'dict(str, str)', - 'size_in_gbs': 'int' + 'size_in_gbs': 'int', + 'vpus_per_gb': 'int' } self.attribute_map = { 'defined_tags': 'definedTags', 'display_name': 'displayName', 'freeform_tags': 'freeformTags', - 'size_in_gbs': 'sizeInGBs' + 'size_in_gbs': 'sizeInGBs', + 'vpus_per_gb': 'vpusPerGB' } self._defined_tags = None self._display_name = None self._freeform_tags = None self._size_in_gbs = None + self._vpus_per_gb = None @property def defined_tags(self): @@ -171,6 +178,30 @@ def size_in_gbs(self, size_in_gbs): """ self._size_in_gbs = size_in_gbs + @property + def vpus_per_gb(self): + """ + Gets the vpus_per_gb of this UpdateBootVolumeDetails. + The number of Volume Performance Units that will be applied to this boot volume per GB. + + + :return: The vpus_per_gb of this UpdateBootVolumeDetails. + :rtype: int + """ + return self._vpus_per_gb + + @vpus_per_gb.setter + def vpus_per_gb(self, vpus_per_gb): + """ + Sets the vpus_per_gb of this UpdateBootVolumeDetails. + The number of Volume Performance Units that will be applied to this boot volume per GB. + + + :param vpus_per_gb: The vpus_per_gb of this UpdateBootVolumeDetails. + :type: int + """ + self._vpus_per_gb = vpus_per_gb + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/core/models/update_volume_details.py b/src/oci/core/models/update_volume_details.py index 55a6464fe4..3d6e757976 100644 --- a/src/oci/core/models/update_volume_details.py +++ b/src/oci/core/models/update_volume_details.py @@ -29,6 +29,10 @@ def __init__(self, **kwargs): The value to assign to the freeform_tags property of this UpdateVolumeDetails. :type freeform_tags: dict(str, str) + :param vpus_per_gb: + The value to assign to the vpus_per_gb property of this UpdateVolumeDetails. + :type vpus_per_gb: int + :param size_in_gbs: The value to assign to the size_in_gbs property of this UpdateVolumeDetails. :type size_in_gbs: int @@ -38,6 +42,7 @@ def __init__(self, **kwargs): 'defined_tags': 'dict(str, dict(str, object))', 'display_name': 'str', 'freeform_tags': 'dict(str, str)', + 'vpus_per_gb': 'int', 'size_in_gbs': 'int' } @@ -45,12 +50,14 @@ def __init__(self, **kwargs): 'defined_tags': 'definedTags', 'display_name': 'displayName', 'freeform_tags': 'freeformTags', + 'vpus_per_gb': 'vpusPerGB', 'size_in_gbs': 'sizeInGBs' } self._defined_tags = None self._display_name = None self._freeform_tags = None + self._vpus_per_gb = None self._size_in_gbs = None @property @@ -147,6 +154,30 @@ def freeform_tags(self, freeform_tags): """ self._freeform_tags = freeform_tags + @property + def vpus_per_gb(self): + """ + Gets the vpus_per_gb of this UpdateVolumeDetails. + The number of Volume Performance Units that will be applied to this volume per GB. + + + :return: The vpus_per_gb of this UpdateVolumeDetails. + :rtype: int + """ + return self._vpus_per_gb + + @vpus_per_gb.setter + def vpus_per_gb(self, vpus_per_gb): + """ + Sets the vpus_per_gb of this UpdateVolumeDetails. + The number of Volume Performance Units that will be applied to this volume per GB. + + + :param vpus_per_gb: The vpus_per_gb of this UpdateVolumeDetails. + :type: int + """ + self._vpus_per_gb = vpus_per_gb + @property def size_in_gbs(self): """ diff --git a/src/oci/core/models/volume.py b/src/oci/core/models/volume.py index 0da1ea9c94..3595532ad4 100644 --- a/src/oci/core/models/volume.py +++ b/src/oci/core/models/volume.py @@ -95,6 +95,10 @@ def __init__(self, **kwargs): Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type lifecycle_state: str + :param vpus_per_gb: + The value to assign to the vpus_per_gb property of this Volume. + :type vpus_per_gb: int + :param size_in_gbs: The value to assign to the size_in_gbs property of this Volume. :type size_in_gbs: int @@ -127,6 +131,7 @@ def __init__(self, **kwargs): 'is_hydrated': 'bool', 'kms_key_id': 'str', 'lifecycle_state': 'str', + 'vpus_per_gb': 'int', 'size_in_gbs': 'int', 'size_in_mbs': 'int', 'source_details': 'VolumeSourceDetails', @@ -145,6 +150,7 @@ def __init__(self, **kwargs): 'is_hydrated': 'isHydrated', 'kms_key_id': 'kmsKeyId', 'lifecycle_state': 'lifecycleState', + 'vpus_per_gb': 'vpusPerGB', 'size_in_gbs': 'sizeInGBs', 'size_in_mbs': 'sizeInMBs', 'source_details': 'sourceDetails', @@ -162,6 +168,7 @@ def __init__(self, **kwargs): self._is_hydrated = None self._kms_key_id = None self._lifecycle_state = None + self._vpus_per_gb = None self._size_in_gbs = None self._size_in_mbs = None self._source_details = None @@ -442,6 +449,30 @@ def lifecycle_state(self, lifecycle_state): lifecycle_state = 'UNKNOWN_ENUM_VALUE' self._lifecycle_state = lifecycle_state + @property + def vpus_per_gb(self): + """ + Gets the vpus_per_gb of this Volume. + The number of Volume Performance Units that will be applied to this volume per GB. + + + :return: The vpus_per_gb of this Volume. + :rtype: int + """ + return self._vpus_per_gb + + @vpus_per_gb.setter + def vpus_per_gb(self, vpus_per_gb): + """ + Sets the vpus_per_gb of this Volume. + The number of Volume Performance Units that will be applied to this volume per GB. + + + :param vpus_per_gb: The vpus_per_gb of this Volume. + :type: int + """ + self._vpus_per_gb = vpus_per_gb + @property def size_in_gbs(self): """ diff --git a/src/oci/database/database_client.py b/src/oci/database/database_client.py index 5995bcbdd0..2e0ddcc663 100644 --- a/src/oci/database/database_client.py +++ b/src/oci/database/database_client.py @@ -2693,6 +2693,79 @@ def delete_vm_cluster_network(self, exadata_infrastructure_id, vm_cluster_networ path_params=path_params, header_params=header_params) + def deregister_autonomous_database_data_safe(self, autonomous_database_id, **kwargs): + """ + Asynchronously deregisters Data Safe for this Autonomous Database. + Asynchronously deregisters Data Safe for this Autonomous Database. + + + :param str autonomous_database_id: (required) + The database `OCID`__. + + __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm + + :param str opc_request_id: (optional) + Unique identifier for the request. + + :param obj retry_strategy: (optional) + A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level. + + This should be one of the strategies available in the :py:mod:`~oci.retry` module. A convenience :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` + is also available. The specifics of the default retry strategy are described `here `__. + + To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`. + + :return: A :class:`~oci.response.Response` object with data of type None + :rtype: :class:`~oci.response.Response` + """ + resource_path = "/autonomousDatabases/{autonomousDatabaseId}/actions/deregisterDataSafe" + method = "POST" + + # Don't accept unknown kwargs + expected_kwargs = [ + "retry_strategy", + "opc_request_id" + ] + extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs] + if extra_kwargs: + raise ValueError( + "deregister_autonomous_database_data_safe got unknown kwargs: {!r}".format(extra_kwargs)) + + path_params = { + "autonomousDatabaseId": autonomous_database_id + } + + path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing} + + for (k, v) in six.iteritems(path_params): + if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0): + raise ValueError('Parameter {} cannot be None, whitespace or empty string'.format(k)) + + header_params = { + "accept": "application/json", + "content-type": "application/json", + "opc-request-id": kwargs.get("opc_request_id", missing) + } + header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None} + + retry_strategy = self.retry_strategy + if kwargs.get('retry_strategy'): + retry_strategy = kwargs.get('retry_strategy') + + if retry_strategy: + return retry_strategy.make_retrying_call( + self.base_client.call_api, + resource_path=resource_path, + method=method, + path_params=path_params, + header_params=header_params) + else: + return self.base_client.call_api( + resource_path=resource_path, + method=method, + path_params=path_params, + header_params=header_params) + def download_exadata_infrastructure_config_file(self, exadata_infrastructure_id, **kwargs): """ Downloads the configuration file for the specified Exadata infrastructure. @@ -8075,6 +8148,79 @@ def list_vm_clusters(self, compartment_id, **kwargs): header_params=header_params, response_type="list[VmClusterSummary]") + def register_autonomous_database_data_safe(self, autonomous_database_id, **kwargs): + """ + Asynchronously registers this Autonomous Database with Data Safe. + Asynchronously registers Data Safe with this Autonomous Database. + + + :param str autonomous_database_id: (required) + The database `OCID`__. + + __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm + + :param str opc_request_id: (optional) + Unique identifier for the request. + + :param obj retry_strategy: (optional) + A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level. + + This should be one of the strategies available in the :py:mod:`~oci.retry` module. A convenience :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` + is also available. The specifics of the default retry strategy are described `here `__. + + To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`. + + :return: A :class:`~oci.response.Response` object with data of type None + :rtype: :class:`~oci.response.Response` + """ + resource_path = "/autonomousDatabases/{autonomousDatabaseId}/actions/registerDataSafe" + method = "POST" + + # Don't accept unknown kwargs + expected_kwargs = [ + "retry_strategy", + "opc_request_id" + ] + extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs] + if extra_kwargs: + raise ValueError( + "register_autonomous_database_data_safe got unknown kwargs: {!r}".format(extra_kwargs)) + + path_params = { + "autonomousDatabaseId": autonomous_database_id + } + + path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing} + + for (k, v) in six.iteritems(path_params): + if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0): + raise ValueError('Parameter {} cannot be None, whitespace or empty string'.format(k)) + + header_params = { + "accept": "application/json", + "content-type": "application/json", + "opc-request-id": kwargs.get("opc_request_id", missing) + } + header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None} + + retry_strategy = self.retry_strategy + if kwargs.get('retry_strategy'): + retry_strategy = kwargs.get('retry_strategy') + + if retry_strategy: + return retry_strategy.make_retrying_call( + self.base_client.call_api, + resource_path=resource_path, + method=method, + path_params=path_params, + header_params=header_params) + else: + return self.base_client.call_api( + resource_path=resource_path, + method=method, + path_params=path_params, + header_params=header_params) + def reinstate_data_guard_association(self, database_id, data_guard_association_id, reinstate_data_guard_association_details, **kwargs): """ Reinstates a database to a Data Guard association standby role. diff --git a/src/oci/database/database_client_composite_operations.py b/src/oci/database/database_client_composite_operations.py index 94b27eacc7..0fea075c16 100644 --- a/src/oci/database/database_client_composite_operations.py +++ b/src/oci/database/database_client_composite_operations.py @@ -1296,6 +1296,43 @@ def delete_vm_cluster_and_wait_for_state(self, vm_cluster_id, wait_for_states=[] except Exception as e: raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) + def deregister_autonomous_database_data_safe_and_wait_for_work_request(self, autonomous_database_id, work_request_states=[], operation_kwargs={}, waiter_kwargs={}): + """ + Calls :py:func:`~oci.database.DatabaseClient.deregister_autonomous_database_data_safe` and waits for the oci.work_requests.models.WorkRequest + to enter the given state(s). + + :param str autonomous_database_id: (required) + The database `OCID`__. + + __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm + + :param list[str] work_request_states: (optional) + An array of work requests states to wait on. These should be valid values for :py:attr:`~oci.work_requests.models.WorkRequest.status` + Default values are termination states: [STATUS_SUCCEEDED, STATUS_FAILED, STATUS_CANCELED] + + :param dict operation_kwargs: + A dictionary of keyword arguments to pass to :py:func:`~oci.database.DatabaseClient.deregister_autonomous_database_data_safe` + + :param dict waiter_kwargs: + A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds`` + as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait + """ + operation_result = self.client.deregister_autonomous_database_data_safe(autonomous_database_id, **operation_kwargs) + work_request_states = work_request_states if work_request_states else oci.waiter._WORK_REQUEST_TERMINATION_STATES + lowered_work_request_states = [w.lower() for w in work_request_states] + work_request_id = operation_result.headers['opc-work-request-id'] + + try: + waiter_result = oci.wait_until( + self._work_request_client, + self._work_request_client.get_work_request(work_request_id), + evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_work_request_states, + **waiter_kwargs + ) + return waiter_result + except Exception as e: + raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) + def failover_data_guard_association_and_wait_for_state(self, database_id, data_guard_association_id, failover_data_guard_association_details, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}): """ Calls :py:func:`~oci.database.DatabaseClient.failover_data_guard_association` and waits for the :py:class:`~oci.database.models.DataGuardAssociation` acted upon @@ -1455,6 +1492,43 @@ def launch_db_system_and_wait_for_state(self, launch_db_system_details, wait_for except Exception as e: raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) + def register_autonomous_database_data_safe_and_wait_for_work_request(self, autonomous_database_id, work_request_states=[], operation_kwargs={}, waiter_kwargs={}): + """ + Calls :py:func:`~oci.database.DatabaseClient.register_autonomous_database_data_safe` and waits for the oci.work_requests.models.WorkRequest + to enter the given state(s). + + :param str autonomous_database_id: (required) + The database `OCID`__. + + __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm + + :param list[str] work_request_states: (optional) + An array of work requests states to wait on. These should be valid values for :py:attr:`~oci.work_requests.models.WorkRequest.status` + Default values are termination states: [STATUS_SUCCEEDED, STATUS_FAILED, STATUS_CANCELED] + + :param dict operation_kwargs: + A dictionary of keyword arguments to pass to :py:func:`~oci.database.DatabaseClient.register_autonomous_database_data_safe` + + :param dict waiter_kwargs: + A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds`` + as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait + """ + operation_result = self.client.register_autonomous_database_data_safe(autonomous_database_id, **operation_kwargs) + work_request_states = work_request_states if work_request_states else oci.waiter._WORK_REQUEST_TERMINATION_STATES + lowered_work_request_states = [w.lower() for w in work_request_states] + work_request_id = operation_result.headers['opc-work-request-id'] + + try: + waiter_result = oci.wait_until( + self._work_request_client, + self._work_request_client.get_work_request(work_request_id), + evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_work_request_states, + **waiter_kwargs + ) + return waiter_result + except Exception as e: + raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) + def reinstate_data_guard_association_and_wait_for_state(self, database_id, data_guard_association_id, reinstate_data_guard_association_details, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}): """ Calls :py:func:`~oci.database.DatabaseClient.reinstate_data_guard_association` and waits for the :py:class:`~oci.database.models.DataGuardAssociation` acted upon diff --git a/src/oci/database/models/autonomous_database.py b/src/oci/database/models/autonomous_database.py index f36ad28724..a536832969 100644 --- a/src/oci/database/models/autonomous_database.py +++ b/src/oci/database/models/autonomous_database.py @@ -88,6 +88,26 @@ class AutonomousDatabase(object): #: This constant has a value of "DW" DB_WORKLOAD_DW = "DW" + #: A constant which can be used with the data_safe_status property of a AutonomousDatabase. + #: This constant has a value of "REGISTERING" + DATA_SAFE_STATUS_REGISTERING = "REGISTERING" + + #: A constant which can be used with the data_safe_status property of a AutonomousDatabase. + #: This constant has a value of "REGISTERED" + DATA_SAFE_STATUS_REGISTERED = "REGISTERED" + + #: A constant which can be used with the data_safe_status property of a AutonomousDatabase. + #: This constant has a value of "DEREGISTERING" + DATA_SAFE_STATUS_DEREGISTERING = "DEREGISTERING" + + #: A constant which can be used with the data_safe_status property of a AutonomousDatabase. + #: This constant has a value of "NOT_REGISTERED" + DATA_SAFE_STATUS_NOT_REGISTERED = "NOT_REGISTERED" + + #: A constant which can be used with the data_safe_status property of a AutonomousDatabase. + #: This constant has a value of "FAILED" + DATA_SAFE_STATUS_FAILED = "FAILED" + def __init__(self, **kwargs): """ Initializes a new AutonomousDatabase object with values from keyword arguments. @@ -207,6 +227,12 @@ def __init__(self, **kwargs): The value to assign to the is_auto_scaling_enabled property of this AutonomousDatabase. :type is_auto_scaling_enabled: bool + :param data_safe_status: + The value to assign to the data_safe_status property of this AutonomousDatabase. + Allowed values for this property are: "REGISTERING", "REGISTERED", "DEREGISTERING", "NOT_REGISTERED", "FAILED", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + :type data_safe_status: str + """ self.swagger_types = { 'id': 'str', @@ -235,7 +261,8 @@ def __init__(self, **kwargs): 'is_preview': 'bool', 'db_workload': 'str', 'whitelisted_ips': 'list[str]', - 'is_auto_scaling_enabled': 'bool' + 'is_auto_scaling_enabled': 'bool', + 'data_safe_status': 'str' } self.attribute_map = { @@ -265,7 +292,8 @@ def __init__(self, **kwargs): 'is_preview': 'isPreview', 'db_workload': 'dbWorkload', 'whitelisted_ips': 'whitelistedIps', - 'is_auto_scaling_enabled': 'isAutoScalingEnabled' + 'is_auto_scaling_enabled': 'isAutoScalingEnabled', + 'data_safe_status': 'dataSafeStatus' } self._id = None @@ -295,6 +323,7 @@ def __init__(self, **kwargs): self._db_workload = None self._whitelisted_ips = None self._is_auto_scaling_enabled = None + self._data_safe_status = None @property def id(self): @@ -1010,6 +1039,36 @@ def is_auto_scaling_enabled(self, is_auto_scaling_enabled): """ self._is_auto_scaling_enabled = is_auto_scaling_enabled + @property + def data_safe_status(self): + """ + Gets the data_safe_status of this AutonomousDatabase. + Status of the Data Safe registration for this Autonomous Database. + + Allowed values for this property are: "REGISTERING", "REGISTERED", "DEREGISTERING", "NOT_REGISTERED", "FAILED", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + + + :return: The data_safe_status of this AutonomousDatabase. + :rtype: str + """ + return self._data_safe_status + + @data_safe_status.setter + def data_safe_status(self, data_safe_status): + """ + Sets the data_safe_status of this AutonomousDatabase. + Status of the Data Safe registration for this Autonomous Database. + + + :param data_safe_status: The data_safe_status of this AutonomousDatabase. + :type: str + """ + allowed_values = ["REGISTERING", "REGISTERED", "DEREGISTERING", "NOT_REGISTERED", "FAILED"] + if not value_allowed_none_or_none_sentinel(data_safe_status, allowed_values): + data_safe_status = 'UNKNOWN_ENUM_VALUE' + self._data_safe_status = data_safe_status + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/database/models/autonomous_database_connection_urls.py b/src/oci/database/models/autonomous_database_connection_urls.py index 8c0d9f8915..20f8e37c3c 100644 --- a/src/oci/database/models/autonomous_database_connection_urls.py +++ b/src/oci/database/models/autonomous_database_connection_urls.py @@ -29,19 +29,26 @@ def __init__(self, **kwargs): The value to assign to the apex_url property of this AutonomousDatabaseConnectionUrls. :type apex_url: str + :param machine_learning_user_management_url: + The value to assign to the machine_learning_user_management_url property of this AutonomousDatabaseConnectionUrls. + :type machine_learning_user_management_url: str + """ self.swagger_types = { 'sql_dev_web_url': 'str', - 'apex_url': 'str' + 'apex_url': 'str', + 'machine_learning_user_management_url': 'str' } self.attribute_map = { 'sql_dev_web_url': 'sqlDevWebUrl', - 'apex_url': 'apexUrl' + 'apex_url': 'apexUrl', + 'machine_learning_user_management_url': 'machineLearningUserManagementUrl' } self._sql_dev_web_url = None self._apex_url = None + self._machine_learning_user_management_url = None @property def sql_dev_web_url(self): @@ -91,6 +98,30 @@ def apex_url(self, apex_url): """ self._apex_url = apex_url + @property + def machine_learning_user_management_url(self): + """ + Gets the machine_learning_user_management_url of this AutonomousDatabaseConnectionUrls. + Oracle Machine Learning User Management URL. + + + :return: The machine_learning_user_management_url of this AutonomousDatabaseConnectionUrls. + :rtype: str + """ + return self._machine_learning_user_management_url + + @machine_learning_user_management_url.setter + def machine_learning_user_management_url(self, machine_learning_user_management_url): + """ + Sets the machine_learning_user_management_url of this AutonomousDatabaseConnectionUrls. + Oracle Machine Learning User Management URL. + + + :param machine_learning_user_management_url: The machine_learning_user_management_url of this AutonomousDatabaseConnectionUrls. + :type: str + """ + self._machine_learning_user_management_url = machine_learning_user_management_url + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/database/models/autonomous_database_summary.py b/src/oci/database/models/autonomous_database_summary.py index 6400ceec5e..1ca91497c7 100644 --- a/src/oci/database/models/autonomous_database_summary.py +++ b/src/oci/database/models/autonomous_database_summary.py @@ -90,6 +90,26 @@ class AutonomousDatabaseSummary(object): #: This constant has a value of "DW" DB_WORKLOAD_DW = "DW" + #: A constant which can be used with the data_safe_status property of a AutonomousDatabaseSummary. + #: This constant has a value of "REGISTERING" + DATA_SAFE_STATUS_REGISTERING = "REGISTERING" + + #: A constant which can be used with the data_safe_status property of a AutonomousDatabaseSummary. + #: This constant has a value of "REGISTERED" + DATA_SAFE_STATUS_REGISTERED = "REGISTERED" + + #: A constant which can be used with the data_safe_status property of a AutonomousDatabaseSummary. + #: This constant has a value of "DEREGISTERING" + DATA_SAFE_STATUS_DEREGISTERING = "DEREGISTERING" + + #: A constant which can be used with the data_safe_status property of a AutonomousDatabaseSummary. + #: This constant has a value of "NOT_REGISTERED" + DATA_SAFE_STATUS_NOT_REGISTERED = "NOT_REGISTERED" + + #: A constant which can be used with the data_safe_status property of a AutonomousDatabaseSummary. + #: This constant has a value of "FAILED" + DATA_SAFE_STATUS_FAILED = "FAILED" + def __init__(self, **kwargs): """ Initializes a new AutonomousDatabaseSummary object with values from keyword arguments. @@ -209,6 +229,12 @@ def __init__(self, **kwargs): The value to assign to the is_auto_scaling_enabled property of this AutonomousDatabaseSummary. :type is_auto_scaling_enabled: bool + :param data_safe_status: + The value to assign to the data_safe_status property of this AutonomousDatabaseSummary. + Allowed values for this property are: "REGISTERING", "REGISTERED", "DEREGISTERING", "NOT_REGISTERED", "FAILED", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + :type data_safe_status: str + """ self.swagger_types = { 'id': 'str', @@ -237,7 +263,8 @@ def __init__(self, **kwargs): 'is_preview': 'bool', 'db_workload': 'str', 'whitelisted_ips': 'list[str]', - 'is_auto_scaling_enabled': 'bool' + 'is_auto_scaling_enabled': 'bool', + 'data_safe_status': 'str' } self.attribute_map = { @@ -267,7 +294,8 @@ def __init__(self, **kwargs): 'is_preview': 'isPreview', 'db_workload': 'dbWorkload', 'whitelisted_ips': 'whitelistedIps', - 'is_auto_scaling_enabled': 'isAutoScalingEnabled' + 'is_auto_scaling_enabled': 'isAutoScalingEnabled', + 'data_safe_status': 'dataSafeStatus' } self._id = None @@ -297,6 +325,7 @@ def __init__(self, **kwargs): self._db_workload = None self._whitelisted_ips = None self._is_auto_scaling_enabled = None + self._data_safe_status = None @property def id(self): @@ -1012,6 +1041,36 @@ def is_auto_scaling_enabled(self, is_auto_scaling_enabled): """ self._is_auto_scaling_enabled = is_auto_scaling_enabled + @property + def data_safe_status(self): + """ + Gets the data_safe_status of this AutonomousDatabaseSummary. + Status of the Data Safe registration for this Autonomous Database. + + Allowed values for this property are: "REGISTERING", "REGISTERED", "DEREGISTERING", "NOT_REGISTERED", "FAILED", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + + + :return: The data_safe_status of this AutonomousDatabaseSummary. + :rtype: str + """ + return self._data_safe_status + + @data_safe_status.setter + def data_safe_status(self, data_safe_status): + """ + Sets the data_safe_status of this AutonomousDatabaseSummary. + Status of the Data Safe registration for this Autonomous Database. + + + :param data_safe_status: The data_safe_status of this AutonomousDatabaseSummary. + :type: str + """ + allowed_values = ["REGISTERING", "REGISTERED", "DEREGISTERING", "NOT_REGISTERED", "FAILED"] + if not value_allowed_none_or_none_sentinel(data_safe_status, allowed_values): + data_safe_status = 'UNKNOWN_ENUM_VALUE' + self._data_safe_status = data_safe_status + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/load_balancer/models/__init__.py b/src/oci/load_balancer/models/__init__.py index ca1248de15..bffd1245da 100644 --- a/src/oci/load_balancer/models/__init__.py +++ b/src/oci/load_balancer/models/__init__.py @@ -43,10 +43,13 @@ from .load_balancer_policy import LoadBalancerPolicy from .load_balancer_protocol import LoadBalancerProtocol from .load_balancer_shape import LoadBalancerShape +from .path_match_condition import PathMatchCondition from .path_match_type import PathMatchType from .path_route import PathRoute from .path_route_set import PathRouteSet from .path_route_set_details import PathRouteSetDetails +from .redirect_rule import RedirectRule +from .redirect_uri import RedirectUri from .remove_http_request_header_rule import RemoveHttpRequestHeaderRule from .remove_http_response_header_rule import RemoveHttpResponseHeaderRule from .rule import Rule @@ -113,10 +116,13 @@ "LoadBalancerPolicy": LoadBalancerPolicy, "LoadBalancerProtocol": LoadBalancerProtocol, "LoadBalancerShape": LoadBalancerShape, + "PathMatchCondition": PathMatchCondition, "PathMatchType": PathMatchType, "PathRoute": PathRoute, "PathRouteSet": PathRouteSet, "PathRouteSetDetails": PathRouteSetDetails, + "RedirectRule": RedirectRule, + "RedirectUri": RedirectUri, "RemoveHttpRequestHeaderRule": RemoveHttpRequestHeaderRule, "RemoveHttpResponseHeaderRule": RemoveHttpResponseHeaderRule, "Rule": Rule, diff --git a/src/oci/load_balancer/models/add_http_request_header_rule.py b/src/oci/load_balancer/models/add_http_request_header_rule.py index da155bbd90..714cc8c754 100644 --- a/src/oci/load_balancer/models/add_http_request_header_rule.py +++ b/src/oci/load_balancer/models/add_http_request_header_rule.py @@ -30,7 +30,7 @@ def __init__(self, **kwargs): :param action: The value to assign to the action property of this AddHttpRequestHeaderRule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS" + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT" :type action: str :param header: diff --git a/src/oci/load_balancer/models/add_http_response_header_rule.py b/src/oci/load_balancer/models/add_http_response_header_rule.py index 550b65bdc8..82aacf3ea3 100644 --- a/src/oci/load_balancer/models/add_http_response_header_rule.py +++ b/src/oci/load_balancer/models/add_http_response_header_rule.py @@ -30,7 +30,7 @@ def __init__(self, **kwargs): :param action: The value to assign to the action property of this AddHttpResponseHeaderRule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS" + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT" :type action: str :param header: diff --git a/src/oci/load_balancer/models/allow_rule.py b/src/oci/load_balancer/models/allow_rule.py index 62d23c6f41..9b16c6414c 100644 --- a/src/oci/load_balancer/models/allow_rule.py +++ b/src/oci/load_balancer/models/allow_rule.py @@ -30,7 +30,7 @@ def __init__(self, **kwargs): :param action: The value to assign to the action property of this AllowRule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS" + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT" :type action: str :param conditions: diff --git a/src/oci/load_balancer/models/control_access_using_http_methods_rule.py b/src/oci/load_balancer/models/control_access_using_http_methods_rule.py index 58b42c85b2..a85b1ceeb0 100644 --- a/src/oci/load_balancer/models/control_access_using_http_methods_rule.py +++ b/src/oci/load_balancer/models/control_access_using_http_methods_rule.py @@ -29,7 +29,7 @@ def __init__(self, **kwargs): :param action: The value to assign to the action property of this ControlAccessUsingHttpMethodsRule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS" + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT" :type action: str :param allowed_methods: diff --git a/src/oci/load_balancer/models/extend_http_request_header_value_rule.py b/src/oci/load_balancer/models/extend_http_request_header_value_rule.py index 610a98b2dc..bd4ca3b19c 100644 --- a/src/oci/load_balancer/models/extend_http_request_header_value_rule.py +++ b/src/oci/load_balancer/models/extend_http_request_header_value_rule.py @@ -33,7 +33,7 @@ def __init__(self, **kwargs): :param action: The value to assign to the action property of this ExtendHttpRequestHeaderValueRule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS" + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT" :type action: str :param header: diff --git a/src/oci/load_balancer/models/extend_http_response_header_value_rule.py b/src/oci/load_balancer/models/extend_http_response_header_value_rule.py index 9a65801d7e..3c7b7d54e2 100644 --- a/src/oci/load_balancer/models/extend_http_response_header_value_rule.py +++ b/src/oci/load_balancer/models/extend_http_response_header_value_rule.py @@ -33,7 +33,7 @@ def __init__(self, **kwargs): :param action: The value to assign to the action property of this ExtendHttpResponseHeaderValueRule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS" + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT" :type action: str :param header: diff --git a/src/oci/load_balancer/models/path_match_condition.py b/src/oci/load_balancer/models/path_match_condition.py new file mode 100644 index 0000000000..f05197f6f5 --- /dev/null +++ b/src/oci/load_balancer/models/path_match_condition.py @@ -0,0 +1,163 @@ +# coding: utf-8 +# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. + +from .rule_condition import RuleCondition +from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401 +from oci.decorators import init_model_state_from_kwargs + + +@init_model_state_from_kwargs +class PathMatchCondition(RuleCondition): + """ + The path string and match condition to apply when evaluating an incoming URI for redirection. + """ + + #: A constant which can be used with the operator property of a PathMatchCondition. + #: This constant has a value of "EXACT_MATCH" + OPERATOR_EXACT_MATCH = "EXACT_MATCH" + + #: A constant which can be used with the operator property of a PathMatchCondition. + #: This constant has a value of "FORCE_LONGEST_PREFIX_MATCH" + OPERATOR_FORCE_LONGEST_PREFIX_MATCH = "FORCE_LONGEST_PREFIX_MATCH" + + #: A constant which can be used with the operator property of a PathMatchCondition. + #: This constant has a value of "PREFIX_MATCH" + OPERATOR_PREFIX_MATCH = "PREFIX_MATCH" + + #: A constant which can be used with the operator property of a PathMatchCondition. + #: This constant has a value of "SUFFIX_MATCH" + OPERATOR_SUFFIX_MATCH = "SUFFIX_MATCH" + + def __init__(self, **kwargs): + """ + Initializes a new PathMatchCondition object with values from keyword arguments. The default value of the :py:attr:`~oci.load_balancer.models.PathMatchCondition.attribute_name` attribute + of this class is ``PATH`` and it should not be changed. + The following keyword arguments are supported (corresponding to the getters/setters of this class): + + :param attribute_name: + The value to assign to the attribute_name property of this PathMatchCondition. + Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS", "PATH", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + :type attribute_name: str + + :param attribute_value: + The value to assign to the attribute_value property of this PathMatchCondition. + :type attribute_value: str + + :param operator: + The value to assign to the operator property of this PathMatchCondition. + Allowed values for this property are: "EXACT_MATCH", "FORCE_LONGEST_PREFIX_MATCH", "PREFIX_MATCH", "SUFFIX_MATCH", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + :type operator: str + + """ + self.swagger_types = { + 'attribute_name': 'str', + 'attribute_value': 'str', + 'operator': 'str' + } + + self.attribute_map = { + 'attribute_name': 'attributeName', + 'attribute_value': 'attributeValue', + 'operator': 'operator' + } + + self._attribute_name = None + self._attribute_value = None + self._operator = None + self._attribute_name = 'PATH' + + @property + def attribute_value(self): + """ + **[Required]** Gets the attribute_value of this PathMatchCondition. + The path string that the redirection rule applies to. + + Example: `/example` + + + :return: The attribute_value of this PathMatchCondition. + :rtype: str + """ + return self._attribute_value + + @attribute_value.setter + def attribute_value(self, attribute_value): + """ + Sets the attribute_value of this PathMatchCondition. + The path string that the redirection rule applies to. + + Example: `/example` + + + :param attribute_value: The attribute_value of this PathMatchCondition. + :type: str + """ + self._attribute_value = attribute_value + + @property + def operator(self): + """ + **[Required]** Gets the operator of this PathMatchCondition. + A string that specifies how to compare the PathMatchCondition object's `attributeValue` string to the + incoming URI. + + * **EXACT_MATCH** - The incoming URI path must exactly and completely match the `attributeValue` string. + + * **FORCE_LONGEST_PREFIX_MATCH** - The system looks for the `attributeValue` string with the best, + longest match of the beginning portion of the incoming URI path. + + * **PREFIX_MATCH** - The beginning portion of the incoming URI path must exactly match the + `attributeValue` string. + + * **SUFFIX_MATCH** - The ending portion of the incoming URI path must exactly match the `attributeValue` + string. + + Allowed values for this property are: "EXACT_MATCH", "FORCE_LONGEST_PREFIX_MATCH", "PREFIX_MATCH", "SUFFIX_MATCH", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + + + :return: The operator of this PathMatchCondition. + :rtype: str + """ + return self._operator + + @operator.setter + def operator(self, operator): + """ + Sets the operator of this PathMatchCondition. + A string that specifies how to compare the PathMatchCondition object's `attributeValue` string to the + incoming URI. + + * **EXACT_MATCH** - The incoming URI path must exactly and completely match the `attributeValue` string. + + * **FORCE_LONGEST_PREFIX_MATCH** - The system looks for the `attributeValue` string with the best, + longest match of the beginning portion of the incoming URI path. + + * **PREFIX_MATCH** - The beginning portion of the incoming URI path must exactly match the + `attributeValue` string. + + * **SUFFIX_MATCH** - The ending portion of the incoming URI path must exactly match the `attributeValue` + string. + + + :param operator: The operator of this PathMatchCondition. + :type: str + """ + allowed_values = ["EXACT_MATCH", "FORCE_LONGEST_PREFIX_MATCH", "PREFIX_MATCH", "SUFFIX_MATCH"] + if not value_allowed_none_or_none_sentinel(operator, allowed_values): + operator = 'UNKNOWN_ENUM_VALUE' + self._operator = operator + + def __repr__(self): + return formatted_flat_dict(self) + + def __eq__(self, other): + if other is None: + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not self == other diff --git a/src/oci/load_balancer/models/redirect_rule.py b/src/oci/load_balancer/models/redirect_rule.py new file mode 100644 index 0000000000..9b822563a1 --- /dev/null +++ b/src/oci/load_balancer/models/redirect_rule.py @@ -0,0 +1,170 @@ +# coding: utf-8 +# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. + +from .rule import Rule +from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401 +from oci.decorators import init_model_state_from_kwargs + + +@init_model_state_from_kwargs +class RedirectRule(Rule): + """ + An object that represents the action of returning a specified response code and a redirect URI. Each RedirectRule + object is configured for a particular listener and a designated path. + + The default response code is `302 Moved Temporarily`. + + **NOTES:** + * This rule applies only to HTTP listeners. + * You can specify this rule only with the :func:`rule_condition` + type `PATH`. + * A listener can have only one RedirectRule object for a given original path. The + :func:`path_match_condition` `attributeValue` specifies the + original path. + """ + + def __init__(self, **kwargs): + """ + Initializes a new RedirectRule object with values from keyword arguments. The default value of the :py:attr:`~oci.load_balancer.models.RedirectRule.action` attribute + of this class is ``REDIRECT`` and it should not be changed. + The following keyword arguments are supported (corresponding to the getters/setters of this class): + + :param action: + The value to assign to the action property of this RedirectRule. + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT" + :type action: str + + :param response_code: + The value to assign to the response_code property of this RedirectRule. + :type response_code: int + + :param conditions: + The value to assign to the conditions property of this RedirectRule. + :type conditions: list[RuleCondition] + + :param redirect_uri: + The value to assign to the redirect_uri property of this RedirectRule. + :type redirect_uri: RedirectUri + + """ + self.swagger_types = { + 'action': 'str', + 'response_code': 'int', + 'conditions': 'list[RuleCondition]', + 'redirect_uri': 'RedirectUri' + } + + self.attribute_map = { + 'action': 'action', + 'response_code': 'responseCode', + 'conditions': 'conditions', + 'redirect_uri': 'redirectUri' + } + + self._action = None + self._response_code = None + self._conditions = None + self._redirect_uri = None + self._action = 'REDIRECT' + + @property + def response_code(self): + """ + Gets the response_code of this RedirectRule. + The HTTP status code to return when the incoming request is redirected. + + The status line returned with the code is mapped from the standard HTTP specification. Valid response + codes for redirection are: + + * 301 + * 302 + * 303 + * 307 + * 308 + + The default value is `302` (Moved Temporarily). + + Example: `301` + + + :return: The response_code of this RedirectRule. + :rtype: int + """ + return self._response_code + + @response_code.setter + def response_code(self, response_code): + """ + Sets the response_code of this RedirectRule. + The HTTP status code to return when the incoming request is redirected. + + The status line returned with the code is mapped from the standard HTTP specification. Valid response + codes for redirection are: + + * 301 + * 302 + * 303 + * 307 + * 308 + + The default value is `302` (Moved Temporarily). + + Example: `301` + + + :param response_code: The response_code of this RedirectRule. + :type: int + """ + self._response_code = response_code + + @property + def conditions(self): + """ + **[Required]** Gets the conditions of this RedirectRule. + + :return: The conditions of this RedirectRule. + :rtype: list[RuleCondition] + """ + return self._conditions + + @conditions.setter + def conditions(self, conditions): + """ + Sets the conditions of this RedirectRule. + + :param conditions: The conditions of this RedirectRule. + :type: list[RuleCondition] + """ + self._conditions = conditions + + @property + def redirect_uri(self): + """ + Gets the redirect_uri of this RedirectRule. + + :return: The redirect_uri of this RedirectRule. + :rtype: RedirectUri + """ + return self._redirect_uri + + @redirect_uri.setter + def redirect_uri(self, redirect_uri): + """ + Sets the redirect_uri of this RedirectRule. + + :param redirect_uri: The redirect_uri of this RedirectRule. + :type: RedirectUri + """ + self._redirect_uri = redirect_uri + + def __repr__(self): + return formatted_flat_dict(self) + + def __eq__(self, other): + if other is None: + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not self == other diff --git a/src/oci/load_balancer/models/redirect_uri.py b/src/oci/load_balancer/models/redirect_uri.py new file mode 100644 index 0000000000..2e578e3309 --- /dev/null +++ b/src/oci/load_balancer/models/redirect_uri.py @@ -0,0 +1,417 @@ +# coding: utf-8 +# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. + + +from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401 +from oci.decorators import init_model_state_from_kwargs + + +@init_model_state_from_kwargs +class RedirectUri(object): + """ + An object that defines the redirect URI applied to the original request. The object property values compose the + redirect URI. + + **NOTE:** The Load Balancing service cannot automatically detect or avoid infinite redirects. Be sure to provide + meaningful, complete, and correct field values. If any component field of this object has no value, the system + retains the value from the incoming HTTP request URI. + + For example, if you specify only the protocol field `https`, and the incoming request URI is + `http://example.com:8080`, the resulting runtime redirect URI is `https://example.com:8080`. The system retains + the host and port from the incoming URI and does not automatically change the port setting from `8080` to `443`. + + Be sure to configure valid percent-encoding (URL encoding) when needed. + + In addition to static string values, you can use the following tokens to construct the redirect URI. These tokens + extract values from the incoming HTTP request URI. + + * {protocol} : The protocol from the incoming HTTP request URI. + * {host} : The domain name from the incoming HTTP request URI. + * {port} : The port from the incoming HTTP request URI. + * {path} : The path from the incoming HTTP request URI. + * {query} : The query string from the incoming HTTP request URI. + + The tokens are case sensitive. For example, `{host}` is a valid token, but `{HOST}` is not. + + You can retain the literal characters of a token when you specify values for the path and query properties of the + redirect URI. Use a backslash (\\\\) as the escape character for the \\\\, {, and } characters. For example, if the + incoming HTTP request URI is `/video`, the path property value: + + `/example{path}123\\{path\\}` + + appears in the constructed redirect URI as: + + `/example/video123{path}` + """ + + def __init__(self, **kwargs): + """ + Initializes a new RedirectUri object with values from keyword arguments. + The following keyword arguments are supported (corresponding to the getters/setters of this class): + + :param protocol: + The value to assign to the protocol property of this RedirectUri. + :type protocol: str + + :param host: + The value to assign to the host property of this RedirectUri. + :type host: str + + :param port: + The value to assign to the port property of this RedirectUri. + :type port: int + + :param path: + The value to assign to the path property of this RedirectUri. + :type path: str + + :param query: + The value to assign to the query property of this RedirectUri. + :type query: str + + """ + self.swagger_types = { + 'protocol': 'str', + 'host': 'str', + 'port': 'int', + 'path': 'str', + 'query': 'str' + } + + self.attribute_map = { + 'protocol': 'protocol', + 'host': 'host', + 'port': 'port', + 'path': 'path', + 'query': 'query' + } + + self._protocol = None + self._host = None + self._port = None + self._path = None + self._query = None + + @property + def protocol(self): + """ + Gets the protocol of this RedirectUri. + The HTTP protocol to use in the redirect URI. + + When this value is null, not set, or set to `{protocol}`, the service preserves the original protocol from the + incoming HTTP request URI. Allowed values are: + + * HTTP + * HTTPS + * {protocol} + + `{protocol}` is the only valid token for this property. It can appear only once in the value string. + + Example: `HTTPS` + + + :return: The protocol of this RedirectUri. + :rtype: str + """ + return self._protocol + + @protocol.setter + def protocol(self, protocol): + """ + Sets the protocol of this RedirectUri. + The HTTP protocol to use in the redirect URI. + + When this value is null, not set, or set to `{protocol}`, the service preserves the original protocol from the + incoming HTTP request URI. Allowed values are: + + * HTTP + * HTTPS + * {protocol} + + `{protocol}` is the only valid token for this property. It can appear only once in the value string. + + Example: `HTTPS` + + + :param protocol: The protocol of this RedirectUri. + :type: str + """ + self._protocol = protocol + + @property + def host(self): + """ + Gets the host of this RedirectUri. + The valid domain name (hostname) or IP address to use in the redirect URI. + + When this value is null, not set, or set to `{host}`, the service preserves the original domain name from the + incoming HTTP request URI. + + All RedirectUri tokens are valid for this property. You can use any token more than once. + + Curly braces are valid in this property only to surround tokens, such as `{host}` + + Examples: + + * **example.com** appears as `example.com` in the redirect URI. + + * **in{host}** appears as `inexample.com` in the redirect URI if `example.com` is the hostname in the + incoming HTTP request URI. + + * **{port}{host}** appears as `8081example.com` in the redirect URI if `example.com` is the hostname and + the port is `8081` in the incoming HTTP request URI. + + + :return: The host of this RedirectUri. + :rtype: str + """ + return self._host + + @host.setter + def host(self, host): + """ + Sets the host of this RedirectUri. + The valid domain name (hostname) or IP address to use in the redirect URI. + + When this value is null, not set, or set to `{host}`, the service preserves the original domain name from the + incoming HTTP request URI. + + All RedirectUri tokens are valid for this property. You can use any token more than once. + + Curly braces are valid in this property only to surround tokens, such as `{host}` + + Examples: + + * **example.com** appears as `example.com` in the redirect URI. + + * **in{host}** appears as `inexample.com` in the redirect URI if `example.com` is the hostname in the + incoming HTTP request URI. + + * **{port}{host}** appears as `8081example.com` in the redirect URI if `example.com` is the hostname and + the port is `8081` in the incoming HTTP request URI. + + + :param host: The host of this RedirectUri. + :type: str + """ + self._host = host + + @property + def port(self): + """ + Gets the port of this RedirectUri. + The communication port to use in the redirect URI. + + Valid values include integers from 1 to 65535. + + When this value is null, the service preserves the original port from the incoming HTTP request URI. + + Example: `8081` + + + :return: The port of this RedirectUri. + :rtype: int + """ + return self._port + + @port.setter + def port(self, port): + """ + Sets the port of this RedirectUri. + The communication port to use in the redirect URI. + + Valid values include integers from 1 to 65535. + + When this value is null, the service preserves the original port from the incoming HTTP request URI. + + Example: `8081` + + + :param port: The port of this RedirectUri. + :type: int + """ + self._port = port + + @property + def path(self): + """ + Gets the path of this RedirectUri. + The HTTP URI path to use in the redirect URI. + + When this value is null, not set, or set to `{path}`, the service preserves the original path from the + incoming HTTP request URI. To omit the path from the redirect URI, set this value to an empty string, \"\". + + All RedirectUri tokens are valid for this property. You can use any token more than once. + + The path string must begin with `/` if it does not begin with the `{path}` token. + + Examples: + + * __/example/video/123__ appears as `/example/video/123` in the redirect URI. + + * __/example{path}__ appears as `/example/video/123` in the redirect URI if `/video/123` is the path in the + incoming HTTP request URI. + + * __{path}/123__ appears as `/example/video/123` in the redirect URI if `/example/video` is the path in the + incoming HTTP request URI. + + * __{path}123__ appears as `/example/video123` in the redirect URI if `/example/video is the path in the + incoming HTTP request URI. + + * __/{host}/123__ appears as `/example.com/video/123` in the redirect URI if `example.com` is the hostname + in the incoming HTTP request URI. + + * __/{host}/{port}__ appears as `/example.com/123` in the redirect URI if `example.com` is the hostname and + `123` is the port in the incoming HTTP request URI. + + * __/{query}__ appears as `/lang=en` in the redirect URI if the query is `lang=en` in the incoming HTTP + request URI. + + + :return: The path of this RedirectUri. + :rtype: str + """ + return self._path + + @path.setter + def path(self, path): + """ + Sets the path of this RedirectUri. + The HTTP URI path to use in the redirect URI. + + When this value is null, not set, or set to `{path}`, the service preserves the original path from the + incoming HTTP request URI. To omit the path from the redirect URI, set this value to an empty string, \"\". + + All RedirectUri tokens are valid for this property. You can use any token more than once. + + The path string must begin with `/` if it does not begin with the `{path}` token. + + Examples: + + * __/example/video/123__ appears as `/example/video/123` in the redirect URI. + + * __/example{path}__ appears as `/example/video/123` in the redirect URI if `/video/123` is the path in the + incoming HTTP request URI. + + * __{path}/123__ appears as `/example/video/123` in the redirect URI if `/example/video` is the path in the + incoming HTTP request URI. + + * __{path}123__ appears as `/example/video123` in the redirect URI if `/example/video is the path in the + incoming HTTP request URI. + + * __/{host}/123__ appears as `/example.com/video/123` in the redirect URI if `example.com` is the hostname + in the incoming HTTP request URI. + + * __/{host}/{port}__ appears as `/example.com/123` in the redirect URI if `example.com` is the hostname and + `123` is the port in the incoming HTTP request URI. + + * __/{query}__ appears as `/lang=en` in the redirect URI if the query is `lang=en` in the incoming HTTP + request URI. + + + :param path: The path of this RedirectUri. + :type: str + """ + self._path = path + + @property + def query(self): + """ + Gets the query of this RedirectUri. + The query string to use in the redirect URI. + + When this value is null, not set, or set to `{query}`, the service preserves the original query parameters + from the incoming HTTP request URI. + + All `RedirectUri` tokens are valid for this property. You can use any token more than once. + + If the query string does not begin with the `{query}` token, it must begin with the question mark (?) character. + + You can specify multiple query parameters as a single string. Separate each query parameter with an ampersand + (&) character. To omit all incoming query parameters from the redirect URI, set this value to an empty + string, \"\". + + If the specified query string results in a redirect URI ending with `?` or `&`, the last character is truncated. + For example, if the incoming URI is `http://host.com:8080/documents` and the query property value is + `?lang=en&{query}`, the redirect URI is `http://host.com:8080/documents?lang=en`. The system + truncates the final ampersand (&) because the incoming URI included no value to replace the {query} token. + + Examples: + * **lang=en&time_zone=PST** appears as `lang=en&time_zone=PST` in the redirect URI. + + * **{query}** appears as `lang=en&time_zone=PST` in the redirect URI if `lang=en&time_zone=PST` is the query + string in the incoming HTTP request. If the incoming HTTP request has no query parameters, the `{query}` + token renders as an empty string. + + * **lang=en&{query}&time_zone=PST** appears as `lang=en&country=us&time_zone=PST` in the redirect URI if + `country=us` is the query string in the incoming HTTP request. If the incoming HTTP request has no query + parameters, this value renders as `lang=en&time_zone=PST`. + + * **protocol={protocol}&hostname={host}** appears as `protocol=http&hostname=example.com` in the redirect + URI if the protocol is `HTTP` and the hostname is `example.com` in the incoming HTTP request. + + * **port={port}&hostname={host}** appears as `port=8080&hostname=example.com` in the redirect URI if the + port is `8080` and the hostname is `example.com` in the incoming HTTP request URI. + + + :return: The query of this RedirectUri. + :rtype: str + """ + return self._query + + @query.setter + def query(self, query): + """ + Sets the query of this RedirectUri. + The query string to use in the redirect URI. + + When this value is null, not set, or set to `{query}`, the service preserves the original query parameters + from the incoming HTTP request URI. + + All `RedirectUri` tokens are valid for this property. You can use any token more than once. + + If the query string does not begin with the `{query}` token, it must begin with the question mark (?) character. + + You can specify multiple query parameters as a single string. Separate each query parameter with an ampersand + (&) character. To omit all incoming query parameters from the redirect URI, set this value to an empty + string, \"\". + + If the specified query string results in a redirect URI ending with `?` or `&`, the last character is truncated. + For example, if the incoming URI is `http://host.com:8080/documents` and the query property value is + `?lang=en&{query}`, the redirect URI is `http://host.com:8080/documents?lang=en`. The system + truncates the final ampersand (&) because the incoming URI included no value to replace the {query} token. + + Examples: + * **lang=en&time_zone=PST** appears as `lang=en&time_zone=PST` in the redirect URI. + + * **{query}** appears as `lang=en&time_zone=PST` in the redirect URI if `lang=en&time_zone=PST` is the query + string in the incoming HTTP request. If the incoming HTTP request has no query parameters, the `{query}` + token renders as an empty string. + + * **lang=en&{query}&time_zone=PST** appears as `lang=en&country=us&time_zone=PST` in the redirect URI if + `country=us` is the query string in the incoming HTTP request. If the incoming HTTP request has no query + parameters, this value renders as `lang=en&time_zone=PST`. + + * **protocol={protocol}&hostname={host}** appears as `protocol=http&hostname=example.com` in the redirect + URI if the protocol is `HTTP` and the hostname is `example.com` in the incoming HTTP request. + + * **port={port}&hostname={host}** appears as `port=8080&hostname=example.com` in the redirect URI if the + port is `8080` and the hostname is `example.com` in the incoming HTTP request URI. + + + :param query: The query of this RedirectUri. + :type: str + """ + self._query = query + + def __repr__(self): + return formatted_flat_dict(self) + + def __eq__(self, other): + if other is None: + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not self == other diff --git a/src/oci/load_balancer/models/remove_http_request_header_rule.py b/src/oci/load_balancer/models/remove_http_request_header_rule.py index 161082b2ea..118352f399 100644 --- a/src/oci/load_balancer/models/remove_http_request_header_rule.py +++ b/src/oci/load_balancer/models/remove_http_request_header_rule.py @@ -26,7 +26,7 @@ def __init__(self, **kwargs): :param action: The value to assign to the action property of this RemoveHttpRequestHeaderRule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS" + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT" :type action: str :param header: diff --git a/src/oci/load_balancer/models/remove_http_response_header_rule.py b/src/oci/load_balancer/models/remove_http_response_header_rule.py index 360220e8e9..2b8270b547 100644 --- a/src/oci/load_balancer/models/remove_http_response_header_rule.py +++ b/src/oci/load_balancer/models/remove_http_response_header_rule.py @@ -26,7 +26,7 @@ def __init__(self, **kwargs): :param action: The value to assign to the action property of this RemoveHttpResponseHeaderRule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS" + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT" :type action: str :param header: diff --git a/src/oci/load_balancer/models/rule.py b/src/oci/load_balancer/models/rule.py index 6fbc8d01e4..fc21bc1130 100644 --- a/src/oci/load_balancer/models/rule.py +++ b/src/oci/load_balancer/models/rule.py @@ -44,12 +44,17 @@ class Rule(object): #: This constant has a value of "CONTROL_ACCESS_USING_HTTP_METHODS" ACTION_CONTROL_ACCESS_USING_HTTP_METHODS = "CONTROL_ACCESS_USING_HTTP_METHODS" + #: A constant which can be used with the action property of a Rule. + #: This constant has a value of "REDIRECT" + ACTION_REDIRECT = "REDIRECT" + def __init__(self, **kwargs): """ Initializes a new Rule object with values from keyword arguments. This class has the following subclasses and if you are using this class as input to a service operations then you should favor using a subclass over the base class: * :class:`~oci.load_balancer.models.AddHttpRequestHeaderRule` + * :class:`~oci.load_balancer.models.RedirectRule` * :class:`~oci.load_balancer.models.RemoveHttpRequestHeaderRule` * :class:`~oci.load_balancer.models.ExtendHttpRequestHeaderValueRule` * :class:`~oci.load_balancer.models.RemoveHttpResponseHeaderRule` @@ -62,7 +67,7 @@ def __init__(self, **kwargs): :param action: The value to assign to the action property of this Rule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type action: str @@ -88,6 +93,9 @@ def get_subtype(object_dictionary): if type == 'ADD_HTTP_REQUEST_HEADER': return 'AddHttpRequestHeaderRule' + if type == 'REDIRECT': + return 'RedirectRule' + if type == 'REMOVE_HTTP_REQUEST_HEADER': return 'RemoveHttpRequestHeaderRule' @@ -115,7 +123,7 @@ def get_subtype(object_dictionary): def action(self): """ **[Required]** Gets the action of this Rule. - Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. @@ -132,7 +140,7 @@ def action(self, action): :param action: The action of this Rule. :type: str """ - allowed_values = ["ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS"] + allowed_values = ["ADD_HTTP_REQUEST_HEADER", "EXTEND_HTTP_REQUEST_HEADER_VALUE", "REMOVE_HTTP_REQUEST_HEADER", "ADD_HTTP_RESPONSE_HEADER", "EXTEND_HTTP_RESPONSE_HEADER_VALUE", "REMOVE_HTTP_RESPONSE_HEADER", "ALLOW", "CONTROL_ACCESS_USING_HTTP_METHODS", "REDIRECT"] if not value_allowed_none_or_none_sentinel(action, allowed_values): action = 'UNKNOWN_ENUM_VALUE' self._action = action diff --git a/src/oci/load_balancer/models/rule_condition.py b/src/oci/load_balancer/models/rule_condition.py index 8ec4abb43b..d78ceb5d50 100644 --- a/src/oci/load_balancer/models/rule_condition.py +++ b/src/oci/load_balancer/models/rule_condition.py @@ -24,6 +24,10 @@ class RuleCondition(object): #: This constant has a value of "SOURCE_VCN_IP_ADDRESS" ATTRIBUTE_NAME_SOURCE_VCN_IP_ADDRESS = "SOURCE_VCN_IP_ADDRESS" + #: A constant which can be used with the attribute_name property of a RuleCondition. + #: This constant has a value of "PATH" + ATTRIBUTE_NAME_PATH = "PATH" + def __init__(self, **kwargs): """ Initializes a new RuleCondition object with values from keyword arguments. This class has the following subclasses and if you are using this class as input @@ -31,13 +35,14 @@ def __init__(self, **kwargs): * :class:`~oci.load_balancer.models.SourceVcnIdCondition` * :class:`~oci.load_balancer.models.SourceIpAddressCondition` + * :class:`~oci.load_balancer.models.PathMatchCondition` * :class:`~oci.load_balancer.models.SourceVcnIpAddressCondition` The following keyword arguments are supported (corresponding to the getters/setters of this class): :param attribute_name: The value to assign to the attribute_name property of this RuleCondition. - Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS", "PATH", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type attribute_name: str @@ -66,6 +71,9 @@ def get_subtype(object_dictionary): if type == 'SOURCE_IP_ADDRESS': return 'SourceIpAddressCondition' + if type == 'PATH': + return 'PathMatchCondition' + if type == 'SOURCE_VCN_IP_ADDRESS': return 'SourceVcnIpAddressCondition' else: @@ -75,7 +83,7 @@ def get_subtype(object_dictionary): def attribute_name(self): """ **[Required]** Gets the attribute_name of this RuleCondition. - Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS", "PATH", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. @@ -92,7 +100,7 @@ def attribute_name(self, attribute_name): :param attribute_name: The attribute_name of this RuleCondition. :type: str """ - allowed_values = ["SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS"] + allowed_values = ["SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS", "PATH"] if not value_allowed_none_or_none_sentinel(attribute_name, allowed_values): attribute_name = 'UNKNOWN_ENUM_VALUE' self._attribute_name = attribute_name diff --git a/src/oci/load_balancer/models/source_ip_address_condition.py b/src/oci/load_balancer/models/source_ip_address_condition.py index 00789d237e..7c432d6244 100644 --- a/src/oci/load_balancer/models/source_ip_address_condition.py +++ b/src/oci/load_balancer/models/source_ip_address_condition.py @@ -20,7 +20,7 @@ def __init__(self, **kwargs): :param attribute_name: The value to assign to the attribute_name property of this SourceIpAddressCondition. - Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS" + Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS", "PATH" :type attribute_name: str :param attribute_value: diff --git a/src/oci/load_balancer/models/source_vcn_id_condition.py b/src/oci/load_balancer/models/source_vcn_id_condition.py index 891f29509d..0c79c76e7d 100644 --- a/src/oci/load_balancer/models/source_vcn_id_condition.py +++ b/src/oci/load_balancer/models/source_vcn_id_condition.py @@ -20,7 +20,7 @@ def __init__(self, **kwargs): :param attribute_name: The value to assign to the attribute_name property of this SourceVcnIdCondition. - Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS" + Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS", "PATH" :type attribute_name: str :param attribute_value: diff --git a/src/oci/load_balancer/models/source_vcn_ip_address_condition.py b/src/oci/load_balancer/models/source_vcn_ip_address_condition.py index b39c6235a5..6e98d370d4 100644 --- a/src/oci/load_balancer/models/source_vcn_ip_address_condition.py +++ b/src/oci/load_balancer/models/source_vcn_ip_address_condition.py @@ -21,7 +21,7 @@ def __init__(self, **kwargs): :param attribute_name: The value to assign to the attribute_name property of this SourceVcnIpAddressCondition. - Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS" + Allowed values for this property are: "SOURCE_IP_ADDRESS", "SOURCE_VCN_ID", "SOURCE_VCN_IP_ADDRESS", "PATH" :type attribute_name: str :param attribute_value: diff --git a/src/oci/version.py b/src/oci/version.py index 01651e3056..6f91f6b0e3 100644 --- a/src/oci/version.py +++ b/src/oci/version.py @@ -1,4 +1,4 @@ # coding: utf-8 # Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. -__version__ = "2.6.3" +__version__ = "2.6.4"