capo-cloudcontrol 0.1.0__py3-none-any.whl

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 (107) hide show
  1. capo_cloudcontrol/__init__.py +72 -0
  2. capo_cloudcontrol/_async.py +25 -0
  3. capo_cloudcontrol/_auth/_identity.py +16 -0
  4. capo_cloudcontrol/_auth/_providers.py +886 -0
  5. capo_cloudcontrol/_auth/_signers.py +88 -0
  6. capo_cloudcontrol/_auth/_sigv4.py +434 -0
  7. capo_cloudcontrol/_auth/_zapros_handler.py +80 -0
  8. capo_cloudcontrol/_iter.py +113 -0
  9. capo_cloudcontrol/_operations/cloud_api_service/cancel_resource_request.py +155 -0
  10. capo_cloudcontrol/_operations/cloud_api_service/create_resource.py +240 -0
  11. capo_cloudcontrol/_operations/cloud_api_service/delete_resource.py +240 -0
  12. capo_cloudcontrol/_operations/cloud_api_service/get_resource.py +230 -0
  13. capo_cloudcontrol/_operations/cloud_api_service/get_resource_request_status.py +151 -0
  14. capo_cloudcontrol/_operations/cloud_api_service/list_resource_requests.py +146 -0
  15. capo_cloudcontrol/_operations/cloud_api_service/list_resources.py +230 -0
  16. capo_cloudcontrol/_operations/cloud_api_service/update_resource.py +240 -0
  17. capo_cloudcontrol/_pagination.py +21 -0
  18. capo_cloudcontrol/_protocol/__init__.py +1 -0
  19. capo_cloudcontrol/_protocol/errors.py +93 -0
  20. capo_cloudcontrol/_protocol/eventstream.py +238 -0
  21. capo_cloudcontrol/_protocol/serialize.py +47 -0
  22. capo_cloudcontrol/_protocol/xml.py +33 -0
  23. capo_cloudcontrol/_rule_engine/__init__.py +0 -0
  24. capo_cloudcontrol/_rule_engine/_aws_partition.py +160 -0
  25. capo_cloudcontrol/_rule_engine/_endpoint_rule_set.py +138 -0
  26. capo_cloudcontrol/_rule_engine/_endpoint_runtime.py +389 -0
  27. capo_cloudcontrol/_services/_aws_config.py +160 -0
  28. capo_cloudcontrol/_services/_pipeline.py +198 -0
  29. capo_cloudcontrol/_services/async_cloud_control.py +772 -0
  30. capo_cloudcontrol/_services/cloud_control.py +764 -0
  31. capo_cloudcontrol/errors/__init__.py +74 -0
  32. capo_cloudcontrol/errors/_base.py +94 -0
  33. capo_cloudcontrol/errors/already_exists_exception.py +51 -0
  34. capo_cloudcontrol/errors/client_token_conflict_exception.py +51 -0
  35. capo_cloudcontrol/errors/concurrent_modification_exception.py +53 -0
  36. capo_cloudcontrol/errors/concurrent_operation_exception.py +51 -0
  37. capo_cloudcontrol/errors/general_service_exception.py +51 -0
  38. capo_cloudcontrol/errors/handler_failure_exception.py +51 -0
  39. capo_cloudcontrol/errors/handler_internal_failure_exception.py +53 -0
  40. capo_cloudcontrol/errors/invalid_credentials_exception.py +51 -0
  41. capo_cloudcontrol/errors/invalid_request_exception.py +51 -0
  42. capo_cloudcontrol/errors/network_failure_exception.py +51 -0
  43. capo_cloudcontrol/errors/not_stabilized_exception.py +51 -0
  44. capo_cloudcontrol/errors/not_updatable_exception.py +51 -0
  45. capo_cloudcontrol/errors/private_type_exception.py +51 -0
  46. capo_cloudcontrol/errors/request_token_not_found_exception.py +53 -0
  47. capo_cloudcontrol/errors/resource_conflict_exception.py +51 -0
  48. capo_cloudcontrol/errors/resource_not_found_exception.py +51 -0
  49. capo_cloudcontrol/errors/service_internal_error_exception.py +53 -0
  50. capo_cloudcontrol/errors/service_limit_exceeded_exception.py +53 -0
  51. capo_cloudcontrol/errors/throttling_exception.py +51 -0
  52. capo_cloudcontrol/errors/type_not_found_exception.py +51 -0
  53. capo_cloudcontrol/errors/unsupported_action_exception.py +51 -0
  54. capo_cloudcontrol/py.typed +0 -0
  55. capo_cloudcontrol/types/_prelude/blob.py +12 -0
  56. capo_cloudcontrol/types/_prelude/timestamp.py +17 -0
  57. capo_cloudcontrol/types/cancel_resource_request_input.py +31 -0
  58. capo_cloudcontrol/types/cancel_resource_request_output.py +39 -0
  59. capo_cloudcontrol/types/client_token.py +5 -0
  60. capo_cloudcontrol/types/create_resource_input.py +62 -0
  61. capo_cloudcontrol/types/create_resource_output.py +40 -0
  62. capo_cloudcontrol/types/delete_resource_input.py +62 -0
  63. capo_cloudcontrol/types/delete_resource_output.py +40 -0
  64. capo_cloudcontrol/types/error_message.py +5 -0
  65. capo_cloudcontrol/types/get_resource_input.py +55 -0
  66. capo_cloudcontrol/types/get_resource_output.py +48 -0
  67. capo_cloudcontrol/types/get_resource_request_status_input.py +33 -0
  68. capo_cloudcontrol/types/get_resource_request_status_output.py +61 -0
  69. capo_cloudcontrol/types/handler_error_code.py +5 -0
  70. capo_cloudcontrol/types/handler_next_token.py +5 -0
  71. capo_cloudcontrol/types/hook_failure_mode.py +5 -0
  72. capo_cloudcontrol/types/hook_invocation_point.py +5 -0
  73. capo_cloudcontrol/types/hook_progress_event.py +95 -0
  74. capo_cloudcontrol/types/hook_status.py +5 -0
  75. capo_cloudcontrol/types/hook_type_arn.py +5 -0
  76. capo_cloudcontrol/types/hooks_progress_event.py +35 -0
  77. capo_cloudcontrol/types/identifier.py +5 -0
  78. capo_cloudcontrol/types/list_resource_requests_input.py +56 -0
  79. capo_cloudcontrol/types/list_resource_requests_output.py +49 -0
  80. capo_cloudcontrol/types/list_resources_input.py +70 -0
  81. capo_cloudcontrol/types/list_resources_output.py +58 -0
  82. capo_cloudcontrol/types/max_results.py +5 -0
  83. capo_cloudcontrol/types/next_token.py +5 -0
  84. capo_cloudcontrol/types/operation.py +5 -0
  85. capo_cloudcontrol/types/operation_status.py +5 -0
  86. capo_cloudcontrol/types/operation_statuses.py +19 -0
  87. capo_cloudcontrol/types/operations.py +17 -0
  88. capo_cloudcontrol/types/patch_document.py +6 -0
  89. capo_cloudcontrol/types/progress_event.py +118 -0
  90. capo_cloudcontrol/types/properties.py +6 -0
  91. capo_cloudcontrol/types/request_token.py +5 -0
  92. capo_cloudcontrol/types/resource_description.py +35 -0
  93. capo_cloudcontrol/types/resource_descriptions.py +35 -0
  94. capo_cloudcontrol/types/resource_request_status_filter.py +57 -0
  95. capo_cloudcontrol/types/resource_request_status_summaries.py +33 -0
  96. capo_cloudcontrol/types/role_arn.py +5 -0
  97. capo_cloudcontrol/types/status_message.py +5 -0
  98. capo_cloudcontrol/types/timestamp.py +20 -0
  99. capo_cloudcontrol/types/type_name.py +5 -0
  100. capo_cloudcontrol/types/type_version_id.py +5 -0
  101. capo_cloudcontrol/types/update_resource_input.py +70 -0
  102. capo_cloudcontrol/types/update_resource_output.py +40 -0
  103. capo_cloudcontrol-0.1.0.dist-info/METADATA +102 -0
  104. capo_cloudcontrol-0.1.0.dist-info/RECORD +107 -0
  105. capo_cloudcontrol-0.1.0.dist-info/WHEEL +5 -0
  106. capo_cloudcontrol-0.1.0.dist-info/licenses/LICENSE +21 -0
  107. capo_cloudcontrol-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,5 @@
1
+ """Generated from Smithy shape ``com.amazonaws.cloudcontrol#TypeVersionId``."""
2
+
3
+ from typing import TypeAlias
4
+
5
+ TypeVersionId: TypeAlias = str
@@ -0,0 +1,70 @@
1
+ """Generated from Smithy shape ``com.amazonaws.cloudcontrol#UpdateResourceInput``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import NotRequired, TypedDict
6
+
7
+ from capo_cloudcontrol.errors import DeserializationError
8
+
9
+ if TYPE_CHECKING:
10
+ import capo_cloudcontrol.types.client_token
11
+ import capo_cloudcontrol.types.identifier
12
+ import capo_cloudcontrol.types.patch_document
13
+ import capo_cloudcontrol.types.role_arn
14
+ import capo_cloudcontrol.types.type_name
15
+ import capo_cloudcontrol.types.type_version_id
16
+
17
+
18
+ class UpdateResourceInput(TypedDict, closed=True):
19
+ type_name: "capo_cloudcontrol.types.type_name.TypeName"
20
+ """<p>The name of the resource type.</p>"""
21
+ type_version_id: NotRequired[
22
+ "capo_cloudcontrol.types.type_version_id.TypeVersionId"
23
+ ]
24
+ """<p>For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version.</p>"""
25
+ role_arn: NotRequired["capo_cloudcontrol.types.role_arn.RoleArn"]
26
+ r"""<p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the <code> <a href=\"https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-handlers\">handlers</a> </code> section of the <a href=\"https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html\">resource type definition schema</a>.</p> <p>If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-permissions\">Specifying credentials</a> in the <i>Amazon Web Services Cloud Control API User Guide</i>.</p>"""
27
+ client_token: NotRequired["capo_cloudcontrol.types.client_token.ClientToken"]
28
+ r"""<p>A unique identifier to ensure the idempotency of the resource request. As a best practice, specify this token to ensure idempotency, so that Amazon Web Services Cloud Control API can accurately distinguish between request retries and new resource requests. You might retry a resource request to ensure that it was successfully received.</p> <p>A client token is valid for 36 hours once used. After that, a resource request with the same client token is treated as a new request.</p> <p>If you do not specify a client token, one is generated for inclusion in the request.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-idempotency\">Ensuring resource operation requests are unique</a> in the <i>Amazon Web Services Cloud Control API User Guide</i>.</p>"""
29
+ identifier: "capo_cloudcontrol.types.identifier.Identifier"
30
+ r"""<p>The identifier for the resource.</p> <p>You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.</p> <p>For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values <i>in the order they are specified</i> in the primary identifier definition, separated by <code>|</code>.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-identifier.html\">Identifying resources</a> in the <i>Amazon Web Services Cloud Control API User Guide</i>.</p>"""
31
+ patch_document: "capo_cloudcontrol.types.patch_document.PatchDocument"
32
+ r"""<p>A JavaScript Object Notation (JSON) document listing the patch operations that represent the updates to apply to the current resource properties. For details, see <a href=\"https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-update.html#resource-operations-update-patch\">Composing the patch document</a> in the <i>Amazon Web Services Cloud Control API User Guide</i>.</p>"""
33
+
34
+
35
+ # --- awsJson1_0 ser/de ---
36
+ def serialize_aws_json_1_0(value: UpdateResourceInput) -> dict:
37
+ out: dict = {}
38
+ out["TypeName"] = value["type_name"]
39
+ if "type_version_id" in value:
40
+ out["TypeVersionId"] = value["type_version_id"]
41
+ if "role_arn" in value:
42
+ out["RoleArn"] = value["role_arn"]
43
+ if "client_token" in value:
44
+ out["ClientToken"] = value["client_token"]
45
+ out["Identifier"] = value["identifier"]
46
+ out["PatchDocument"] = value["patch_document"]
47
+ return out
48
+
49
+
50
+ def deserialize_aws_json_1_0(data: dict) -> UpdateResourceInput:
51
+ out: UpdateResourceInput = {} # type: ignore[typeddict-item]
52
+ if data.get("TypeName") is not None:
53
+ out["type_name"] = data["TypeName"]
54
+ else:
55
+ raise DeserializationError("UpdateResourceInput.type_name required")
56
+ if data.get("TypeVersionId") is not None:
57
+ out["type_version_id"] = data["TypeVersionId"]
58
+ if data.get("RoleArn") is not None:
59
+ out["role_arn"] = data["RoleArn"]
60
+ if data.get("ClientToken") is not None:
61
+ out["client_token"] = data["ClientToken"]
62
+ if data.get("Identifier") is not None:
63
+ out["identifier"] = data["Identifier"]
64
+ else:
65
+ raise DeserializationError("UpdateResourceInput.identifier required")
66
+ if data.get("PatchDocument") is not None:
67
+ out["patch_document"] = data["PatchDocument"]
68
+ else:
69
+ raise DeserializationError("UpdateResourceInput.patch_document required")
70
+ return out
@@ -0,0 +1,40 @@
1
+ """Generated from Smithy shape ``com.amazonaws.cloudcontrol#UpdateResourceOutput``."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from typing_extensions import NotRequired, TypedDict
6
+
7
+ if TYPE_CHECKING:
8
+ import capo_cloudcontrol.types.progress_event
9
+
10
+
11
+ class UpdateResourceOutput(TypedDict, closed=True):
12
+ progress_event: NotRequired["capo_cloudcontrol.types.progress_event.ProgressEvent"]
13
+ r"""<p>Represents the current status of the resource update request.</p> <p>Use the <code>RequestToken</code> of the <code>ProgressEvent</code> with <a href=\"https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html\">GetResourceRequestStatus</a> to return the current status of a resource operation request.</p>"""
14
+
15
+
16
+ # --- awsJson1_0 ser/de ---
17
+ def serialize_aws_json_1_0(value: UpdateResourceOutput) -> dict:
18
+ out: dict = {}
19
+ if "progress_event" in value:
20
+ import capo_cloudcontrol.types.progress_event
21
+
22
+ out["ProgressEvent"] = (
23
+ capo_cloudcontrol.types.progress_event.serialize_aws_json_1_0(
24
+ value["progress_event"]
25
+ )
26
+ )
27
+ return out
28
+
29
+
30
+ def deserialize_aws_json_1_0(data: dict) -> UpdateResourceOutput:
31
+ out: UpdateResourceOutput = {} # type: ignore[typeddict-item]
32
+ if data.get("ProgressEvent") is not None:
33
+ import capo_cloudcontrol.types.progress_event
34
+
35
+ out["progress_event"] = (
36
+ capo_cloudcontrol.types.progress_event.deserialize_aws_json_1_0(
37
+ data["ProgressEvent"]
38
+ )
39
+ )
40
+ return out
@@ -0,0 +1,102 @@
1
+ Metadata-Version: 2.4
2
+ Name: capo-cloudcontrol
3
+ Version: 0.1.0
4
+ Summary: Python SDK for Cloudcontrol.
5
+ Classifier: Development Status :: 4 - Beta
6
+ Classifier: Intended Audience :: Developers
7
+ Classifier: License :: OSI Approved :: MIT License
8
+ Classifier: Operating System :: OS Independent
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Classifier: Topic :: Software Development :: Code Generators
16
+ Classifier: Typing :: Typed
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: jmespath>=1.0
21
+ Requires-Dist: zapros>=0.13.0
22
+ Provides-Extra: sso
23
+ Requires-Dist: capo-sso>=0.2.0; extra == "sso"
24
+ Requires-Dist: capo-sso-oidc>=0.2.0; extra == "sso"
25
+ Requires-Dist: capo-sts>=0.3.0; extra == "sso"
26
+ Dynamic: license-file
27
+
28
+ # Getting Started
29
+
30
+ ## Installation
31
+
32
+ ```
33
+ pip install capo-cloudcontrol
34
+ ```
35
+
36
+ ## Usage
37
+
38
+ ```python
39
+ from capo_cloudcontrol import AsyncCloudControlClient
40
+
41
+
42
+ async def main():
43
+ async with AsyncCloudControlClient() as cloud_control:
44
+ # Example: call the cancel_resource_request operation
45
+ response = await cloud_control.cancel_resource_request()
46
+ print(response["progress_event"])
47
+ ```
48
+
49
+ ## Pagination
50
+
51
+ Some operations in this SDK support pagination. If the operation supports pagination it will have an `iter_` prefixed method that returns an async iterator.
52
+
53
+ ```python
54
+ from capo_cloudcontrol import AsyncCloudControlClient
55
+
56
+
57
+ async def main():
58
+ async with AsyncCloudControlClient() as cloud_control:
59
+ # Example: paginate over list_resource_requests
60
+ async for item in cloud_control.iter_list_resource_requests():
61
+ print(item)
62
+ ```
63
+
64
+ ## Error Handling
65
+
66
+ The SDK raises exceptions for errors returned by the API. Catch them to handle failures gracefully.
67
+
68
+ ```python
69
+ from capo_cloudcontrol import AsyncCloudControlClient
70
+ from capo_cloudcontrol.error import ConcurrentModificationException
71
+
72
+
73
+ async def main():
74
+ async with AsyncCloudControlClient() as cloud_control:
75
+ try:
76
+ await cloud_control.cancel_resource_request()
77
+ except ConcurrentModificationException as e:
78
+ print(f"Error: {e}")
79
+ print(e.data) # additional error data
80
+ ```
81
+
82
+ ## Retrying
83
+
84
+ The SDK retries failed operations automatically. Retry behaviour follows the Smithy specification: errors are retried based on their `is_retryable` and `is_throttling_error` attributes. Throttling errors use a longer base delay. Network-level failures (connection errors and timeouts) are also retried. Non-retryable errors, such as client errors without the `@retryable` trait, are raised immediately without further attempts.
85
+
86
+ The number of attempts defaults to 3 and can be changed at the client level via `retry_max_attempts`, or per call via `config_overrides`.
87
+
88
+ ```python
89
+ from capo_cloudcontrol import AsyncCloudControlClient
90
+
91
+
92
+ async def main():
93
+ async with AsyncCloudControlClient() as cloud_control:
94
+ # Default: 3 attempts for every operation
95
+ response = await cloud_control.cancel_resource_request()
96
+
97
+ # Override per operation
98
+ response = await cloud_control.cancel_resource_request(config_overrides={"retry_max_attempts": 5})
99
+
100
+ # Disable retries for this call
101
+ response = await cloud_control.cancel_resource_request(config_overrides={"retry_max_attempts": 1})
102
+ ```
@@ -0,0 +1,107 @@
1
+ capo_cloudcontrol/__init__.py,sha256=MOD2M52GrCCzcSU9oNl0eNuzYJGz5P2zMPavcZYrMNk,2177
2
+ capo_cloudcontrol/_async.py,sha256=h6ySvzTgw6Vz53pgCi0YvxHurRgLsjGXXfskGimI4AY,451
3
+ capo_cloudcontrol/_iter.py,sha256=T_s-wDvQwcKN5JpnWCBFyyXXGsbAwQisFSSK5RPKDTA,3165
4
+ capo_cloudcontrol/_pagination.py,sha256=EihZfcSTQN5NRCcdJ26KcpYTUGzctwP6Iz9jYBFntWg,698
5
+ capo_cloudcontrol/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ capo_cloudcontrol/_auth/_identity.py,sha256=ONv_NxU5ShEezSRyGAKGaxAn0R1HLGktZqKrL7xsPZw,326
7
+ capo_cloudcontrol/_auth/_providers.py,sha256=Kc5BZz_krKi-p9a3ViG09l73JPXOQhrus_7igTGOS1o,33688
8
+ capo_cloudcontrol/_auth/_signers.py,sha256=4_oKUHKvSw-8iOcdz-Uryh434WzS5qd26ZUkBXqqlQw,3204
9
+ capo_cloudcontrol/_auth/_sigv4.py,sha256=YfqyANVhhQOVahg3VjKTtiBzR8bkSGxY6415MkS9g0A,14885
10
+ capo_cloudcontrol/_auth/_zapros_handler.py,sha256=8xdfKJH-rJB2fFNajj7v5JlSn06u9ZUoOmgqUh2jptA,2978
11
+ capo_cloudcontrol/_operations/cloud_api_service/cancel_resource_request.py,sha256=MvD9Of4CTNzAhPA5k8hIXhEzLE25HpzkwDTjKPlmDw8,6070
12
+ capo_cloudcontrol/_operations/cloud_api_service/create_resource.py,sha256=GNrOxRlHTXlHRHM0zen46es3Ymm-tT3WdmaE-Ta8Vx4,10261
13
+ capo_cloudcontrol/_operations/cloud_api_service/delete_resource.py,sha256=Fody1THPT-K5Y-LOUyR2RNijwG1LUWcoYRdatzLP1cM,10261
14
+ capo_cloudcontrol/_operations/cloud_api_service/get_resource.py,sha256=mb48Dp_e_9suJJ4lKNbSwSYmPO21wL7NELqMNJ4N4EI,9636
15
+ capo_cloudcontrol/_operations/cloud_api_service/get_resource_request_status.py,sha256=_1sZSsihk13RN9Q_-WncF34wa5BpH9l9FVlmQtk1xF4,5933
16
+ capo_cloudcontrol/_operations/cloud_api_service/list_resource_requests.py,sha256=4InQOz4piwKxg8piohe9watmMk-XWypWFLVzNoeZhbM,5556
17
+ capo_cloudcontrol/_operations/cloud_api_service/list_resources.py,sha256=6XInCKzD0Q786hfHqB2uOjq_N4nrlTwllBTNbqd5mx4,9691
18
+ capo_cloudcontrol/_operations/cloud_api_service/update_resource.py,sha256=ZkPaEBU4FlK57IKRIns9Dxo_ux10iWKIxNMnnw2A9Eo,10261
19
+ capo_cloudcontrol/_protocol/__init__.py,sha256=MSIVV1jVmxqtMyjeNhffomlwpuVB7-tzRK4rdPDFCG8,61
20
+ capo_cloudcontrol/_protocol/errors.py,sha256=LGBCYv4hreZJWCslL1jZMzcsy9_38EYIYVRyeyrPtg8,2914
21
+ capo_cloudcontrol/_protocol/eventstream.py,sha256=nlzm-kxm1tAfwyBWYmKChX0jYOht3R4aodi6n92NXqQ,8741
22
+ capo_cloudcontrol/_protocol/serialize.py,sha256=9yv7gMXl03SdUzfWKUvXs-jr9uZmWDLXBM5J44azkUs,1348
23
+ capo_cloudcontrol/_protocol/xml.py,sha256=D4VZOoKjh1hoV1HKUVoA6Hg7aKKfUNenyRKTSTjCQFs,1062
24
+ capo_cloudcontrol/_rule_engine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ capo_cloudcontrol/_rule_engine/_aws_partition.py,sha256=gxziWLrEyQKXSmsQ-skA8DdYWrHXAURuxBDhZPqMNb8,5555
26
+ capo_cloudcontrol/_rule_engine/_endpoint_rule_set.py,sha256=yGMAdhAA0QjqaNEATsRdE4tioK7u2ktVhArAnglHVvE,5103
27
+ capo_cloudcontrol/_rule_engine/_endpoint_runtime.py,sha256=o94904z9c3fuJJD7vDrl_k1b9nWLueMKAXB6-OxL1Fs,13797
28
+ capo_cloudcontrol/_services/_aws_config.py,sha256=lzw56A9306JI1GhK1QAu-DibMnPl3TVp_shGkgdhAxU,5208
29
+ capo_cloudcontrol/_services/_pipeline.py,sha256=WxjUVy79ifVJM4r-JT5KLMeJFU3JLao8AdsJ0JVSy0A,5578
30
+ capo_cloudcontrol/_services/async_cloud_control.py,sha256=nG3fYn8LZJ_uWNMXI1sgp8boN6A6lb16iDwLGnS6nvs,66297
31
+ capo_cloudcontrol/_services/cloud_control.py,sha256=K66wuyslu1tvyNYGtXg48-pM7SPLLI0LUF7VNSAy57M,65541
32
+ capo_cloudcontrol/errors/__init__.py,sha256=GjVjoYOBO3qgPBu-f_xhcZNZG9o3zdYb8F8tH1B4rSg,2667
33
+ capo_cloudcontrol/errors/_base.py,sha256=FTyt4gyTwRJYQ9uT5M2tH_I4ssDkA9m6AQud7GfoYkY,3048
34
+ capo_cloudcontrol/errors/already_exists_exception.py,sha256=ZjGQbpTB5uiqsXUCN8iqzzrTjMEdr-TEMHEG23o9WR4,1563
35
+ capo_cloudcontrol/errors/client_token_conflict_exception.py,sha256=V-TdHrrQnJ57Hc5_Y3kmrEp6nKNjiRCSvZHAZEi07H8,1629
36
+ capo_cloudcontrol/errors/concurrent_modification_exception.py,sha256=NiGzRrGJJGiewyWVBG2xQ2_RgZM_XSVzgc4iK0vGxCM,1676
37
+ capo_cloudcontrol/errors/concurrent_operation_exception.py,sha256=aMeIedsbfoxhb1Y7XItA0LzVFn8DjSPHAn3WKN0AjPM,1629
38
+ capo_cloudcontrol/errors/general_service_exception.py,sha256=CGxI7WeJdBfIK0yS2oRYXi8icQy4wR6eTHVngWAcf4w,1574
39
+ capo_cloudcontrol/errors/handler_failure_exception.py,sha256=7PmplHmlvmk87GwegpEXeqIQjjJfPMBihPR6pLkVRSI,1574
40
+ capo_cloudcontrol/errors/handler_internal_failure_exception.py,sha256=M6kIAwkDtMOaXShVcpxy1RCmNd7EniIjP0WCnPY-AMw,1676
41
+ capo_cloudcontrol/errors/invalid_credentials_exception.py,sha256=gvFjVNqvoerlN-7WXZadD8HEgbswk4wp4k0pyb2KRPc,1618
42
+ capo_cloudcontrol/errors/invalid_request_exception.py,sha256=Vp6N66kH8ufHeEFwY_N-ybVKsudIAJz-xGXL4z156rk,1574
43
+ capo_cloudcontrol/errors/network_failure_exception.py,sha256=labVAdXtHjNAUKC3ujRwa1i5MsHT6o5lXCKDzXcgelo,1574
44
+ capo_cloudcontrol/errors/not_stabilized_exception.py,sha256=TrZrftp3klta7dX14boby5WBnf21vQKkHfcmxEvtCSU,1563
45
+ capo_cloudcontrol/errors/not_updatable_exception.py,sha256=MstTmAsGqvB5an237ZTVyWOWiFFdmQVsH9KXvVy6XbU,1552
46
+ capo_cloudcontrol/errors/private_type_exception.py,sha256=IV6vQuBLlUafZ-kCceizSjPB6k-705i-x8tidR-KpPc,1541
47
+ capo_cloudcontrol/errors/request_token_not_found_exception.py,sha256=NK-FzHKhkMhOYWj2aleMWOWqfaMTQalPQpqTTNGDyNE,1654
48
+ capo_cloudcontrol/errors/resource_conflict_exception.py,sha256=0oPkldEYh9ANGQ-5Pl-NRzjzgwtrU_cnoEFq-J0a5Tc,1596
49
+ capo_cloudcontrol/errors/resource_not_found_exception.py,sha256=W1YFGZmySvoLzOj6oLnqDKjiRdXRhHHMrDR_Ua3Tpls,1596
50
+ capo_cloudcontrol/errors/service_internal_error_exception.py,sha256=9ylYX9m7AmDSTARqxnqWdc10g5aTLM6ZU96KyDG96Is,1654
51
+ capo_cloudcontrol/errors/service_limit_exceeded_exception.py,sha256=8YP1y4qac3v8oViEyuzEBsM-3wDVWxbPREvJn3dYz4g,1654
52
+ capo_cloudcontrol/errors/throttling_exception.py,sha256=v5GGBmik6qAW_wUCYsXl2Y2Fegtfs9TBsEDHs6qqqcY,1530
53
+ capo_cloudcontrol/errors/type_not_found_exception.py,sha256=CKzXSXe03imnCaeP0qNtVzBKrzSi36YunC45Eg-VP-w,1552
54
+ capo_cloudcontrol/errors/unsupported_action_exception.py,sha256=CmoN12pYNEL-XICB5jaQisT-LiB5rGYnisZkCkvw2ZI,1607
55
+ capo_cloudcontrol/types/cancel_resource_request_input.py,sha256=iX1n5xFGE68frK6qDqWTvIWx1uQ0fuonZsVJuu4FfNs,1100
56
+ capo_cloudcontrol/types/cancel_resource_request_output.py,sha256=OT2oAd3VsnolszhsAFSX1GCNCtYL5kHfH7vbghivSvQ,1235
57
+ capo_cloudcontrol/types/client_token.py,sha256=fMKJmfoeLssnC54Xk-ENmRyAuHwWavAnUV-_sXKGXZA,138
58
+ capo_cloudcontrol/types/create_resource_input.py,sha256=8LPI6IoUoeY4QjX1PMmRhtVen56DWoX-P3z0Q1lAmxo,5315
59
+ capo_cloudcontrol/types/create_resource_output.py,sha256=4pRE630m-Xd94ciJf4hOeD5Tv5FNZJ6R7wMYoP7PQek,1649
60
+ capo_cloudcontrol/types/delete_resource_input.py,sha256=0QgZsrkRfm1zd1deJ8xEPXrw1PqyhHzhhCmstGt6EsU,5101
61
+ capo_cloudcontrol/types/delete_resource_output.py,sha256=NoVW0pGCIyMyDahu_O5G0kTBUnc9J3AtFVzOE7tV6QE,1649
62
+ capo_cloudcontrol/types/error_message.py,sha256=Pb7sUJeBIPQOZfW51Ii9ZJ7qdLUeylQOMEPbyPKh7x4,140
63
+ capo_cloudcontrol/types/get_resource_input.py,sha256=OCNuYB3xI0ceDq_tE3vqJCUnVAK8UHl_sEnAopO3Erg,3905
64
+ capo_cloudcontrol/types/get_resource_output.py,sha256=yzrP39zdi4J0Zkkd_T0yy37GbuAEyI8LGAXovO5WiO4,1608
65
+ capo_cloudcontrol/types/get_resource_request_status_input.py,sha256=w9JVpv-yQIri-dv6fpIt0k4Hik5WYmU3ame5B-zLldA,1218
66
+ capo_cloudcontrol/types/get_resource_request_status_output.py,sha256=SewQaDgIkF62D2gP9SHaYoVy0H4jffd8-Cc15h5Kh_4,2244
67
+ capo_cloudcontrol/types/handler_error_code.py,sha256=tejfyYBVDa3grlLvlRdfkYz_Y5TeMUTT5HZw26ZVyds,148
68
+ capo_cloudcontrol/types/handler_next_token.py,sha256=b8K067V8_4kKSlB8sXv4DMPqRdkbnzssQPpjCpX-0xs,148
69
+ capo_cloudcontrol/types/hook_failure_mode.py,sha256=TKIU_Gnj3445L9pmRBEcJBdYG3fQ1nuPmOFK9SqRmNk,146
70
+ capo_cloudcontrol/types/hook_invocation_point.py,sha256=pD_vVGDZ_SYWczFIuidjztcVYlA9Ai6jxrk_O7Kn0JU,154
71
+ capo_cloudcontrol/types/hook_progress_event.py,sha256=28xZcDA1ibIuk8jJmdtTS360YgqTqP3gvC6tsh_BxgM,4853
72
+ capo_cloudcontrol/types/hook_status.py,sha256=N-lOgBvK5eXiD6iT9u-qM7XNaJ0lnHDEmzm5O2Yt_hk,136
73
+ capo_cloudcontrol/types/hook_type_arn.py,sha256=dQ0OATduDQs74xJHRrTRu2e8CK3OUlCKS6BT6iiZKJ0,138
74
+ capo_cloudcontrol/types/hooks_progress_event.py,sha256=ZiQ0d5D5ud460l_G81hoJoms0qyHZsesFg4HxOxKzo8,989
75
+ capo_cloudcontrol/types/identifier.py,sha256=r1xlw33zfcLyUN7UX3I93j1FSk7Ubexy8TVwo0TuhBU,136
76
+ capo_cloudcontrol/types/list_resource_requests_input.py,sha256=ajMGfz1rdYul-CSr9tXrMBbgCb2z82bw69sAYMizDqg,2885
77
+ capo_cloudcontrol/types/list_resource_requests_output.py,sha256=Oxf3uXp052eQNtB8b0hkISIMBQisxWYi-KNtGNaJcRo,2210
78
+ capo_cloudcontrol/types/list_resources_input.py,sha256=avZk2fAryEbJN5vuPY0u5sBMHM0fIwlpNX_w3Wp16PI,4232
79
+ capo_cloudcontrol/types/list_resources_output.py,sha256=a7ndkB5aA3B1GpeAleSQK6fDq6pf0av9lSdEF9yCRiI,2414
80
+ capo_cloudcontrol/types/max_results.py,sha256=4AjU7oHWrgG1sNOZ5CBIg_F4hchB4z5NxY8brJjaUhs,136
81
+ capo_cloudcontrol/types/next_token.py,sha256=ocxpyQuYEOzNaS1x-lXcJt8qBoYHRktS3Q7gXGZdQII,134
82
+ capo_cloudcontrol/types/operation.py,sha256=ggHId5Gyq8uae_Z5Rlchntk3_AxC5VXdcGMAN7o-lAo,134
83
+ capo_cloudcontrol/types/operation_status.py,sha256=FWpsFfXnvgzLGMbpEiAvgGnp99-T6nibJAciqorpqKc,146
84
+ capo_cloudcontrol/types/operation_statuses.py,sha256=dB-pXZDDWLm-Hcp6tfC4-YnHkJVBnk3titBAAy5aOwQ,538
85
+ capo_cloudcontrol/types/operations.py,sha256=pvKSSX9RZ4xzQDhMvwwIY3QRoyun3Y0tw_ShbDujYrQ,484
86
+ capo_cloudcontrol/types/patch_document.py,sha256=0fRejMFCeMX4q14PV2h2GlkvGI6U0Hjjc89HY5ZD2VU,195
87
+ capo_cloudcontrol/types/progress_event.py,sha256=_6k0BWpyoT58JHspx0fvSTd4zdfNlOnq0cFMNWLRFos,6498
88
+ capo_cloudcontrol/types/properties.py,sha256=-OueJ2WYg4abAm20YsIDWXnlGc1LmFvK00iRbeD-GLU,189
89
+ capo_cloudcontrol/types/request_token.py,sha256=NerWp90DpIolLrcDCnPHU4CSMStAtUr4B44uL_lZ-Zc,140
90
+ capo_cloudcontrol/types/resource_description.py,sha256=viHvloOJsMS_EXRbWkMjxbCmRwwyUNdmteiR3AdLk50,1461
91
+ capo_cloudcontrol/types/resource_descriptions.py,sha256=FVFkLZhvMEXNHn3gdrqsTNY2AHS8DuEnhL2kamL0ecE,1007
92
+ capo_cloudcontrol/types/resource_request_status_filter.py,sha256=egbF9a3cen6Pa-r_zd8-jS2zqJirHTEaAJeZ3xtUBaI,2488
93
+ capo_cloudcontrol/types/resource_request_status_summaries.py,sha256=vD0avh4xuqcIHYrn6o6JwG7YKRqXNMkkynu1uJ1Z4ss,993
94
+ capo_cloudcontrol/types/role_arn.py,sha256=HYgsnnJH-NJ1LzQGvpU4gpIsC0WDTCvA49T2QzZYWtg,130
95
+ capo_cloudcontrol/types/status_message.py,sha256=yUPoYIZFz3iUGSE-z9sdvSUahhhfXu1fdm3RQf0Y-Dw,142
96
+ capo_cloudcontrol/types/timestamp.py,sha256=dNfq8bFhVrA6RrSTZElIUlHK5YJmyxkdtiv9QxrKfaI,567
97
+ capo_cloudcontrol/types/type_name.py,sha256=Im5gVTueSCw2GHAZJ_7eVugSnrihCP0hMgO8Ie--8Os,132
98
+ capo_cloudcontrol/types/type_version_id.py,sha256=MxwvNDA8KQeYaMNyBRPLW6UG1TRS4Wmb9uLcnEJWH2k,142
99
+ capo_cloudcontrol/types/update_resource_input.py,sha256=k9BpoetLisRZfWaYckKfAPqW2NBsiZCAairN4JPsSb0,5885
100
+ capo_cloudcontrol/types/update_resource_output.py,sha256=0nyiFCts5-wUuo17zIj8Jvr7_RYmaSkGRYV3oD-BHh8,1561
101
+ capo_cloudcontrol/types/_prelude/blob.py,sha256=txYLSKL-hIHUWxbp8Iq0DVaYYNDmjfJiqd7MJgbtv1g,294
102
+ capo_cloudcontrol/types/_prelude/timestamp.py,sha256=O0Z2x0M0tKhTJZEBn-aqZj_DFWDHS6aSg4J2Y1XV9d8,504
103
+ capo_cloudcontrol-0.1.0.dist-info/licenses/LICENSE,sha256=sOQjPuig7ktMdOZpG1TdsPSYAVS_9UYVXwDDbD75nVI,1072
104
+ capo_cloudcontrol-0.1.0.dist-info/METADATA,sha256=XnqP0K6Of2i6J91bKW6hWsO9_MnqpSho9dbqCXEWMco,3560
105
+ capo_cloudcontrol-0.1.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
106
+ capo_cloudcontrol-0.1.0.dist-info/top_level.txt,sha256=oJ2NxFA1-jYfzcAnFB1UF33ppXFlHhdoJkXFAfpnAEU,18
107
+ capo_cloudcontrol-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Karen Petrosyan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ capo_cloudcontrol