google-cloud-securesourcemanager 0.6.0__tar.gz → 0.6.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {google_cloud_securesourcemanager-0.6.0/google_cloud_securesourcemanager.egg-info → google_cloud_securesourcemanager-0.6.1}/PKG-INFO +5 -6
  2. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager/gapic_version.py +1 -1
  3. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/__init__.py +4 -4
  4. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/gapic_version.py +1 -1
  5. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/async_client.py +10 -0
  6. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/client.py +42 -0
  7. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/types/secure_source_manager.py +50 -0
  8. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1/google_cloud_securesourcemanager.egg-info}/PKG-INFO +5 -6
  9. google_cloud_securesourcemanager-0.6.1/google_cloud_securesourcemanager.egg-info/requires.txt +9 -0
  10. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/setup.py +8 -6
  11. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/tests/unit/gapic/securesourcemanager_v1/test_secure_source_manager.py +137 -65
  12. google_cloud_securesourcemanager-0.6.0/google_cloud_securesourcemanager.egg-info/requires.txt +0 -12
  13. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/LICENSE +0 -0
  14. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/MANIFEST.in +0 -0
  15. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/README.rst +0 -0
  16. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager/__init__.py +0 -0
  17. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager/py.typed +0 -0
  18. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/gapic_metadata.json +0 -0
  19. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/py.typed +0 -0
  20. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/__init__.py +0 -0
  21. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/__init__.py +0 -0
  22. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/pagers.py +0 -0
  23. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/transports/__init__.py +0 -0
  24. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/transports/base.py +0 -0
  25. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/transports/grpc.py +0 -0
  26. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/transports/grpc_asyncio.py +0 -0
  27. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/transports/rest.py +0 -0
  28. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/services/secure_source_manager/transports/rest_base.py +0 -0
  29. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google/cloud/securesourcemanager_v1/types/__init__.py +0 -0
  30. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google_cloud_securesourcemanager.egg-info/SOURCES.txt +0 -0
  31. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google_cloud_securesourcemanager.egg-info/dependency_links.txt +0 -0
  32. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google_cloud_securesourcemanager.egg-info/not-zip-safe +0 -0
  33. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/google_cloud_securesourcemanager.egg-info/top_level.txt +0 -0
  34. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/setup.cfg +0 -0
  35. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/tests/__init__.py +0 -0
  36. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/tests/unit/__init__.py +0 -0
  37. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/tests/unit/gapic/__init__.py +0 -0
  38. {google_cloud_securesourcemanager-0.6.0 → google_cloud_securesourcemanager-0.6.1}/tests/unit/gapic/securesourcemanager_v1/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-cloud-securesourcemanager
3
- Version: 0.6.0
3
+ Version: 0.6.1
4
4
  Summary: Google Cloud Securesourcemanager API client library
5
5
  Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-securesourcemanager
6
6
  Author: Google LLC
@@ -21,14 +21,13 @@ Classifier: Operating System :: OS Independent
21
21
  Classifier: Topic :: Internet
22
22
  Requires-Python: >=3.10
23
23
  License-File: LICENSE
24
- Requires-Dist: google-api-core[grpc]<3.0.0,>=2.17.1
24
+ Requires-Dist: google-api-core[grpc]<3.0.0,>=2.24.2
25
25
  Requires-Dist: google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
26
26
  Requires-Dist: grpcio<2.0.0,>=1.59.0
27
27
  Requires-Dist: grpcio<2.0.0,>=1.75.1; python_version >= "3.14"
28
- Requires-Dist: proto-plus<2.0.0,>=1.22.3
29
- Requires-Dist: proto-plus<2.0.0,>=1.25.0; python_version >= "3.13"
30
- Requires-Dist: protobuf<8.0.0,>=4.25.8
31
- Requires-Dist: grpc-google-iam-v1<1.0.0,>=0.14.0
28
+ Requires-Dist: proto-plus<2.0.0,>=1.26.1
29
+ Requires-Dist: protobuf<8.0.0,>=6.33.5
30
+ Requires-Dist: grpc-google-iam-v1<1.0.0,>=0.14.2
32
31
  Dynamic: author
33
32
  Dynamic: author-email
34
33
  Dynamic: classifier
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- __version__ = "0.6.0" # {x-release-please-version}
16
+ __version__ = "0.6.1" # {x-release-please-version}
@@ -129,7 +129,7 @@ else: # pragma: NO COVER
129
129
 
130
130
  def parse_version_to_tuple(version_string: str):
131
131
  """Safely converts a semantic version string to a comparable tuple of integers.
132
- Example: "4.25.8" -> (4, 25, 8)
132
+ Example: "6.33.5" -> (6, 33, 5)
133
133
  Ignores non-numeric parts and handles common version formats.
134
134
  Args:
135
135
  version_string: Version string in the format "x.y.z" or "x.y.z<suffix>"
@@ -158,9 +158,9 @@ else: # pragma: NO COVER
158
158
  return (None, "--")
159
159
 
160
160
  _dependency_package = "google.protobuf"
161
- _next_supported_version = "4.25.8"
162
- _next_supported_version_tuple = (4, 25, 8)
163
- _recommendation = " (we recommend 6.x)"
161
+ _next_supported_version = "6.33.5"
162
+ _next_supported_version_tuple = (6, 33, 5)
163
+ _recommendation = " (we recommend 7.x)"
164
164
  (_version_used, _version_used_string) = _get_version(_dependency_package)
165
165
  if _version_used and _version_used < _next_supported_version_tuple:
166
166
  warnings.warn(
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- __version__ = "0.6.0" # {x-release-please-version}
16
+ __version__ = "0.6.1" # {x-release-please-version}
@@ -103,6 +103,12 @@ class SecureSourceManagerAsyncClient:
103
103
  )
104
104
  hook_path = staticmethod(SecureSourceManagerClient.hook_path)
105
105
  parse_hook_path = staticmethod(SecureSourceManagerClient.parse_hook_path)
106
+ inspect_template_path = staticmethod(
107
+ SecureSourceManagerClient.inspect_template_path
108
+ )
109
+ parse_inspect_template_path = staticmethod(
110
+ SecureSourceManagerClient.parse_inspect_template_path
111
+ )
106
112
  instance_path = staticmethod(SecureSourceManagerClient.instance_path)
107
113
  parse_instance_path = staticmethod(SecureSourceManagerClient.parse_instance_path)
108
114
  issue_path = staticmethod(SecureSourceManagerClient.issue_path)
@@ -125,6 +131,10 @@ class SecureSourceManagerAsyncClient:
125
131
  parse_repository_path = staticmethod(
126
132
  SecureSourceManagerClient.parse_repository_path
127
133
  )
134
+ service_account_path = staticmethod(SecureSourceManagerClient.service_account_path)
135
+ parse_service_account_path = staticmethod(
136
+ SecureSourceManagerClient.parse_service_account_path
137
+ )
128
138
  service_attachment_path = staticmethod(
129
139
  SecureSourceManagerClient.service_attachment_path
130
140
  )
@@ -338,6 +338,28 @@ class SecureSourceManagerClient(metaclass=SecureSourceManagerClientMeta):
338
338
  )
339
339
  return m.groupdict() if m else {}
340
340
 
341
+ @staticmethod
342
+ def inspect_template_path(
343
+ project: str,
344
+ location: str,
345
+ inspect_template: str,
346
+ ) -> str:
347
+ """Returns a fully-qualified inspect_template string."""
348
+ return "projects/{project}/locations/{location}/inspectTemplates/{inspect_template}".format(
349
+ project=project,
350
+ location=location,
351
+ inspect_template=inspect_template,
352
+ )
353
+
354
+ @staticmethod
355
+ def parse_inspect_template_path(path: str) -> Dict[str, str]:
356
+ """Parses a inspect_template path into its component segments."""
357
+ m = re.match(
358
+ r"^projects/(?P<project>.+?)/locations/(?P<location>.+?)/inspectTemplates/(?P<inspect_template>.+?)$",
359
+ path,
360
+ )
361
+ return m.groupdict() if m else {}
362
+
341
363
  @staticmethod
342
364
  def instance_path(
343
365
  project: str,
@@ -484,6 +506,26 @@ class SecureSourceManagerClient(metaclass=SecureSourceManagerClientMeta):
484
506
  )
485
507
  return m.groupdict() if m else {}
486
508
 
509
+ @staticmethod
510
+ def service_account_path(
511
+ project: str,
512
+ service_account: str,
513
+ ) -> str:
514
+ """Returns a fully-qualified service_account string."""
515
+ return "projects/{project}/serviceAccounts/{service_account}".format(
516
+ project=project,
517
+ service_account=service_account,
518
+ )
519
+
520
+ @staticmethod
521
+ def parse_service_account_path(path: str) -> Dict[str, str]:
522
+ """Parses a service_account path into its component segments."""
523
+ m = re.match(
524
+ r"^projects/(?P<project>.+?)/serviceAccounts/(?P<service_account>.+?)$",
525
+ path,
526
+ )
527
+ return m.groupdict() if m else {}
528
+
487
529
  @staticmethod
488
530
  def service_attachment_path(
489
531
  project: str,
@@ -425,6 +425,12 @@ class Repository(proto.Message):
425
425
  initial_config (google.cloud.securesourcemanager_v1.types.Repository.InitialConfig):
426
426
  Input only. Initial configurations for the
427
427
  repository.
428
+ service_account (str):
429
+ Optional. Repository level service account
430
+ (BYOSA).
431
+ scan_config (google.cloud.securesourcemanager_v1.types.Repository.ScanConfig):
432
+ Optional. Provides configuration for
433
+ scanning.
428
434
  """
429
435
 
430
436
  class URIs(proto.Message):
@@ -684,6 +690,41 @@ class Repository(proto.Message):
684
690
  number=4,
685
691
  )
686
692
 
693
+ class ScanConfig(proto.Message):
694
+ r"""Configuration for scanning.
695
+
696
+ Attributes:
697
+ secret_scan_config (google.cloud.securesourcemanager_v1.types.Repository.ScanConfig.SecretScanConfig):
698
+ Optional. Configuration for secret scanning.
699
+ """
700
+
701
+ class SecretScanConfig(proto.Message):
702
+ r"""Configuration for secret scanning.
703
+
704
+ Attributes:
705
+ enabled (bool):
706
+ Optional. Enables secret scanning for the
707
+ repository.
708
+ inspect_template (str):
709
+ Optional. The DLP inspect template to use for
710
+ secret scanning.
711
+ """
712
+
713
+ enabled: bool = proto.Field(
714
+ proto.BOOL,
715
+ number=1,
716
+ )
717
+ inspect_template: str = proto.Field(
718
+ proto.STRING,
719
+ number=2,
720
+ )
721
+
722
+ secret_scan_config: "Repository.ScanConfig.SecretScanConfig" = proto.Field(
723
+ proto.MESSAGE,
724
+ number=1,
725
+ message="Repository.ScanConfig.SecretScanConfig",
726
+ )
727
+
687
728
  name: str = proto.Field(
688
729
  proto.STRING,
689
730
  number=1,
@@ -724,6 +765,15 @@ class Repository(proto.Message):
724
765
  number=10,
725
766
  message=InitialConfig,
726
767
  )
768
+ service_account: str = proto.Field(
769
+ proto.STRING,
770
+ number=11,
771
+ )
772
+ scan_config: ScanConfig = proto.Field(
773
+ proto.MESSAGE,
774
+ number=13,
775
+ message=ScanConfig,
776
+ )
727
777
 
728
778
 
729
779
  class Hook(proto.Message):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-cloud-securesourcemanager
3
- Version: 0.6.0
3
+ Version: 0.6.1
4
4
  Summary: Google Cloud Securesourcemanager API client library
5
5
  Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-securesourcemanager
6
6
  Author: Google LLC
@@ -21,14 +21,13 @@ Classifier: Operating System :: OS Independent
21
21
  Classifier: Topic :: Internet
22
22
  Requires-Python: >=3.10
23
23
  License-File: LICENSE
24
- Requires-Dist: google-api-core[grpc]<3.0.0,>=2.17.1
24
+ Requires-Dist: google-api-core[grpc]<3.0.0,>=2.24.2
25
25
  Requires-Dist: google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
26
26
  Requires-Dist: grpcio<2.0.0,>=1.59.0
27
27
  Requires-Dist: grpcio<2.0.0,>=1.75.1; python_version >= "3.14"
28
- Requires-Dist: proto-plus<2.0.0,>=1.22.3
29
- Requires-Dist: proto-plus<2.0.0,>=1.25.0; python_version >= "3.13"
30
- Requires-Dist: protobuf<8.0.0,>=4.25.8
31
- Requires-Dist: grpc-google-iam-v1<1.0.0,>=0.14.0
28
+ Requires-Dist: proto-plus<2.0.0,>=1.26.1
29
+ Requires-Dist: protobuf<8.0.0,>=6.33.5
30
+ Requires-Dist: grpc-google-iam-v1<1.0.0,>=0.14.2
32
31
  Dynamic: author
33
32
  Dynamic: author-email
34
33
  Dynamic: classifier
@@ -0,0 +1,9 @@
1
+ google-api-core[grpc]<3.0.0,>=2.24.2
2
+ google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
3
+ grpcio<2.0.0,>=1.59.0
4
+ proto-plus<2.0.0,>=1.26.1
5
+ protobuf<8.0.0,>=6.33.5
6
+ grpc-google-iam-v1<1.0.0,>=0.14.2
7
+
8
+ [:python_version >= "3.14"]
9
+ grpcio<2.0.0,>=1.75.1
@@ -31,7 +31,10 @@ version = None
31
31
  with open(
32
32
  os.path.join(package_root, "google/cloud/securesourcemanager/gapic_version.py")
33
33
  ) as fp:
34
- version_candidates = re.findall(r"(?<=\")\d+.\d+.\d+(?=\")", fp.read())
34
+ version_candidates = re.findall(
35
+ r"(?<=\")\d+\.\d+\.\d+[^\"\s]*(?=\")",
36
+ fp.read(),
37
+ )
35
38
  assert len(version_candidates) == 1
36
39
  version = version_candidates[0]
37
40
 
@@ -41,16 +44,15 @@ else:
41
44
  release_status = "Development Status :: 5 - Production/Stable"
42
45
 
43
46
  dependencies = [
44
- "google-api-core[grpc] >= 2.17.1, <3.0.0",
47
+ "google-api-core[grpc] >= 2.24.2, <3.0.0",
45
48
  # Exclude incompatible versions of `google-auth`
46
49
  # See https://github.com/googleapis/google-cloud-python/issues/12364
47
50
  "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0",
48
51
  "grpcio >= 1.59.0, < 2.0.0",
49
52
  "grpcio >= 1.75.1, < 2.0.0; python_version >= '3.14'",
50
- "proto-plus >= 1.22.3, <2.0.0",
51
- "proto-plus >= 1.25.0, <2.0.0; python_version >= '3.13'",
52
- "protobuf >= 4.25.8, < 8.0.0",
53
- "grpc-google-iam-v1 >= 0.14.0, <1.0.0",
53
+ "proto-plus >= 1.26.1, <2.0.0",
54
+ "protobuf >= 6.33.5, < 8.0.0",
55
+ "grpc-google-iam-v1 >= 0.14.2, <1.0.0",
54
56
  ]
55
57
  extras = {}
56
58
  url = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-securesourcemanager"
@@ -3515,6 +3515,7 @@ def test_get_repository(request_type, transport: str = "grpc"):
3515
3515
  instance="instance_value",
3516
3516
  uid="uid_value",
3517
3517
  etag="etag_value",
3518
+ service_account="service_account_value",
3518
3519
  )
3519
3520
  response = client.get_repository(request)
3520
3521
 
@@ -3531,6 +3532,7 @@ def test_get_repository(request_type, transport: str = "grpc"):
3531
3532
  assert response.instance == "instance_value"
3532
3533
  assert response.uid == "uid_value"
3533
3534
  assert response.etag == "etag_value"
3535
+ assert response.service_account == "service_account_value"
3534
3536
 
3535
3537
 
3536
3538
  def test_get_repository_non_empty_request_with_auto_populated_field():
@@ -3667,6 +3669,7 @@ async def test_get_repository_async(request_type, transport: str = "grpc_asyncio
3667
3669
  instance="instance_value",
3668
3670
  uid="uid_value",
3669
3671
  etag="etag_value",
3672
+ service_account="service_account_value",
3670
3673
  )
3671
3674
  )
3672
3675
  response = await client.get_repository(request)
@@ -3684,6 +3687,7 @@ async def test_get_repository_async(request_type, transport: str = "grpc_asyncio
3684
3687
  assert response.instance == "instance_value"
3685
3688
  assert response.uid == "uid_value"
3686
3689
  assert response.etag == "etag_value"
3690
+ assert response.service_account == "service_account_value"
3687
3691
 
3688
3692
 
3689
3693
  def test_get_repository_field_headers():
@@ -33064,6 +33068,7 @@ async def test_get_repository_empty_call_grpc_asyncio():
33064
33068
  instance="instance_value",
33065
33069
  uid="uid_value",
33066
33070
  etag="etag_value",
33071
+ service_account="service_account_value",
33067
33072
  )
33068
33073
  )
33069
33074
  await client.get_repository(request=None)
@@ -35127,6 +35132,7 @@ def test_get_repository_rest_call_success(request_type):
35127
35132
  instance="instance_value",
35128
35133
  uid="uid_value",
35129
35134
  etag="etag_value",
35135
+ service_account="service_account_value",
35130
35136
  )
35131
35137
 
35132
35138
  # Wrap the value into a proper Response obj
@@ -35148,6 +35154,7 @@ def test_get_repository_rest_call_success(request_type):
35148
35154
  assert response.instance == "instance_value"
35149
35155
  assert response.uid == "uid_value"
35150
35156
  assert response.etag == "etag_value"
35157
+ assert response.service_account == "service_account_value"
35151
35158
 
35152
35159
 
35153
35160
  @pytest.mark.parametrize("null_interceptor", [True, False])
@@ -35276,6 +35283,13 @@ def test_create_repository_rest_call_success(request_type):
35276
35283
  "license_": "license__value",
35277
35284
  "readme": "readme_value",
35278
35285
  },
35286
+ "service_account": "service_account_value",
35287
+ "scan_config": {
35288
+ "secret_scan_config": {
35289
+ "enabled": True,
35290
+ "inspect_template": "inspect_template_value",
35291
+ }
35292
+ },
35279
35293
  }
35280
35294
  # The version of a generated dependency at test runtime may differ from the version used during generation.
35281
35295
  # Delete any fields which are not present in the current runtime dependency
@@ -35497,6 +35511,13 @@ def test_update_repository_rest_call_success(request_type):
35497
35511
  "license_": "license__value",
35498
35512
  "readme": "readme_value",
35499
35513
  },
35514
+ "service_account": "service_account_value",
35515
+ "scan_config": {
35516
+ "secret_scan_config": {
35517
+ "enabled": True,
35518
+ "inspect_template": "inspect_template_value",
35519
+ }
35520
+ },
35500
35521
  }
35501
35522
  # The version of a generated dependency at test runtime may differ from the version used during generation.
35502
35523
  # Delete any fields which are not present in the current runtime dependency
@@ -44983,10 +45004,38 @@ def test_parse_hook_path():
44983
45004
  assert expected == actual
44984
45005
 
44985
45006
 
44986
- def test_instance_path():
45007
+ def test_inspect_template_path():
44987
45008
  project = "cuttlefish"
44988
45009
  location = "mussel"
44989
- instance = "winkle"
45010
+ inspect_template = "winkle"
45011
+ expected = "projects/{project}/locations/{location}/inspectTemplates/{inspect_template}".format(
45012
+ project=project,
45013
+ location=location,
45014
+ inspect_template=inspect_template,
45015
+ )
45016
+ actual = SecureSourceManagerClient.inspect_template_path(
45017
+ project, location, inspect_template
45018
+ )
45019
+ assert expected == actual
45020
+
45021
+
45022
+ def test_parse_inspect_template_path():
45023
+ expected = {
45024
+ "project": "nautilus",
45025
+ "location": "scallop",
45026
+ "inspect_template": "abalone",
45027
+ }
45028
+ path = SecureSourceManagerClient.inspect_template_path(**expected)
45029
+
45030
+ # Check that the path construction is reversible.
45031
+ actual = SecureSourceManagerClient.parse_inspect_template_path(path)
45032
+ assert expected == actual
45033
+
45034
+
45035
+ def test_instance_path():
45036
+ project = "squid"
45037
+ location = "clam"
45038
+ instance = "whelk"
44990
45039
  expected = "projects/{project}/locations/{location}/instances/{instance}".format(
44991
45040
  project=project,
44992
45041
  location=location,
@@ -44998,9 +45047,9 @@ def test_instance_path():
44998
45047
 
44999
45048
  def test_parse_instance_path():
45000
45049
  expected = {
45001
- "project": "nautilus",
45002
- "location": "scallop",
45003
- "instance": "abalone",
45050
+ "project": "octopus",
45051
+ "location": "oyster",
45052
+ "instance": "nudibranch",
45004
45053
  }
45005
45054
  path = SecureSourceManagerClient.instance_path(**expected)
45006
45055
 
@@ -45010,10 +45059,10 @@ def test_parse_instance_path():
45010
45059
 
45011
45060
 
45012
45061
  def test_issue_path():
45013
- project = "squid"
45014
- location = "clam"
45015
- repository = "whelk"
45016
- issue = "octopus"
45062
+ project = "cuttlefish"
45063
+ location = "mussel"
45064
+ repository = "winkle"
45065
+ issue = "nautilus"
45017
45066
  expected = "projects/{project}/locations/{location}/repositories/{repository}/issues/{issue}".format(
45018
45067
  project=project,
45019
45068
  location=location,
@@ -45026,10 +45075,10 @@ def test_issue_path():
45026
45075
 
45027
45076
  def test_parse_issue_path():
45028
45077
  expected = {
45029
- "project": "oyster",
45030
- "location": "nudibranch",
45031
- "repository": "cuttlefish",
45032
- "issue": "mussel",
45078
+ "project": "scallop",
45079
+ "location": "abalone",
45080
+ "repository": "squid",
45081
+ "issue": "clam",
45033
45082
  }
45034
45083
  path = SecureSourceManagerClient.issue_path(**expected)
45035
45084
 
@@ -45039,11 +45088,11 @@ def test_parse_issue_path():
45039
45088
 
45040
45089
 
45041
45090
  def test_issue_comment_path():
45042
- project = "winkle"
45043
- location = "nautilus"
45044
- repository = "scallop"
45045
- issue = "abalone"
45046
- comment = "squid"
45091
+ project = "whelk"
45092
+ location = "octopus"
45093
+ repository = "oyster"
45094
+ issue = "nudibranch"
45095
+ comment = "cuttlefish"
45047
45096
  expected = "projects/{project}/locations/{location}/repositories/{repository}/issues/{issue}/issueComments/{comment}".format(
45048
45097
  project=project,
45049
45098
  location=location,
@@ -45059,11 +45108,11 @@ def test_issue_comment_path():
45059
45108
 
45060
45109
  def test_parse_issue_comment_path():
45061
45110
  expected = {
45062
- "project": "clam",
45063
- "location": "whelk",
45064
- "repository": "octopus",
45065
- "issue": "oyster",
45066
- "comment": "nudibranch",
45111
+ "project": "mussel",
45112
+ "location": "winkle",
45113
+ "repository": "nautilus",
45114
+ "issue": "scallop",
45115
+ "comment": "abalone",
45067
45116
  }
45068
45117
  path = SecureSourceManagerClient.issue_comment_path(**expected)
45069
45118
 
@@ -45073,10 +45122,10 @@ def test_parse_issue_comment_path():
45073
45122
 
45074
45123
 
45075
45124
  def test_pull_request_path():
45076
- project = "cuttlefish"
45077
- location = "mussel"
45078
- repository = "winkle"
45079
- pull_request = "nautilus"
45125
+ project = "squid"
45126
+ location = "clam"
45127
+ repository = "whelk"
45128
+ pull_request = "octopus"
45080
45129
  expected = "projects/{project}/locations/{location}/repositories/{repository}/pullRequests/{pull_request}".format(
45081
45130
  project=project,
45082
45131
  location=location,
@@ -45091,10 +45140,10 @@ def test_pull_request_path():
45091
45140
 
45092
45141
  def test_parse_pull_request_path():
45093
45142
  expected = {
45094
- "project": "scallop",
45095
- "location": "abalone",
45096
- "repository": "squid",
45097
- "pull_request": "clam",
45143
+ "project": "oyster",
45144
+ "location": "nudibranch",
45145
+ "repository": "cuttlefish",
45146
+ "pull_request": "mussel",
45098
45147
  }
45099
45148
  path = SecureSourceManagerClient.pull_request_path(**expected)
45100
45149
 
@@ -45104,11 +45153,11 @@ def test_parse_pull_request_path():
45104
45153
 
45105
45154
 
45106
45155
  def test_pull_request_comment_path():
45107
- project = "whelk"
45108
- location = "octopus"
45109
- repository = "oyster"
45110
- pull_request = "nudibranch"
45111
- comment = "cuttlefish"
45156
+ project = "winkle"
45157
+ location = "nautilus"
45158
+ repository = "scallop"
45159
+ pull_request = "abalone"
45160
+ comment = "squid"
45112
45161
  expected = "projects/{project}/locations/{location}/repositories/{repository}/pullRequests/{pull_request}/pullRequestComments/{comment}".format(
45113
45162
  project=project,
45114
45163
  location=location,
@@ -45124,11 +45173,11 @@ def test_pull_request_comment_path():
45124
45173
 
45125
45174
  def test_parse_pull_request_comment_path():
45126
45175
  expected = {
45127
- "project": "mussel",
45128
- "location": "winkle",
45129
- "repository": "nautilus",
45130
- "pull_request": "scallop",
45131
- "comment": "abalone",
45176
+ "project": "clam",
45177
+ "location": "whelk",
45178
+ "repository": "octopus",
45179
+ "pull_request": "oyster",
45180
+ "comment": "nudibranch",
45132
45181
  }
45133
45182
  path = SecureSourceManagerClient.pull_request_comment_path(**expected)
45134
45183
 
@@ -45138,9 +45187,9 @@ def test_parse_pull_request_comment_path():
45138
45187
 
45139
45188
 
45140
45189
  def test_repository_path():
45141
- project = "squid"
45142
- location = "clam"
45143
- repository = "whelk"
45190
+ project = "cuttlefish"
45191
+ location = "mussel"
45192
+ repository = "winkle"
45144
45193
  expected = (
45145
45194
  "projects/{project}/locations/{location}/repositories/{repository}".format(
45146
45195
  project=project,
@@ -45154,9 +45203,9 @@ def test_repository_path():
45154
45203
 
45155
45204
  def test_parse_repository_path():
45156
45205
  expected = {
45157
- "project": "octopus",
45158
- "location": "oyster",
45159
- "repository": "nudibranch",
45206
+ "project": "nautilus",
45207
+ "location": "scallop",
45208
+ "repository": "abalone",
45160
45209
  }
45161
45210
  path = SecureSourceManagerClient.repository_path(**expected)
45162
45211
 
@@ -45165,10 +45214,33 @@ def test_parse_repository_path():
45165
45214
  assert expected == actual
45166
45215
 
45167
45216
 
45217
+ def test_service_account_path():
45218
+ project = "squid"
45219
+ service_account = "clam"
45220
+ expected = "projects/{project}/serviceAccounts/{service_account}".format(
45221
+ project=project,
45222
+ service_account=service_account,
45223
+ )
45224
+ actual = SecureSourceManagerClient.service_account_path(project, service_account)
45225
+ assert expected == actual
45226
+
45227
+
45228
+ def test_parse_service_account_path():
45229
+ expected = {
45230
+ "project": "whelk",
45231
+ "service_account": "octopus",
45232
+ }
45233
+ path = SecureSourceManagerClient.service_account_path(**expected)
45234
+
45235
+ # Check that the path construction is reversible.
45236
+ actual = SecureSourceManagerClient.parse_service_account_path(path)
45237
+ assert expected == actual
45238
+
45239
+
45168
45240
  def test_service_attachment_path():
45169
- project = "cuttlefish"
45170
- region = "mussel"
45171
- service_attachment = "winkle"
45241
+ project = "oyster"
45242
+ region = "nudibranch"
45243
+ service_attachment = "cuttlefish"
45172
45244
  expected = "projects/{project}/regions/{region}/serviceAttachments/{service_attachment}".format(
45173
45245
  project=project,
45174
45246
  region=region,
@@ -45182,9 +45254,9 @@ def test_service_attachment_path():
45182
45254
 
45183
45255
  def test_parse_service_attachment_path():
45184
45256
  expected = {
45185
- "project": "nautilus",
45186
- "region": "scallop",
45187
- "service_attachment": "abalone",
45257
+ "project": "mussel",
45258
+ "region": "winkle",
45259
+ "service_attachment": "nautilus",
45188
45260
  }
45189
45261
  path = SecureSourceManagerClient.service_attachment_path(**expected)
45190
45262
 
@@ -45194,7 +45266,7 @@ def test_parse_service_attachment_path():
45194
45266
 
45195
45267
 
45196
45268
  def test_common_billing_account_path():
45197
- billing_account = "squid"
45269
+ billing_account = "scallop"
45198
45270
  expected = "billingAccounts/{billing_account}".format(
45199
45271
  billing_account=billing_account,
45200
45272
  )
@@ -45204,7 +45276,7 @@ def test_common_billing_account_path():
45204
45276
 
45205
45277
  def test_parse_common_billing_account_path():
45206
45278
  expected = {
45207
- "billing_account": "clam",
45279
+ "billing_account": "abalone",
45208
45280
  }
45209
45281
  path = SecureSourceManagerClient.common_billing_account_path(**expected)
45210
45282
 
@@ -45214,7 +45286,7 @@ def test_parse_common_billing_account_path():
45214
45286
 
45215
45287
 
45216
45288
  def test_common_folder_path():
45217
- folder = "whelk"
45289
+ folder = "squid"
45218
45290
  expected = "folders/{folder}".format(
45219
45291
  folder=folder,
45220
45292
  )
@@ -45224,7 +45296,7 @@ def test_common_folder_path():
45224
45296
 
45225
45297
  def test_parse_common_folder_path():
45226
45298
  expected = {
45227
- "folder": "octopus",
45299
+ "folder": "clam",
45228
45300
  }
45229
45301
  path = SecureSourceManagerClient.common_folder_path(**expected)
45230
45302
 
@@ -45234,7 +45306,7 @@ def test_parse_common_folder_path():
45234
45306
 
45235
45307
 
45236
45308
  def test_common_organization_path():
45237
- organization = "oyster"
45309
+ organization = "whelk"
45238
45310
  expected = "organizations/{organization}".format(
45239
45311
  organization=organization,
45240
45312
  )
@@ -45244,7 +45316,7 @@ def test_common_organization_path():
45244
45316
 
45245
45317
  def test_parse_common_organization_path():
45246
45318
  expected = {
45247
- "organization": "nudibranch",
45319
+ "organization": "octopus",
45248
45320
  }
45249
45321
  path = SecureSourceManagerClient.common_organization_path(**expected)
45250
45322
 
@@ -45254,7 +45326,7 @@ def test_parse_common_organization_path():
45254
45326
 
45255
45327
 
45256
45328
  def test_common_project_path():
45257
- project = "cuttlefish"
45329
+ project = "oyster"
45258
45330
  expected = "projects/{project}".format(
45259
45331
  project=project,
45260
45332
  )
@@ -45264,7 +45336,7 @@ def test_common_project_path():
45264
45336
 
45265
45337
  def test_parse_common_project_path():
45266
45338
  expected = {
45267
- "project": "mussel",
45339
+ "project": "nudibranch",
45268
45340
  }
45269
45341
  path = SecureSourceManagerClient.common_project_path(**expected)
45270
45342
 
@@ -45274,8 +45346,8 @@ def test_parse_common_project_path():
45274
45346
 
45275
45347
 
45276
45348
  def test_common_location_path():
45277
- project = "winkle"
45278
- location = "nautilus"
45349
+ project = "cuttlefish"
45350
+ location = "mussel"
45279
45351
  expected = "projects/{project}/locations/{location}".format(
45280
45352
  project=project,
45281
45353
  location=location,
@@ -45286,8 +45358,8 @@ def test_common_location_path():
45286
45358
 
45287
45359
  def test_parse_common_location_path():
45288
45360
  expected = {
45289
- "project": "scallop",
45290
- "location": "abalone",
45361
+ "project": "winkle",
45362
+ "location": "nautilus",
45291
45363
  }
45292
45364
  path = SecureSourceManagerClient.common_location_path(**expected)
45293
45365
 
@@ -1,12 +0,0 @@
1
- google-api-core[grpc]<3.0.0,>=2.17.1
2
- google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
3
- grpcio<2.0.0,>=1.59.0
4
- proto-plus<2.0.0,>=1.22.3
5
- protobuf<8.0.0,>=4.25.8
6
- grpc-google-iam-v1<1.0.0,>=0.14.0
7
-
8
- [:python_version >= "3.13"]
9
- proto-plus<2.0.0,>=1.25.0
10
-
11
- [:python_version >= "3.14"]
12
- grpcio<2.0.0,>=1.75.1