1{ 2 "version": "1.0", 3 "parameters": { 4 "Region": { 5 "builtIn": "AWS::Region", 6 "required": false, 7 "documentation": "The AWS region used to dispatch the request.", 8 "type": "String" 9 }, 10 "UseDualStack": { 11 "builtIn": "AWS::UseDualStack", 12 "required": true, 13 "default": false, 14 "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", 15 "type": "Boolean" 16 }, 17 "UseFIPS": { 18 "builtIn": "AWS::UseFIPS", 19 "required": true, 20 "default": false, 21 "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", 22 "type": "Boolean" 23 }, 24 "Endpoint": { 25 "builtIn": "SDK::Endpoint", 26 "required": false, 27 "documentation": "Override the endpoint used to send this request", 28 "type": "String" 29 } 30 }, 31 "rules": [ 32 { 33 "conditions": [ 34 { 35 "fn": "isSet", 36 "argv": [ 37 { 38 "ref": "Endpoint" 39 } 40 ] 41 } 42 ], 43 "type": "tree", 44 "rules": [ 45 { 46 "conditions": [ 47 { 48 "fn": "booleanEquals", 49 "argv": [ 50 { 51 "ref": "UseFIPS" 52 }, 53 true 54 ] 55 } 56 ], 57 "error": "Invalid Configuration: FIPS and custom endpoint are not supported", 58 "type": "error" 59 }, 60 { 61 "conditions": [ 62 { 63 "fn": "booleanEquals", 64 "argv": [ 65 { 66 "ref": "UseDualStack" 67 }, 68 true 69 ] 70 } 71 ], 72 "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", 73 "type": "error" 74 }, 75 { 76 "conditions": [], 77 "endpoint": { 78 "url": { 79 "ref": "Endpoint" 80 }, 81 "properties": {}, 82 "headers": {} 83 }, 84 "type": "endpoint" 85 } 86 ] 87 }, 88 { 89 "conditions": [ 90 { 91 "fn": "isSet", 92 "argv": [ 93 { 94 "ref": "Region" 95 } 96 ] 97 } 98 ], 99 "type": "tree", 100 "rules": [ 101 { 102 "conditions": [ 103 { 104 "fn": "aws.partition", 105 "argv": [ 106 { 107 "ref": "Region" 108 } 109 ], 110 "assign": "PartitionResult" 111 } 112 ], 113 "type": "tree", 114 "rules": [ 115 { 116 "conditions": [ 117 { 118 "fn": "booleanEquals", 119 "argv": [ 120 { 121 "ref": "UseFIPS" 122 }, 123 true 124 ] 125 }, 126 { 127 "fn": "booleanEquals", 128 "argv": [ 129 { 130 "ref": "UseDualStack" 131 }, 132 true 133 ] 134 } 135 ], 136 "type": "tree", 137 "rules": [ 138 { 139 "conditions": [ 140 { 141 "fn": "booleanEquals", 142 "argv": [ 143 true, 144 { 145 "fn": "getAttr", 146 "argv": [ 147 { 148 "ref": "PartitionResult" 149 }, 150 "supportsFIPS" 151 ] 152 } 153 ] 154 }, 155 { 156 "fn": "booleanEquals", 157 "argv": [ 158 true, 159 { 160 "fn": "getAttr", 161 "argv": [ 162 { 163 "ref": "PartitionResult" 164 }, 165 "supportsDualStack" 166 ] 167 } 168 ] 169 } 170 ], 171 "type": "tree", 172 "rules": [ 173 { 174 "conditions": [], 175 "endpoint": { 176 "url": "https://elastictranscoder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", 177 "properties": {}, 178 "headers": {} 179 }, 180 "type": "endpoint" 181 } 182 ] 183 }, 184 { 185 "conditions": [], 186 "error": "FIPS and DualStack are enabled, but this partition does not support one or both", 187 "type": "error" 188 } 189 ] 190 }, 191 { 192 "conditions": [ 193 { 194 "fn": "booleanEquals", 195 "argv": [ 196 { 197 "ref": "UseFIPS" 198 }, 199 true 200 ] 201 } 202 ], 203 "type": "tree", 204 "rules": [ 205 { 206 "conditions": [ 207 { 208 "fn": "booleanEquals", 209 "argv": [ 210 true, 211 { 212 "fn": "getAttr", 213 "argv": [ 214 { 215 "ref": "PartitionResult" 216 }, 217 "supportsFIPS" 218 ] 219 } 220 ] 221 } 222 ], 223 "type": "tree", 224 "rules": [ 225 { 226 "conditions": [], 227 "endpoint": { 228 "url": "https://elastictranscoder-fips.{Region}.{PartitionResult#dnsSuffix}", 229 "properties": {}, 230 "headers": {} 231 }, 232 "type": "endpoint" 233 } 234 ] 235 }, 236 { 237 "conditions": [], 238 "error": "FIPS is enabled but this partition does not support FIPS", 239 "type": "error" 240 } 241 ] 242 }, 243 { 244 "conditions": [ 245 { 246 "fn": "booleanEquals", 247 "argv": [ 248 { 249 "ref": "UseDualStack" 250 }, 251 true 252 ] 253 } 254 ], 255 "type": "tree", 256 "rules": [ 257 { 258 "conditions": [ 259 { 260 "fn": "booleanEquals", 261 "argv": [ 262 true, 263 { 264 "fn": "getAttr", 265 "argv": [ 266 { 267 "ref": "PartitionResult" 268 }, 269 "supportsDualStack" 270 ] 271 } 272 ] 273 } 274 ], 275 "type": "tree", 276 "rules": [ 277 { 278 "conditions": [], 279 "endpoint": { 280 "url": "https://elastictranscoder.{Region}.{PartitionResult#dualStackDnsSuffix}", 281 "properties": {}, 282 "headers": {} 283 }, 284 "type": "endpoint" 285 } 286 ] 287 }, 288 { 289 "conditions": [], 290 "error": "DualStack is enabled but this partition does not support DualStack", 291 "type": "error" 292 } 293 ] 294 }, 295 { 296 "conditions": [], 297 "endpoint": { 298 "url": "https://elastictranscoder.{Region}.{PartitionResult#dnsSuffix}", 299 "properties": {}, 300 "headers": {} 301 }, 302 "type": "endpoint" 303 } 304 ] 305 } 306 ] 307 }, 308 { 309 "conditions": [], 310 "error": "Invalid Configuration: Missing Region", 311 "type": "error" 312 } 313 ] 314}