Skip to content

Commit

Permalink
feat: add support for cmek settings; undeprecate resource name helper…
Browse files Browse the repository at this point in the history
… methods; bump copyright year to 2020 (#22)
  • Loading branch information
yoshi-automation committed Feb 19, 2020
1 parent 5bbe5de commit 1c687c1
Show file tree
Hide file tree
Showing 22 changed files with 1,570 additions and 437 deletions.
291 changes: 218 additions & 73 deletions google/cloud/logging_v2/gapic/config_service_v2_client.py

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions google/cloud/logging_v2/gapic/config_service_v2_client_config.py
Expand Up @@ -4,6 +4,7 @@
"retry_codes": {
"idempotent": ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"],
"non_idempotent": [],
"idempotent2": ["DEADLINE_EXCEEDED", "UNAVAILABLE"],
},
"retry_params": {
"default": {
Expand Down Expand Up @@ -76,6 +77,16 @@
"retry_codes_name": "idempotent",
"retry_params_name": "default",
},
"GetCmekSettings": {
"timeout_millis": 60000,
"retry_codes_name": "idempotent2",
"retry_params_name": "default",
},
"UpdateCmekSettings": {
"timeout_millis": 60000,
"retry_codes_name": "non_idempotent",
"retry_params_name": "default",
},
},
}
}
Expand Down
2 changes: 1 addition & 1 deletion google/cloud/logging_v2/gapic/enums.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# Copyright 2019 Google LLC
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
68 changes: 14 additions & 54 deletions google/cloud/logging_v2/gapic/logging_service_v2_client.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# Copyright 2019 Google LLC
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -79,24 +79,14 @@ def from_service_account_file(cls, filename, *args, **kwargs):

@classmethod
def billing_path(cls, billing_account):
"""DEPRECATED. Return a fully-qualified billing string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified billing string."""
return google.api_core.path_template.expand(
"billingAccounts/{billing_account}", billing_account=billing_account,
)

@classmethod
def billing_log_path(cls, billing_account, log):
"""DEPRECATED. Return a fully-qualified billing_log string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified billing_log string."""
return google.api_core.path_template.expand(
"billingAccounts/{billing_account}/logs/{log}",
billing_account=billing_account,
Expand All @@ -105,58 +95,33 @@ def billing_log_path(cls, billing_account, log):

@classmethod
def folder_path(cls, folder):
"""DEPRECATED. Return a fully-qualified folder string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified folder string."""
return google.api_core.path_template.expand("folders/{folder}", folder=folder,)

@classmethod
def folder_log_path(cls, folder, log):
"""DEPRECATED. Return a fully-qualified folder_log string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified folder_log string."""
return google.api_core.path_template.expand(
"folders/{folder}/logs/{log}", folder=folder, log=log,
)

@classmethod
def log_path(cls, project, log):
"""DEPRECATED. Return a fully-qualified log string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified log string."""
return google.api_core.path_template.expand(
"projects/{project}/logs/{log}", project=project, log=log,
)

@classmethod
def organization_path(cls, organization):
"""DEPRECATED. Return a fully-qualified organization string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified organization string."""
return google.api_core.path_template.expand(
"organizations/{organization}", organization=organization,
)

@classmethod
def organization_log_path(cls, organization, log):
"""DEPRECATED. Return a fully-qualified organization_log string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified organization_log string."""
return google.api_core.path_template.expand(
"organizations/{organization}/logs/{log}",
organization=organization,
Expand All @@ -165,12 +130,7 @@ def organization_log_path(cls, organization, log):

@classmethod
def project_path(cls, project):
"""DEPRECATED. Return a fully-qualified project string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified project string."""
return google.api_core.path_template.expand(
"projects/{project}", project=project,
)
Expand Down Expand Up @@ -296,10 +256,10 @@ def delete_log(
metadata=None,
):
"""
Deletes all the log entries in a log.
The log reappears if it receives new entries.
Log entries written shortly before the delete operation might not be
deleted.
Deletes all the log entries in a log. The log reappears if it receives new
entries. Log entries written shortly before the delete operation might not
be deleted. Entries received after the delete operation with a timestamp
before the operation will be deleted.
Example:
>>> from google.cloud import logging_v2
Expand Down Expand Up @@ -573,7 +533,7 @@ def list_log_entries(
Example: ``"my-project-1A"``.
filter_ (str): Optional. A filter that chooses which log entries to return. See
`Advanced Logs
Filters <https://cloud.google.com/logging/docs/view/advanced_filters>`__.
Queries <https://cloud.google.com/logging/docs/view/advanced-queries>`__.
Only log entries that match the filter are returned. An empty filter
matches all log entries in the resources listed in ``resource_names``.
Referencing a parent resource that is not listed in ``resource_names``
Expand Down
50 changes: 13 additions & 37 deletions google/cloud/logging_v2/gapic/metrics_service_v2_client.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# Copyright 2019 Google LLC
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -81,58 +81,33 @@ def from_service_account_file(cls, filename, *args, **kwargs):

@classmethod
def billing_path(cls, billing_account):
"""DEPRECATED. Return a fully-qualified billing string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified billing string."""
return google.api_core.path_template.expand(
"billingAccounts/{billing_account}", billing_account=billing_account,
)

@classmethod
def folder_path(cls, folder):
"""DEPRECATED. Return a fully-qualified folder string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified folder string."""
return google.api_core.path_template.expand("folders/{folder}", folder=folder,)

@classmethod
def metric_path(cls, project, metric):
"""DEPRECATED. Return a fully-qualified metric string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified metric string."""
return google.api_core.path_template.expand(
"projects/{project}/metrics/{metric}", project=project, metric=metric,
)

@classmethod
def organization_path(cls, organization):
"""DEPRECATED. Return a fully-qualified organization string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified organization string."""
return google.api_core.path_template.expand(
"organizations/{organization}", organization=organization,
)

@classmethod
def project_path(cls, project):
"""DEPRECATED. Return a fully-qualified project string."""
warnings.warn(
"Resource name helper functions are deprecated.",
PendingDeprecationWarning,
stacklevel=1,
)
"""Return a fully-qualified project string."""
return google.api_core.path_template.expand(
"projects/{project}", project=project,
)
Expand Down Expand Up @@ -377,7 +352,7 @@ def get_log_metric(
>>> response = client.get_log_metric(metric_name)
Args:
metric_name (str): The resource name of the desired metric:
metric_name (str): Required. The resource name of the desired metric:
::
Expand Down Expand Up @@ -454,14 +429,15 @@ def create_log_metric(
>>> response = client.create_log_metric(parent, metric)
Args:
parent (str): The resource name of the project in which to create the metric:
parent (str): Required. The resource name of the project in which to create the
metric:
::
"projects/[PROJECT_ID]"
The new metric must be provided in the request.
metric (Union[dict, ~google.cloud.logging_v2.types.LogMetric]): The new logs-based metric, which must not have an identifier that
metric (Union[dict, ~google.cloud.logging_v2.types.LogMetric]): Required. The new logs-based metric, which must not have an identifier that
already exists.
If a dict is provided, it must be of the same form as the protobuf
Expand Down Expand Up @@ -540,7 +516,7 @@ def update_log_metric(
>>> response = client.update_log_metric(metric_name, metric)
Args:
metric_name (str): The resource name of the metric to update:
metric_name (str): Required. The resource name of the metric to update:
::
Expand All @@ -549,7 +525,7 @@ def update_log_metric(
The updated metric must be provided in the request and it's ``name``
field must be the same as ``[METRIC_ID]`` If the metric does not exist
in ``[PROJECT_ID]``, then a new metric is created.
metric (Union[dict, ~google.cloud.logging_v2.types.LogMetric]): The updated metric.
metric (Union[dict, ~google.cloud.logging_v2.types.LogMetric]): Required. The updated metric.
If a dict is provided, it must be of the same form as the protobuf
message :class:`~google.cloud.logging_v2.types.LogMetric`
Expand Down Expand Up @@ -623,7 +599,7 @@ def delete_log_metric(
>>> client.delete_log_metric(metric_name)
Args:
metric_name (str): The resource name of the metric to delete:
metric_name (str): Required. The resource name of the metric to delete:
::
Expand Down
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# Copyright 2019 Google LLC
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -255,3 +255,52 @@ def delete_exclusion(self):
deserialized response object.
"""
return self._stubs["config_service_v2_stub"].DeleteExclusion

@property
def get_cmek_settings(self):
"""Return the gRPC stub for :meth:`ConfigServiceV2Client.get_cmek_settings`.
Gets the Logs Router CMEK settings for the given resource.
Note: CMEK for the Logs Router can currently only be configured for GCP
organizations. Once configured, it applies to all projects and folders
in the GCP organization.
See `Enabling CMEK for Logs
Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__
for more information.
Returns:
Callable: A callable which accepts the appropriate
deserialized request object and returns a
deserialized response object.
"""
return self._stubs["config_service_v2_stub"].GetCmekSettings

@property
def update_cmek_settings(self):
"""Return the gRPC stub for :meth:`ConfigServiceV2Client.update_cmek_settings`.
Updates the Logs Router CMEK settings for the given resource.
Note: CMEK for the Logs Router can currently only be configured for GCP
organizations. Once configured, it applies to all projects and folders
in the GCP organization.
``UpdateCmekSettings`` will fail if 1) ``kms_key_name`` is invalid, or
2) the associated service account does not have the required
``roles/cloudkms.cryptoKeyEncrypterDecrypter`` role assigned for the
key, or
3) access to the key is disabled.
See `Enabling CMEK for Logs
Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__
for more information.
Returns:
Callable: A callable which accepts the appropriate
deserialized request object and returns a
deserialized response object.
"""
return self._stubs["config_service_v2_stub"].UpdateCmekSettings
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# Copyright 2019 Google LLC
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -117,10 +117,10 @@ def channel(self):
def delete_log(self):
"""Return the gRPC stub for :meth:`LoggingServiceV2Client.delete_log`.
Deletes all the log entries in a log.
The log reappears if it receives new entries.
Log entries written shortly before the delete operation might not be
deleted.
Deletes all the log entries in a log. The log reappears if it receives new
entries. Log entries written shortly before the delete operation might not
be deleted. Entries received after the delete operation with a timestamp
before the operation will be deleted.
Returns:
Callable: A callable which accepts the appropriate
Expand Down
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# Copyright 2019 Google LLC
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down

0 comments on commit 1c687c1

Please sign in to comment.