moto 4.2.3.dev38__py2.py3-none-any.whl → 4.2.3.dev40__py2.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.
- moto/__init__.py +1 -1
- moto/cognitoidp/models.py +1 -1
- moto/elbv2/exceptions.py +5 -0
- moto/elbv2/models.py +150 -21
- moto/elbv2/responses.py +21 -5
- {moto-4.2.3.dev38.dist-info → moto-4.2.3.dev40.dist-info}/METADATA +1 -1
- {moto-4.2.3.dev38.dist-info → moto-4.2.3.dev40.dist-info}/RECORD +12 -12
- {moto-4.2.3.dev38.dist-info → moto-4.2.3.dev40.dist-info}/AUTHORS.md +0 -0
- {moto-4.2.3.dev38.dist-info → moto-4.2.3.dev40.dist-info}/LICENSE +0 -0
- {moto-4.2.3.dev38.dist-info → moto-4.2.3.dev40.dist-info}/WHEEL +0 -0
- {moto-4.2.3.dev38.dist-info → moto-4.2.3.dev40.dist-info}/entry_points.txt +0 -0
- {moto-4.2.3.dev38.dist-info → moto-4.2.3.dev40.dist-info}/top_level.txt +0 -0
moto/__init__.py
CHANGED
moto/cognitoidp/models.py
CHANGED
moto/elbv2/exceptions.py
CHANGED
|
@@ -184,3 +184,8 @@ class InvalidStatusCodeActionTypeError(ELBClientError):
|
|
|
184
184
|
class InvalidLoadBalancerActionException(ELBClientError):
|
|
185
185
|
def __init__(self, msg: str):
|
|
186
186
|
super().__init__("InvalidLoadBalancerAction", msg)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
class ValidationError(ELBClientError):
|
|
190
|
+
def __init__(self, msg: str):
|
|
191
|
+
super().__init__("ValidationError", msg)
|
moto/elbv2/models.py
CHANGED
|
@@ -35,6 +35,7 @@ from .exceptions import (
|
|
|
35
35
|
InvalidModifyRuleArgumentsError,
|
|
36
36
|
InvalidStatusCodeActionTypeError,
|
|
37
37
|
InvalidLoadBalancerActionException,
|
|
38
|
+
ValidationError,
|
|
38
39
|
)
|
|
39
40
|
|
|
40
41
|
ALLOWED_ACTIONS = [
|
|
@@ -79,42 +80,49 @@ class FakeTargetGroup(CloudFormationModel):
|
|
|
79
80
|
healthcheck_port: Optional[str] = None,
|
|
80
81
|
healthcheck_path: Optional[str] = None,
|
|
81
82
|
healthcheck_interval_seconds: Optional[str] = None,
|
|
82
|
-
healthcheck_timeout_seconds: Optional[
|
|
83
|
+
healthcheck_timeout_seconds: Optional[str] = None,
|
|
83
84
|
healthcheck_enabled: Optional[str] = None,
|
|
84
85
|
healthy_threshold_count: Optional[str] = None,
|
|
85
86
|
unhealthy_threshold_count: Optional[str] = None,
|
|
86
87
|
matcher: Optional[Dict[str, Any]] = None,
|
|
87
88
|
target_type: Optional[str] = None,
|
|
89
|
+
ip_address_type: Optional[str] = None,
|
|
88
90
|
):
|
|
89
91
|
# TODO: default values differs when you add Network Load balancer
|
|
90
92
|
self.name = name
|
|
91
93
|
self.arn = arn
|
|
92
94
|
self.vpc_id = vpc_id
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
if target_type == "lambda":
|
|
96
|
+
self.protocol = None
|
|
97
|
+
self.protocol_version = None
|
|
98
|
+
elif target_type == "alb":
|
|
99
|
+
self.protocol = "TCP"
|
|
100
|
+
self.protocol_version = None
|
|
101
|
+
else:
|
|
102
|
+
self.protocol = protocol
|
|
103
|
+
self.protocol_version = protocol_version
|
|
95
104
|
self.port = port
|
|
96
105
|
self.healthcheck_protocol = healthcheck_protocol or self.protocol
|
|
97
|
-
self.healthcheck_port = healthcheck_port
|
|
106
|
+
self.healthcheck_port = healthcheck_port or "traffic-port"
|
|
98
107
|
self.healthcheck_path = healthcheck_path
|
|
99
|
-
self.healthcheck_interval_seconds = healthcheck_interval_seconds or 30
|
|
100
|
-
self.healthcheck_timeout_seconds = healthcheck_timeout_seconds
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
else
|
|
108
|
-
|
|
109
|
-
self.
|
|
110
|
-
self.
|
|
111
|
-
self.unhealthy_threshold_count = unhealthy_threshold_count or 2
|
|
108
|
+
self.healthcheck_interval_seconds = healthcheck_interval_seconds or "30"
|
|
109
|
+
self.healthcheck_timeout_seconds = healthcheck_timeout_seconds or "10"
|
|
110
|
+
self.ip_address_type = (
|
|
111
|
+
ip_address_type or "ipv4" if self.protocol != "GENEVE" else None
|
|
112
|
+
)
|
|
113
|
+
self.healthcheck_enabled = (
|
|
114
|
+
healthcheck_enabled.lower() == "true"
|
|
115
|
+
if healthcheck_enabled in ["true", "false"]
|
|
116
|
+
else True
|
|
117
|
+
)
|
|
118
|
+
self.healthy_threshold_count = healthy_threshold_count or "5"
|
|
119
|
+
self.unhealthy_threshold_count = unhealthy_threshold_count or "2"
|
|
112
120
|
self.load_balancer_arns: List[str] = []
|
|
113
121
|
if self.healthcheck_protocol != "TCP":
|
|
114
122
|
self.matcher: Dict[str, Any] = matcher or {"HttpCode": "200"}
|
|
115
|
-
self.healthcheck_path = self.healthcheck_path
|
|
123
|
+
self.healthcheck_path = self.healthcheck_path
|
|
116
124
|
self.healthcheck_port = self.healthcheck_port or str(self.port)
|
|
117
|
-
self.target_type = target_type
|
|
125
|
+
self.target_type = target_type or "instance"
|
|
118
126
|
|
|
119
127
|
self.attributes = {
|
|
120
128
|
"deregistration_delay.timeout_seconds": 300,
|
|
@@ -1030,6 +1038,9 @@ Member must satisfy regular expression pattern: {expression}"
|
|
|
1030
1038
|
)
|
|
1031
1039
|
|
|
1032
1040
|
def create_target_group(self, name: str, **kwargs: Any) -> FakeTargetGroup:
|
|
1041
|
+
protocol = kwargs.get("protocol")
|
|
1042
|
+
target_type = kwargs.get("target_type")
|
|
1043
|
+
|
|
1033
1044
|
if len(name) > 32:
|
|
1034
1045
|
raise InvalidTargetGroupNameError(
|
|
1035
1046
|
f"Target group name '{name}' cannot be longer than '32' characters"
|
|
@@ -1080,6 +1091,124 @@ Member must satisfy regular expression pattern: {expression}"
|
|
|
1080
1091
|
"HttpCode must be like 200 | 200-399 | 200,201 ...",
|
|
1081
1092
|
)
|
|
1082
1093
|
|
|
1094
|
+
if target_type in ("instance", "ip", "alb"):
|
|
1095
|
+
for param in ("protocol", "port", "vpc_id"):
|
|
1096
|
+
if not kwargs.get(param):
|
|
1097
|
+
param = "VPC ID" if param == "vpc_id" else param.lower()
|
|
1098
|
+
raise ValidationError(f"A {param} must be specified")
|
|
1099
|
+
|
|
1100
|
+
if kwargs.get("vpc_id"):
|
|
1101
|
+
from moto.ec2.exceptions import InvalidVPCIdError
|
|
1102
|
+
|
|
1103
|
+
try:
|
|
1104
|
+
self.ec2_backend.get_vpc(kwargs.get("vpc_id"))
|
|
1105
|
+
except InvalidVPCIdError:
|
|
1106
|
+
raise ValidationError(
|
|
1107
|
+
f"The VPC ID '{kwargs.get('vpc_id')}' is not found"
|
|
1108
|
+
)
|
|
1109
|
+
|
|
1110
|
+
kwargs_patch = {}
|
|
1111
|
+
|
|
1112
|
+
conditions: Dict[str, Any] = {
|
|
1113
|
+
"target_lambda": {
|
|
1114
|
+
"healthcheck_interval_seconds": 35,
|
|
1115
|
+
"healthcheck_timeout_seconds": 30,
|
|
1116
|
+
"unhealthy_threshold_count": 2,
|
|
1117
|
+
"healthcheck_enabled": "false",
|
|
1118
|
+
"healthcheck_path": "/",
|
|
1119
|
+
},
|
|
1120
|
+
"target_alb": {
|
|
1121
|
+
"healthcheck_protocol": "HTTP",
|
|
1122
|
+
"healthcheck_path": "/",
|
|
1123
|
+
"healthcheck_timeout_seconds": 6,
|
|
1124
|
+
"matcher": {"HttpCode": "200-399"},
|
|
1125
|
+
},
|
|
1126
|
+
"protocol_GENEVE": {
|
|
1127
|
+
"healthcheck_interval_seconds": 10,
|
|
1128
|
+
"healthcheck_port": 80,
|
|
1129
|
+
"healthcheck_timeout_seconds": 5,
|
|
1130
|
+
"healthcheck_protocol": "TCP",
|
|
1131
|
+
"unhealthy_threshold_count": 2,
|
|
1132
|
+
},
|
|
1133
|
+
"protocol_HTTP_HTTPS": {
|
|
1134
|
+
"healthcheck_timeout_seconds": 5,
|
|
1135
|
+
"protocol_version": "HTTP1",
|
|
1136
|
+
"healthcheck_path": "/",
|
|
1137
|
+
"unhealthy_threshold_count": 2,
|
|
1138
|
+
"healthcheck_interval_seconds": 30,
|
|
1139
|
+
},
|
|
1140
|
+
"protocol_TCP": {
|
|
1141
|
+
"healthcheck_timeout_seconds": 10,
|
|
1142
|
+
},
|
|
1143
|
+
"protocol_TCP_TCP_UDP_UDP_TLS": {
|
|
1144
|
+
"healthcheck_protocol": "TCP",
|
|
1145
|
+
"unhealthy_threshold_count": 2,
|
|
1146
|
+
"healthcheck_interval_seconds": 30,
|
|
1147
|
+
},
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
if target_type == "lambda":
|
|
1151
|
+
kwargs_patch.update(
|
|
1152
|
+
{k: kwargs.get(k) or v for k, v in conditions["target_lambda"].items()}
|
|
1153
|
+
)
|
|
1154
|
+
|
|
1155
|
+
if protocol == "GENEVE":
|
|
1156
|
+
kwargs_patch.update(
|
|
1157
|
+
{
|
|
1158
|
+
k: kwargs.get(k) or v
|
|
1159
|
+
for k, v in conditions["protocol_GENEVE"].items()
|
|
1160
|
+
}
|
|
1161
|
+
)
|
|
1162
|
+
|
|
1163
|
+
if protocol in ("HTTP", "HTTPS"):
|
|
1164
|
+
kwargs_patch.update(
|
|
1165
|
+
{
|
|
1166
|
+
k: kwargs.get(k) or v
|
|
1167
|
+
for k, v in conditions["protocol_HTTP_HTTPS"].items()
|
|
1168
|
+
}
|
|
1169
|
+
)
|
|
1170
|
+
|
|
1171
|
+
if protocol == "TCP":
|
|
1172
|
+
kwargs_patch.update(
|
|
1173
|
+
{k: kwargs.get(k) or v for k, v in conditions["protocol_TCP"].items()}
|
|
1174
|
+
)
|
|
1175
|
+
|
|
1176
|
+
if protocol in ("TCP", "TCP_UDP", "UDP", "TLS"):
|
|
1177
|
+
kwargs_patch.update(
|
|
1178
|
+
{
|
|
1179
|
+
k: kwargs.get(k) or v
|
|
1180
|
+
for k, v in conditions["protocol_TCP_TCP_UDP_UDP_TLS"].items()
|
|
1181
|
+
}
|
|
1182
|
+
)
|
|
1183
|
+
|
|
1184
|
+
if target_type == "alb":
|
|
1185
|
+
kwargs_patch.update(
|
|
1186
|
+
{k: kwargs.get(k) or v for k, v in conditions["target_alb"].items()}
|
|
1187
|
+
)
|
|
1188
|
+
|
|
1189
|
+
kwargs.update(kwargs_patch)
|
|
1190
|
+
|
|
1191
|
+
healthcheck_timeout_seconds = int(
|
|
1192
|
+
str(kwargs.get("healthcheck_timeout_seconds") or "10")
|
|
1193
|
+
)
|
|
1194
|
+
healthcheck_interval_seconds = int(
|
|
1195
|
+
str(kwargs.get("healthcheck_interval_seconds") or "30")
|
|
1196
|
+
)
|
|
1197
|
+
|
|
1198
|
+
if (
|
|
1199
|
+
healthcheck_timeout_seconds is not None
|
|
1200
|
+
and healthcheck_interval_seconds is not None
|
|
1201
|
+
):
|
|
1202
|
+
|
|
1203
|
+
if healthcheck_interval_seconds < healthcheck_timeout_seconds:
|
|
1204
|
+
raise ValidationError(
|
|
1205
|
+
"Health check interval must be greater than the timeout."
|
|
1206
|
+
)
|
|
1207
|
+
if healthcheck_interval_seconds == healthcheck_timeout_seconds:
|
|
1208
|
+
raise ValidationError(
|
|
1209
|
+
f"Health check timeout '{healthcheck_timeout_seconds}' must be smaller than the interval '{healthcheck_interval_seconds}'"
|
|
1210
|
+
)
|
|
1211
|
+
|
|
1083
1212
|
arn = make_arn_for_target_group(
|
|
1084
1213
|
account_id=self.account_id, name=name, region_name=self.region_name
|
|
1085
1214
|
)
|
|
@@ -1524,11 +1653,11 @@ Member must satisfy regular expression pattern: {expression}"
|
|
|
1524
1653
|
health_check_port: Optional[str] = None,
|
|
1525
1654
|
health_check_path: Optional[str] = None,
|
|
1526
1655
|
health_check_interval: Optional[str] = None,
|
|
1527
|
-
health_check_timeout: Optional[
|
|
1656
|
+
health_check_timeout: Optional[str] = None,
|
|
1528
1657
|
healthy_threshold_count: Optional[str] = None,
|
|
1529
1658
|
unhealthy_threshold_count: Optional[str] = None,
|
|
1530
1659
|
http_codes: Optional[str] = None,
|
|
1531
|
-
health_check_enabled: Optional[
|
|
1660
|
+
health_check_enabled: Optional[bool] = None,
|
|
1532
1661
|
) -> FakeTargetGroup:
|
|
1533
1662
|
target_group = self.target_groups.get(arn)
|
|
1534
1663
|
if target_group is None:
|
moto/elbv2/responses.py
CHANGED
|
@@ -185,7 +185,7 @@ class ELBV2Response(BaseResponse):
|
|
|
185
185
|
name = params.get("Name")
|
|
186
186
|
vpc_id = params.get("VpcId")
|
|
187
187
|
protocol = params.get("Protocol")
|
|
188
|
-
protocol_version = params.get("ProtocolVersion"
|
|
188
|
+
protocol_version = params.get("ProtocolVersion")
|
|
189
189
|
port = params.get("Port")
|
|
190
190
|
healthcheck_protocol = self._get_param("HealthCheckProtocol")
|
|
191
191
|
healthcheck_port = self._get_param("HealthCheckPort")
|
|
@@ -196,7 +196,8 @@ class ELBV2Response(BaseResponse):
|
|
|
196
196
|
healthy_threshold_count = self._get_param("HealthyThresholdCount")
|
|
197
197
|
unhealthy_threshold_count = self._get_param("UnhealthyThresholdCount")
|
|
198
198
|
matcher = params.get("Matcher")
|
|
199
|
-
target_type = params.get("TargetType")
|
|
199
|
+
target_type = params.get("TargetType", "instance")
|
|
200
|
+
ip_address_type = params.get("IpAddressType")
|
|
200
201
|
tags = params.get("Tags")
|
|
201
202
|
|
|
202
203
|
target_group = self.elbv2_backend.create_target_group(
|
|
@@ -214,6 +215,7 @@ class ELBV2Response(BaseResponse):
|
|
|
214
215
|
healthy_threshold_count=healthy_threshold_count,
|
|
215
216
|
unhealthy_threshold_count=unhealthy_threshold_count,
|
|
216
217
|
matcher=matcher,
|
|
218
|
+
ip_address_type=ip_address_type,
|
|
217
219
|
target_type=target_type,
|
|
218
220
|
tags=tags,
|
|
219
221
|
)
|
|
@@ -797,6 +799,9 @@ CREATE_TARGET_GROUP_TEMPLATE = """<CreateTargetGroupResponse xmlns="http://elast
|
|
|
797
799
|
<TargetGroupName>{{ target_group.name }}</TargetGroupName>
|
|
798
800
|
{% if target_group.protocol %}
|
|
799
801
|
<Protocol>{{ target_group.protocol }}</Protocol>
|
|
802
|
+
{% if target_group.protocol_version %}
|
|
803
|
+
<ProtocolVersion>{{ target_group.protocol_version }}</ProtocolVersion>
|
|
804
|
+
{% endif %}
|
|
800
805
|
{% endif %}
|
|
801
806
|
{% if target_group.port %}
|
|
802
807
|
<Port>{{ target_group.port }}</Port>
|
|
@@ -804,14 +809,22 @@ CREATE_TARGET_GROUP_TEMPLATE = """<CreateTargetGroupResponse xmlns="http://elast
|
|
|
804
809
|
{% if target_group.vpc_id %}
|
|
805
810
|
<VpcId>{{ target_group.vpc_id }}</VpcId>
|
|
806
811
|
{% endif %}
|
|
807
|
-
|
|
808
|
-
{% if target_group.healthcheck_port %}
|
|
812
|
+
{% if target_group.healthcheck_enabled %}
|
|
813
|
+
{% if target_group.healthcheck_port %}
|
|
814
|
+
<HealthCheckPort>{{ target_group.healthcheck_port }}</HealthCheckPort>
|
|
815
|
+
{% endif %}
|
|
816
|
+
{% if target_group.healthcheck_protocol %}
|
|
817
|
+
<HealthCheckProtocol>{{ target_group.healthcheck_protocol or "None" }}</HealthCheckProtocol>
|
|
818
|
+
{% endif %}
|
|
819
|
+
{% endif %}
|
|
820
|
+
{% if target_group.healthcheck_path %}
|
|
809
821
|
<HealthCheckPath>{{ target_group.healthcheck_path or '' }}</HealthCheckPath>
|
|
822
|
+
{% endif %}
|
|
810
823
|
<HealthCheckIntervalSeconds>{{ target_group.healthcheck_interval_seconds }}</HealthCheckIntervalSeconds>
|
|
811
824
|
<HealthCheckTimeoutSeconds>{{ target_group.healthcheck_timeout_seconds }}</HealthCheckTimeoutSeconds>
|
|
812
|
-
<HealthCheckEnabled>{{ target_group.healthcheck_enabled and 'true' or 'false' }}</HealthCheckEnabled>
|
|
813
825
|
<HealthyThresholdCount>{{ target_group.healthy_threshold_count }}</HealthyThresholdCount>
|
|
814
826
|
<UnhealthyThresholdCount>{{ target_group.unhealthy_threshold_count }}</UnhealthyThresholdCount>
|
|
827
|
+
<HealthCheckEnabled>{{ target_group.healthcheck_enabled and 'true' or 'false' }}</HealthCheckEnabled>
|
|
815
828
|
{% if target_group.matcher %}
|
|
816
829
|
<Matcher>
|
|
817
830
|
<HttpCode>{{ target_group.matcher['HttpCode'] }}</HttpCode>
|
|
@@ -820,6 +833,9 @@ CREATE_TARGET_GROUP_TEMPLATE = """<CreateTargetGroupResponse xmlns="http://elast
|
|
|
820
833
|
{% if target_group.target_type %}
|
|
821
834
|
<TargetType>{{ target_group.target_type }}</TargetType>
|
|
822
835
|
{% endif %}
|
|
836
|
+
{% if target_group.ip_address_type %}
|
|
837
|
+
<IpAddressType>{{ target_group.ip_address_type }}</IpAddressType>
|
|
838
|
+
{% endif %}
|
|
823
839
|
</member>
|
|
824
840
|
</TargetGroups>
|
|
825
841
|
</CreateTargetGroupResult>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
moto/__init__.py,sha256=
|
|
1
|
+
moto/__init__.py,sha256=Qs1JD-D6sozRzxBPqtcEeWotwt7a7Wyzr5XnbwATjwU,9689
|
|
2
2
|
moto/backend_index.py,sha256=JDpbrcbt5e30v7D8c5IsxbqIDUXTvm4OuClX6V81cJU,10707
|
|
3
3
|
moto/backends.py,sha256=rC9WUMUUWmVmX7ZEfXpVKAQAw6oI8qYobCEPxP2Zv9U,1805
|
|
4
4
|
moto/server.py,sha256=cp8kIe5jVOm7Z2BlNN2AMbTfrRvLBEKSb4mt7O8nu34,2858
|
|
@@ -141,7 +141,7 @@ moto/cognitoidentity/urls.py,sha256=EwCPmD-_m_fiyl0DB82Vhti3VZVpHliimAiGDf5pWyk,
|
|
|
141
141
|
moto/cognitoidentity/utils.py,sha256=1jFH2hB04ko1_GdYAB2Ep16VZdW8w-zdy5jb2RLHsyo,143
|
|
142
142
|
moto/cognitoidp/__init__.py,sha256=nXdnouroOSIuf-0yhvI5GnlajxxsTBDSXbJikUL1jdY,136
|
|
143
143
|
moto/cognitoidp/exceptions.py,sha256=1a49SBkGGauDhTlPlSOCNG16L1jVr0Hv5LNVJhuIfGc,1959
|
|
144
|
-
moto/cognitoidp/models.py,sha256=
|
|
144
|
+
moto/cognitoidp/models.py,sha256=vaKE7SeVH9eDYUkJ8Hum6s2TSnyyboR9h17hsLC-oCQ,85271
|
|
145
145
|
moto/cognitoidp/responses.py,sha256=N3w_kAevofO2mx07JIFtyFOltPqkRVdp8uUYR7gsbYY,25932
|
|
146
146
|
moto/cognitoidp/urls.py,sha256=UlZawfAU4mnnmmhj66NmfrS8X90hTGij_v1NeSLHqgY,358
|
|
147
147
|
moto/cognitoidp/utils.py,sha256=XJqIe9VGZfHezk7muTbHq1Zzypayaa2xPQ-Js02Y73U,3122
|
|
@@ -501,9 +501,9 @@ moto/elb/policies.py,sha256=bf0iqARBMJSb1ImJfmTNcwpieK7skjHG8YzAfgGdVsQ,1008
|
|
|
501
501
|
moto/elb/responses.py,sha256=MP_ustVXguy12pQCiJzFh9RsmMUm9lO6n10uW7XFbII,37696
|
|
502
502
|
moto/elb/urls.py,sha256=K5tFLDrGEUW6Lgw3dAdLdSl_Cf7V68CmQmRndoVZTvU,1336
|
|
503
503
|
moto/elbv2/__init__.py,sha256=eQgbAgmbB0p4cfE2UMmjtIikZ8RsPKRG-yO1edhQ9ws,163
|
|
504
|
-
moto/elbv2/exceptions.py,sha256=
|
|
505
|
-
moto/elbv2/models.py,sha256=
|
|
506
|
-
moto/elbv2/responses.py,sha256=
|
|
504
|
+
moto/elbv2/exceptions.py,sha256=9HpyVzkZoY9PiLqfULupx0dr5Mv4onMD-KARVtr_r0o,5702
|
|
505
|
+
moto/elbv2/models.py,sha256=o46_6jbfeB_jPmj3pwoEViiTjRK7KyEMUKyMG_DFrX4,74689
|
|
506
|
+
moto/elbv2/responses.py,sha256=nyxg68e1sax9CpgFwfan05EJ6tPf1kGiKhSKh1JF7Q8,69189
|
|
507
507
|
moto/elbv2/urls.py,sha256=eXzExA_20VjvnCuz0IqYemrQUBrKoAGkgYNYj7opHhE,164
|
|
508
508
|
moto/elbv2/utils.py,sha256=5M0qRxrOzTFCRJeVD1MvCZmzwP1kv2Skg5tFmScN01A,388
|
|
509
509
|
moto/emr/__init__.py,sha256=ZYtiZrbIc9PUyTSHWJFgILS0hO3QSHj--cPyOSJfnz8,155
|
|
@@ -1034,10 +1034,10 @@ moto/xray/mock_client.py,sha256=nYl8JVJbl3OY-tnUafkVOG4K4-cFm5bsft3Hxo7fKwI,3809
|
|
|
1034
1034
|
moto/xray/models.py,sha256=0QL6nmhpVVwAiyi9aw4pBwVTRhqPW9oIy2uwPDhPKug,11179
|
|
1035
1035
|
moto/xray/responses.py,sha256=p2xsg2-P9h_1DCyuBC7GenmC5L64tXAX6a-XCb2j5-o,6316
|
|
1036
1036
|
moto/xray/urls.py,sha256=R6T3gMwobWipukWcC1DQ36CU1Rjt6oqBDoe-7HqaIZU,393
|
|
1037
|
-
moto-4.2.3.
|
|
1038
|
-
moto-4.2.3.
|
|
1039
|
-
moto-4.2.3.
|
|
1040
|
-
moto-4.2.3.
|
|
1041
|
-
moto-4.2.3.
|
|
1042
|
-
moto-4.2.3.
|
|
1043
|
-
moto-4.2.3.
|
|
1037
|
+
moto-4.2.3.dev40.dist-info/AUTHORS.md,sha256=dDUhasV8HGSkzb7zj7a0b3alnqY0P1LPOyOUNoo8Mpo,2976
|
|
1038
|
+
moto-4.2.3.dev40.dist-info/LICENSE,sha256=8S75_TlqE-kIeGMLG0-rRxxu2ct6SM8quyUWKBYyIY4,10834
|
|
1039
|
+
moto-4.2.3.dev40.dist-info/METADATA,sha256=cg6qBPaW1cRyB7342pyL2ld9fElkKOBTgFK_6Eqj3OE,12102
|
|
1040
|
+
moto-4.2.3.dev40.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
|
|
1041
|
+
moto-4.2.3.dev40.dist-info/entry_points.txt,sha256=aPovbZuFXCwt8_m2vcolpH4Qr3rOF3yXeRElP9Zkauo,49
|
|
1042
|
+
moto-4.2.3.dev40.dist-info/top_level.txt,sha256=TETRKAPcAAvoZDkSkwQiZtTSr-1gzaEAXVm9FmZKj8s,5
|
|
1043
|
+
moto-4.2.3.dev40.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|