Skip to content

Commit 5be10a5

Browse files
Add support for Dual_Stack and PrivateLink types of IngressPoint. For configuration requests, SES Mail Manager will now accept both IPv4/IPv6 dual-stack endpoints and AWS PrivateLink VPC endpoints for email receiving.
1 parent a47e953 commit 5be10a5

27 files changed

+1638
-5
lines changed

generator/ServiceModels/mailmanager/mailmanager-2023-10-17.api.json

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,6 +1316,7 @@
13161316
},
13171317
"IngressPointConfiguration":{"shape":"IngressPointConfiguration"},
13181318
"IngressPointName":{"shape":"IngressPointName"},
1319+
"NetworkConfiguration":{"shape":"NetworkConfiguration"},
13191320
"RuleSetId":{"shape":"RuleSetId"},
13201321
"Tags":{"shape":"TagList"},
13211322
"TrafficPolicyId":{"shape":"TrafficPolicyId"},
@@ -1833,6 +1834,7 @@
18331834
"IngressPointId":{"shape":"IngressPointId"},
18341835
"IngressPointName":{"shape":"IngressPointName"},
18351836
"LastUpdatedTimestamp":{"shape":"Timestamp"},
1837+
"NetworkConfiguration":{"shape":"NetworkConfiguration"},
18361838
"RuleSetId":{"shape":"RuleSetId"},
18371839
"Status":{"shape":"IngressPointStatus"},
18381840
"TrafficPolicyId":{"shape":"TrafficPolicyId"},
@@ -2092,6 +2094,30 @@
20922094
"Values":{"shape":"Ipv4Cidrs"}
20932095
}
20942096
},
2097+
"IngressIpv6Attribute":{
2098+
"type":"string",
2099+
"enum":["SENDER_IPV6"]
2100+
},
2101+
"IngressIpv6Expression":{
2102+
"type":"structure",
2103+
"required":[
2104+
"Evaluate",
2105+
"Operator",
2106+
"Values"
2107+
],
2108+
"members":{
2109+
"Evaluate":{"shape":"IngressIpv6ToEvaluate"},
2110+
"Operator":{"shape":"IngressIpOperator"},
2111+
"Values":{"shape":"Ipv6Cidrs"}
2112+
}
2113+
},
2114+
"IngressIpv6ToEvaluate":{
2115+
"type":"structure",
2116+
"members":{
2117+
"Attribute":{"shape":"IngressIpv6Attribute"}
2118+
},
2119+
"union":true
2120+
},
20952121
"IngressIsInAddressList":{
20962122
"type":"structure",
20972123
"required":[
@@ -2261,6 +2287,13 @@
22612287
"type":"integer",
22622288
"box":true
22632289
},
2290+
"IpType":{
2291+
"type":"string",
2292+
"enum":[
2293+
"IPV4",
2294+
"DUAL_STACK"
2295+
]
2296+
},
22642297
"Ipv4Cidr":{
22652298
"type":"string",
22662299
"pattern":"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/([0-9]|[12][0-9]|3[0-2])$"
@@ -2269,6 +2302,16 @@
22692302
"type":"list",
22702303
"member":{"shape":"Ipv4Cidr"}
22712304
},
2305+
"Ipv6Cidr":{
2306+
"type":"string",
2307+
"max":49,
2308+
"min":0,
2309+
"pattern":"^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$"
2310+
},
2311+
"Ipv6Cidrs":{
2312+
"type":"list",
2313+
"member":{"shape":"Ipv6Cidr"}
2314+
},
22722315
"JobId":{
22732316
"type":"string",
22742317
"max":255,
@@ -2540,6 +2583,14 @@
25402583
"min":1,
25412584
"pattern":"^[a-zA-Z0-9:_/+=,@.#-]+$"
25422585
},
2586+
"NetworkConfiguration":{
2587+
"type":"structure",
2588+
"members":{
2589+
"PrivateNetworkConfiguration":{"shape":"PrivateNetworkConfiguration"},
2590+
"PublicNetworkConfiguration":{"shape":"PublicNetworkConfiguration"}
2591+
},
2592+
"union":true
2593+
},
25432594
"NoAuthentication":{
25442595
"type":"structure",
25452596
"members":{
@@ -2561,6 +2612,7 @@
25612612
"members":{
25622613
"BooleanExpression":{"shape":"IngressBooleanExpression"},
25632614
"IpExpression":{"shape":"IngressIpv4Expression"},
2615+
"Ipv6Expression":{"shape":"IngressIpv6Expression"},
25642616
"StringExpression":{"shape":"IngressStringExpression"},
25652617
"TlsExpression":{"shape":"IngressTlsProtocolExpression"}
25662618
},
@@ -2590,6 +2642,20 @@
25902642
"type":"string",
25912643
"sensitive":true
25922644
},
2645+
"PrivateNetworkConfiguration":{
2646+
"type":"structure",
2647+
"required":["VpcEndpointId"],
2648+
"members":{
2649+
"VpcEndpointId":{"shape":"VpcEndpointId"}
2650+
}
2651+
},
2652+
"PublicNetworkConfiguration":{
2653+
"type":"structure",
2654+
"required":["IpType"],
2655+
"members":{
2656+
"IpType":{"shape":"IpType"}
2657+
}
2658+
},
25932659
"QBusinessApplicationId":{
25942660
"type":"string",
25952661
"max":36,
@@ -2905,9 +2971,9 @@
29052971
},
29062972
"RuleIpStringValue":{
29072973
"type":"string",
2908-
"max":18,
2974+
"max":43,
29092975
"min":1,
2910-
"pattern":"^(([0-9]|.|/)*)$"
2976+
"pattern":"^(([0-9]|.|:|/)*)$"
29112977
},
29122978
"RuleIpToEvaluate":{
29132979
"type":"structure",
@@ -3536,6 +3602,10 @@
35363602
"Message":{"shape":"ErrorMessage"}
35373603
},
35383604
"exception":true
3605+
},
3606+
"VpcEndpointId":{
3607+
"type":"string",
3608+
"pattern":"^vpce-[a-zA-Z0-9]{17}$"
35393609
}
35403610
}
35413611
}

generator/ServiceModels/mailmanager/mailmanager-2023-10-17.docs.json

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -966,7 +966,8 @@
966966
"IngressIpOperator": {
967967
"base": null,
968968
"refs": {
969-
"IngressIpv4Expression$Operator": "<p>The matching operator for an IP condition expression.</p>"
969+
"IngressIpv4Expression$Operator": "<p>The matching operator for an IP condition expression.</p>",
970+
"IngressIpv6Expression$Operator": "<p>The matching operator for an IPv6 condition expression.</p>"
970971
}
971972
},
972973
"IngressIpToEvaluate": {
@@ -987,6 +988,24 @@
987988
"PolicyCondition$IpExpression": "<p>This represents an IP based condition matching on the incoming mail. It performs the operation configured in 'Operator' and evaluates the 'Protocol' object against the 'Value'.</p>"
988989
}
989990
},
991+
"IngressIpv6Attribute": {
992+
"base": null,
993+
"refs": {
994+
"IngressIpv6ToEvaluate$Attribute": "<p>An enum type representing the allowed attribute types for an IPv6 condition.</p>"
995+
}
996+
},
997+
"IngressIpv6Expression": {
998+
"base": "<p>The union type representing the allowed types for the left hand side of an IPv6 condition.</p>",
999+
"refs": {
1000+
"PolicyCondition$Ipv6Expression": "<p>This represents an IPv6 based condition matching on the incoming mail. It performs the operation configured in 'Operator' and evaluates the 'Protocol' object against the 'Value'.</p>"
1001+
}
1002+
},
1003+
"IngressIpv6ToEvaluate": {
1004+
"base": "<p>The structure for an IPv6 based condition matching on the incoming mail.</p>",
1005+
"refs": {
1006+
"IngressIpv6Expression$Evaluate": "<p>The left hand side argument of an IPv6 condition expression.</p>"
1007+
}
1008+
},
9901009
"IngressIsInAddressList": {
9911010
"base": "<p>The address lists and the address list attribute value that is evaluated in a policy statement's conditional expression to either deny or block the incoming email.</p>",
9921011
"refs": {
@@ -1140,6 +1159,12 @@
11401159
"ListRelaysRequest$PageSize": "<p>The number of relays to be returned in one request.</p>"
11411160
}
11421161
},
1162+
"IpType": {
1163+
"base": null,
1164+
"refs": {
1165+
"PublicNetworkConfiguration$IpType": "<p>The IP address type for the public ingress point. Valid values are IPV4 and DUAL_STACK.</p>"
1166+
}
1167+
},
11431168
"Ipv4Cidr": {
11441169
"base": null,
11451170
"refs": {
@@ -1152,6 +1177,18 @@
11521177
"IngressIpv4Expression$Values": "<p>The right hand side argument of an IP condition expression.</p>"
11531178
}
11541179
},
1180+
"Ipv6Cidr": {
1181+
"base": null,
1182+
"refs": {
1183+
"Ipv6Cidrs$member": null
1184+
}
1185+
},
1186+
"Ipv6Cidrs": {
1187+
"base": null,
1188+
"refs": {
1189+
"IngressIpv6Expression$Values": "<p>The right hand side argument of an IPv6 condition expression.</p>"
1190+
}
1191+
},
11551192
"JobId": {
11561193
"base": null,
11571194
"refs": {
@@ -1362,6 +1399,13 @@
13621399
"DeliverToMailboxAction$MailboxArn": "<p>The Amazon Resource Name (ARN) of a WorkMail organization to deliver the email to.</p>"
13631400
}
13641401
},
1402+
"NetworkConfiguration": {
1403+
"base": "<p>The network type (IPv4-only, Dual-Stack, PrivateLink) of the ingress endpoint resource.</p>",
1404+
"refs": {
1405+
"CreateIngressPointRequest$NetworkConfiguration": "<p>Specifies the network configuration for the ingress point. This allows you to create an IPv4-only, Dual-Stack, or PrivateLink type of ingress point. If not specified, the default network type is IPv4-only. </p>",
1406+
"GetIngressPointResponse$NetworkConfiguration": "<p>The network configuration for the ingress point.</p>"
1407+
}
1408+
},
13651409
"NoAuthentication": {
13661410
"base": "<p>Explicitly indicate that the relay destination server does not require SMTP credential authentication.</p>",
13671411
"refs": {
@@ -1446,6 +1490,18 @@
14461490
"ImportJob$PreSignedUrl": "<p>The pre-signed URL target for uploading the input file.</p>"
14471491
}
14481492
},
1493+
"PrivateNetworkConfiguration": {
1494+
"base": "<p>Specifies the network configuration for the private ingress point.</p>",
1495+
"refs": {
1496+
"NetworkConfiguration$PrivateNetworkConfiguration": "<p>Specifies the network configuration for the private ingress point.</p>"
1497+
}
1498+
},
1499+
"PublicNetworkConfiguration": {
1500+
"base": "<p>Specifies the network configuration for the public ingress point.</p>",
1501+
"refs": {
1502+
"NetworkConfiguration$PublicNetworkConfiguration": "<p>Specifies the network configuration for the public ingress point.</p>"
1503+
}
1504+
},
14491505
"QBusinessApplicationId": {
14501506
"base": null,
14511507
"refs": {
@@ -2315,6 +2371,12 @@
23152371
"base": "<p>The request validation has failed. For details, see the accompanying error message.</p>",
23162372
"refs": {
23172373
}
2374+
},
2375+
"VpcEndpointId": {
2376+
"base": null,
2377+
"refs": {
2378+
"PrivateNetworkConfiguration$VpcEndpointId": "<p>The identifier of the VPC endpoint to associate with this private ingress point.</p>"
2379+
}
23182380
}
23192381
}
23202382
}

0 commit comments

Comments
 (0)