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://data-ats.iot-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 { 228 "fn": "stringEquals", 229 "argv": [ 230 { 231 "ref": "Region" 232 }, 233 "ca-central-1" 234 ] 235 } 236 ], 237 "endpoint": { 238 "url": "https://data.iot-fips.ca-central-1.amazonaws.com", 239 "properties": {}, 240 "headers": {} 241 }, 242 "type": "endpoint" 243 }, 244 { 245 "conditions": [ 246 { 247 "fn": "stringEquals", 248 "argv": [ 249 { 250 "ref": "Region" 251 }, 252 "us-east-1" 253 ] 254 } 255 ], 256 "endpoint": { 257 "url": "https://data.iot-fips.us-east-1.amazonaws.com", 258 "properties": {}, 259 "headers": {} 260 }, 261 "type": "endpoint" 262 }, 263 { 264 "conditions": [ 265 { 266 "fn": "stringEquals", 267 "argv": [ 268 { 269 "ref": "Region" 270 }, 271 "us-east-2" 272 ] 273 } 274 ], 275 "endpoint": { 276 "url": "https://data.iot-fips.us-east-2.amazonaws.com", 277 "properties": {}, 278 "headers": {} 279 }, 280 "type": "endpoint" 281 }, 282 { 283 "conditions": [ 284 { 285 "fn": "stringEquals", 286 "argv": [ 287 { 288 "ref": "Region" 289 }, 290 "us-west-1" 291 ] 292 } 293 ], 294 "endpoint": { 295 "url": "https://data.iot-fips.us-west-1.amazonaws.com", 296 "properties": {}, 297 "headers": {} 298 }, 299 "type": "endpoint" 300 }, 301 { 302 "conditions": [ 303 { 304 "fn": "stringEquals", 305 "argv": [ 306 { 307 "ref": "Region" 308 }, 309 "us-west-2" 310 ] 311 } 312 ], 313 "endpoint": { 314 "url": "https://data.iot-fips.us-west-2.amazonaws.com", 315 "properties": {}, 316 "headers": {} 317 }, 318 "type": "endpoint" 319 }, 320 { 321 "conditions": [ 322 { 323 "fn": "stringEquals", 324 "argv": [ 325 { 326 "ref": "Region" 327 }, 328 "us-gov-east-1" 329 ] 330 } 331 ], 332 "endpoint": { 333 "url": "https://data.iot-fips.us-gov-east-1.amazonaws.com", 334 "properties": {}, 335 "headers": {} 336 }, 337 "type": "endpoint" 338 }, 339 { 340 "conditions": [ 341 { 342 "fn": "stringEquals", 343 "argv": [ 344 { 345 "ref": "Region" 346 }, 347 "us-gov-west-1" 348 ] 349 } 350 ], 351 "endpoint": { 352 "url": "https://data.iot-fips.us-gov-west-1.amazonaws.com", 353 "properties": {}, 354 "headers": {} 355 }, 356 "type": "endpoint" 357 }, 358 { 359 "conditions": [], 360 "endpoint": { 361 "url": "https://data-ats.iot-fips.{Region}.{PartitionResult#dnsSuffix}", 362 "properties": {}, 363 "headers": {} 364 }, 365 "type": "endpoint" 366 } 367 ] 368 }, 369 { 370 "conditions": [], 371 "error": "FIPS is enabled but this partition does not support FIPS", 372 "type": "error" 373 } 374 ] 375 }, 376 { 377 "conditions": [ 378 { 379 "fn": "booleanEquals", 380 "argv": [ 381 { 382 "ref": "UseDualStack" 383 }, 384 true 385 ] 386 } 387 ], 388 "type": "tree", 389 "rules": [ 390 { 391 "conditions": [ 392 { 393 "fn": "booleanEquals", 394 "argv": [ 395 true, 396 { 397 "fn": "getAttr", 398 "argv": [ 399 { 400 "ref": "PartitionResult" 401 }, 402 "supportsDualStack" 403 ] 404 } 405 ] 406 } 407 ], 408 "type": "tree", 409 "rules": [ 410 { 411 "conditions": [], 412 "endpoint": { 413 "url": "https://data-ats.iot.{Region}.{PartitionResult#dualStackDnsSuffix}", 414 "properties": {}, 415 "headers": {} 416 }, 417 "type": "endpoint" 418 } 419 ] 420 }, 421 { 422 "conditions": [], 423 "error": "DualStack is enabled but this partition does not support DualStack", 424 "type": "error" 425 } 426 ] 427 }, 428 { 429 "conditions": [ 430 { 431 "fn": "stringEquals", 432 "argv": [ 433 { 434 "ref": "Region" 435 }, 436 "cn-north-1" 437 ] 438 } 439 ], 440 "endpoint": { 441 "url": "https://data.ats.iot.cn-north-1.amazonaws.com.cn", 442 "properties": {}, 443 "headers": {} 444 }, 445 "type": "endpoint" 446 }, 447 { 448 "conditions": [ 449 { 450 "fn": "stringEquals", 451 "argv": [ 452 "aws", 453 { 454 "fn": "getAttr", 455 "argv": [ 456 { 457 "ref": "PartitionResult" 458 }, 459 "name" 460 ] 461 } 462 ] 463 } 464 ], 465 "endpoint": { 466 "url": "https://data-ats.iot.{Region}.amazonaws.com", 467 "properties": {}, 468 "headers": {} 469 }, 470 "type": "endpoint" 471 }, 472 { 473 "conditions": [ 474 { 475 "fn": "stringEquals", 476 "argv": [ 477 "aws-cn", 478 { 479 "fn": "getAttr", 480 "argv": [ 481 { 482 "ref": "PartitionResult" 483 }, 484 "name" 485 ] 486 } 487 ] 488 } 489 ], 490 "endpoint": { 491 "url": "https://data-ats.iot.{Region}.amazonaws.com.cn", 492 "properties": {}, 493 "headers": {} 494 }, 495 "type": "endpoint" 496 }, 497 { 498 "conditions": [ 499 { 500 "fn": "stringEquals", 501 "argv": [ 502 "aws-us-gov", 503 { 504 "fn": "getAttr", 505 "argv": [ 506 { 507 "ref": "PartitionResult" 508 }, 509 "name" 510 ] 511 } 512 ] 513 } 514 ], 515 "endpoint": { 516 "url": "https://data-ats.iot.{Region}.amazonaws.com", 517 "properties": {}, 518 "headers": {} 519 }, 520 "type": "endpoint" 521 }, 522 { 523 "conditions": [], 524 "endpoint": { 525 "url": "https://data-ats.iot.{Region}.{PartitionResult#dnsSuffix}", 526 "properties": {}, 527 "headers": {} 528 }, 529 "type": "endpoint" 530 } 531 ] 532 } 533 ] 534 }, 535 { 536 "conditions": [], 537 "error": "Invalid Configuration: Missing Region", 538 "type": "error" 539 } 540 ] 541}