localstack-core 4.13.2.dev59__py3-none-any.whl → 4.13.2.dev60__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.
@@ -61,7 +61,13 @@ class IAMManagedPolicyProvider(ResourceProvider[IAMManagedPolicyProperties]):
61
61
  group_name = util.generate_default_name(request.stack_name, request.logical_resource_id)
62
62
  model["ManagedPolicyName"] = group_name
63
63
 
64
- policy_doc = json.dumps(util.remove_none_values(model["PolicyDocument"]))
64
+ # PolicyDocument can be either a dict or a JSON string (e.g., from Fn::Sub)
65
+ policy_document = model["PolicyDocument"]
66
+ if isinstance(policy_document, str):
67
+ policy_doc = policy_document
68
+ else:
69
+ policy_doc = json.dumps(util.remove_none_values(policy_document))
70
+
65
71
  policy = iam_client.create_policy(
66
72
  PolicyName=model["ManagedPolicyName"], PolicyDocument=policy_doc
67
73
  )
@@ -53,7 +53,13 @@ class IAMPolicyProvider(ResourceProvider[IAMPolicyProperties]):
53
53
  model = request.desired_state
54
54
  iam_client = request.aws_client_factory.iam
55
55
 
56
- policy_doc = json.dumps(util.remove_none_values(model["PolicyDocument"]))
56
+ # PolicyDocument can be either a dict or a JSON string (e.g., from Fn::Sub)
57
+ policy_document = model["PolicyDocument"]
58
+ if isinstance(policy_document, str):
59
+ policy_doc = policy_document
60
+ else:
61
+ policy_doc = json.dumps(util.remove_none_values(policy_document))
62
+
57
63
  policy_name = model["PolicyName"]
58
64
 
59
65
  if not any([model.get("Roles"), model.get("Users"), model.get("Groups")]):
@@ -122,7 +128,14 @@ class IAMPolicyProvider(ResourceProvider[IAMPolicyProperties]):
122
128
  iam_client = request.aws_client_factory.iam
123
129
  model = request.desired_state
124
130
  # FIXME: this wasn't properly implemented before as well, still needs to be rewritten
125
- policy_doc = json.dumps(util.remove_none_values(model["PolicyDocument"]))
131
+
132
+ # PolicyDocument can be either a dict or a JSON string (e.g., from Fn::Sub)
133
+ policy_document = model["PolicyDocument"]
134
+ if isinstance(policy_document, str):
135
+ policy_doc = policy_document
136
+ else:
137
+ policy_doc = json.dumps(util.remove_none_values(policy_document))
138
+
126
139
  policy_name = model["PolicyName"]
127
140
 
128
141
  for role in model.get("Roles", []):
localstack/version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '4.13.2.dev59'
32
- __version_tuple__ = version_tuple = (4, 13, 2, 'dev59')
31
+ __version__ = version = '4.13.2.dev60'
32
+ __version_tuple__ = version_tuple = (4, 13, 2, 'dev60')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.13.2.dev59
3
+ Version: 4.13.2.dev60
4
4
  Summary: The core library and runtime of LocalStack
5
5
  Author-email: LocalStack Contributors <info@localstack.cloud>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ localstack/deprecations.py,sha256=-3IYgCd6LEC3PjO7hbr3Dg-p0PIS6phjmv1qZnj1uo0,15
4
4
  localstack/openapi.yaml,sha256=jFUzv-NKkJttxb8HRrmKiNYOmJD-zVfPxG3DDMrRwfg,30865
5
5
  localstack/plugins.py,sha256=BIJC9dlo0WbP7lLKkCiGtd_2q5oeqiHZohvoRTcejXM,2457
6
6
  localstack/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- localstack/version.py,sha256=FjFqaxO0JCqsR8nnNY9lAH4P4onmdnBvmOt59wDntJg,721
7
+ localstack/version.py,sha256=wPsud1xN5dWONJepYvYR0NX9k7WPVTiCI8OXGm7i9P4,721
8
8
  localstack/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  localstack/aws/accounts.py,sha256=102zpGowOxo0S6UGMpfjw14QW7WCLVAGsnFK5xFMLoo,3043
10
10
  localstack/aws/app.py,sha256=n9bJCfJRuMz_gLGAH430c3bIQXgUXeWO5NPfcdL2MV8,5145
@@ -488,10 +488,10 @@ localstack/services/iam/resource_providers/aws_iam_group_plugin.py,sha256=HxHgFw
488
488
  localstack/services/iam/resource_providers/aws_iam_instanceprofile.py,sha256=mQwYGsTYvo1cYvvbxISQqjbGp_ofjeWMcDAd25p5wc4,4135
489
489
  localstack/services/iam/resource_providers/aws_iam_instanceprofile.schema.json,sha256=_rfb9g_qP-pqOh7N9EQRPPugzy2GdS6QPBe__M4r6ho,1915
490
490
  localstack/services/iam/resource_providers/aws_iam_instanceprofile_plugin.py,sha256=zHcxteFVBHYeDX-i63hD7HJW4Hu67ij4WbiRFRcQu1Y,547
491
- localstack/services/iam/resource_providers/aws_iam_managedpolicy.py,sha256=d-pshK_Be6-MVRUlNBiA29pjeSAVTo3XhWEa2cPejKM,3781
491
+ localstack/services/iam/resource_providers/aws_iam_managedpolicy.py,sha256=nvGQe1bvFqX9hi-eVqCO7wgYLSW3AG2AAv4fqkHJBio,4012
492
492
  localstack/services/iam/resource_providers/aws_iam_managedpolicy.schema.json,sha256=GxtGVfjju7x9EP1IJkzUV6VxIY2HNGMNtPliPtVVgX4,1058
493
493
  localstack/services/iam/resource_providers/aws_iam_managedpolicy_plugin.py,sha256=I14EYfMfaAOatcFwsvKqUaHA4fHT2odV9eKJS44zqvA,537
494
- localstack/services/iam/resource_providers/aws_iam_policy.py,sha256=IFLF40CgQA6cmzt4MoXnzR5zEGY0wTw3lIuUSZYRX2w,4951
494
+ localstack/services/iam/resource_providers/aws_iam_policy.py,sha256=YzJFutnaSyVORTXuAViRiDqlxzmq0kv8redsJAlHX-Y,5414
495
495
  localstack/services/iam/resource_providers/aws_iam_policy.schema.json,sha256=RPhlO0dUuuaTm3Lc-AIVbdsaktrn0u6iAh1JF45t6-Q,837
496
496
  localstack/services/iam/resource_providers/aws_iam_policy_plugin.py,sha256=bERNjS_uApjiUrJl0Q6l9bs_t3c0IXtF2htSRYVwZ6M,477
497
497
  localstack/services/iam/resource_providers/aws_iam_role.py,sha256=zqJIYWvETTny7n9tvs1ycrZKF-rTFghaTdxtX9CfwqA,9238
@@ -1311,10 +1311,10 @@ localstack/utils/server/tcp_proxy.py,sha256=y2NJAmvftTiAYsLU_8qe4W5LGqwUw21i90Pu
1311
1311
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1312
1312
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1313
1313
  localstack/utils/xray/traceid.py,sha256=GKO-R2sMMjlrH2UaLPXlQlZ6flbE7ZKb6IZMtMu_M5U,1110
1314
- localstack_core-4.13.2.dev59.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1315
- localstack_core-4.13.2.dev59.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1316
- localstack_core-4.13.2.dev59.dist-info/METADATA,sha256=q4MPlyJb1PiOy7-FBN-gtQzz8jqM6f-FHknRHhnMNNw,5867
1317
- localstack_core-4.13.2.dev59.dist-info/WHEEL,sha256=YCfwYGOYMi5Jhw2fU4yNgwErybb2IX5PEwBKV4ZbdBo,91
1318
- localstack_core-4.13.2.dev59.dist-info/entry_points.txt,sha256=59aAnn8KVHWAHkMg2dOgmgYtRZ-xTX9T4UiIchWgK6k,20975
1319
- localstack_core-4.13.2.dev59.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1320
- localstack_core-4.13.2.dev59.dist-info/RECORD,,
1314
+ localstack_core-4.13.2.dev60.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1315
+ localstack_core-4.13.2.dev60.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1316
+ localstack_core-4.13.2.dev60.dist-info/METADATA,sha256=OrG9fXCJwjNQ7cmcHB9D4xUx0VrQoV8kQE3Zf9bxsoE,5867
1317
+ localstack_core-4.13.2.dev60.dist-info/WHEEL,sha256=YCfwYGOYMi5Jhw2fU4yNgwErybb2IX5PEwBKV4ZbdBo,91
1318
+ localstack_core-4.13.2.dev60.dist-info/entry_points.txt,sha256=59aAnn8KVHWAHkMg2dOgmgYtRZ-xTX9T4UiIchWgK6k,20975
1319
+ localstack_core-4.13.2.dev60.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1320
+ localstack_core-4.13.2.dev60.dist-info/RECORD,,