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 "UseFIPS": { 11 "builtIn": "AWS::UseFIPS", 12 "required": true, 13 "default": false, 14 "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.", 15 "type": "Boolean" 16 }, 17 "UseDualStack": { 18 "builtIn": "AWS::UseDualStack", 19 "required": true, 20 "default": false, 21 "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY 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 "ApiType": { 31 "required": true, 32 "documentation": "Parameter to determine whether current API is a control plane or dataplane API", 33 "type": "String" 34 } 35 }, 36 "rules": [ 37 { 38 "conditions": [ 39 { 40 "fn": "isSet", 41 "argv": [ 42 { 43 "ref": "Endpoint" 44 } 45 ] 46 } 47 ], 48 "rules": [ 49 { 50 "conditions": [ 51 { 52 "fn": "booleanEquals", 53 "argv": [ 54 { 55 "ref": "UseFIPS" 56 }, 57 true 58 ] 59 } 60 ], 61 "error": "Invalid Configuration: FIPS and custom endpoint are not supported", 62 "type": "error" 63 }, 64 { 65 "conditions": [ 66 { 67 "fn": "booleanEquals", 68 "argv": [ 69 { 70 "ref": "UseDualStack" 71 }, 72 true 73 ] 74 } 75 ], 76 "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", 77 "type": "error" 78 }, 79 { 80 "conditions": [], 81 "endpoint": { 82 "url": { 83 "ref": "Endpoint" 84 }, 85 "properties": {}, 86 "headers": {} 87 }, 88 "type": "endpoint" 89 } 90 ], 91 "type": "tree" 92 }, 93 { 94 "conditions": [ 95 { 96 "fn": "isSet", 97 "argv": [ 98 { 99 "ref": "Region" 100 } 101 ] 102 } 103 ], 104 "rules": [ 105 { 106 "conditions": [ 107 { 108 "fn": "aws.partition", 109 "argv": [ 110 { 111 "ref": "Region" 112 } 113 ], 114 "assign": "PartitionResult" 115 } 116 ], 117 "rules": [ 118 { 119 "conditions": [ 120 { 121 "fn": "booleanEquals", 122 "argv": [ 123 { 124 "ref": "UseFIPS" 125 }, 126 true 127 ] 128 }, 129 { 130 "fn": "booleanEquals", 131 "argv": [ 132 { 133 "ref": "UseDualStack" 134 }, 135 true 136 ] 137 } 138 ], 139 "rules": [ 140 { 141 "conditions": [ 142 { 143 "fn": "booleanEquals", 144 "argv": [ 145 true, 146 { 147 "fn": "getAttr", 148 "argv": [ 149 { 150 "ref": "PartitionResult" 151 }, 152 "supportsFIPS" 153 ] 154 } 155 ] 156 }, 157 { 158 "fn": "booleanEquals", 159 "argv": [ 160 true, 161 { 162 "fn": "getAttr", 163 "argv": [ 164 { 165 "ref": "PartitionResult" 166 }, 167 "supportsDualStack" 168 ] 169 } 170 ] 171 } 172 ], 173 "rules": [ 174 { 175 "conditions": [ 176 { 177 "fn": "stringEquals", 178 "argv": [ 179 { 180 "ref": "ApiType" 181 }, 182 "ControlPlane" 183 ] 184 } 185 ], 186 "endpoint": { 187 "url": "https://neptune-graph-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", 188 "properties": {}, 189 "headers": {} 190 }, 191 "type": "endpoint" 192 }, 193 { 194 "conditions": [ 195 { 196 "fn": "stringEquals", 197 "argv": [ 198 { 199 "ref": "ApiType" 200 }, 201 "DataPlane" 202 ] 203 } 204 ], 205 "error": "Invalid Configuration: fips endpoint is not supported for this API", 206 "type": "error" 207 }, 208 { 209 "conditions": [], 210 "error": "Invalid Configuration: Unknown ApiType", 211 "type": "error" 212 } 213 ], 214 "type": "tree" 215 }, 216 { 217 "conditions": [], 218 "error": "FIPS and DualStack are enabled, but this partition does not support one or both", 219 "type": "error" 220 } 221 ], 222 "type": "tree" 223 }, 224 { 225 "conditions": [ 226 { 227 "fn": "booleanEquals", 228 "argv": [ 229 { 230 "ref": "UseFIPS" 231 }, 232 true 233 ] 234 } 235 ], 236 "rules": [ 237 { 238 "conditions": [ 239 { 240 "fn": "booleanEquals", 241 "argv": [ 242 true, 243 { 244 "fn": "getAttr", 245 "argv": [ 246 { 247 "ref": "PartitionResult" 248 }, 249 "supportsFIPS" 250 ] 251 } 252 ] 253 } 254 ], 255 "rules": [ 256 { 257 "conditions": [ 258 { 259 "fn": "stringEquals", 260 "argv": [ 261 { 262 "ref": "ApiType" 263 }, 264 "ControlPlane" 265 ] 266 } 267 ], 268 "endpoint": { 269 "url": "https://neptune-graph-fips.{Region}.{PartitionResult#dnsSuffix}", 270 "properties": {}, 271 "headers": {} 272 }, 273 "type": "endpoint" 274 }, 275 { 276 "conditions": [ 277 { 278 "fn": "stringEquals", 279 "argv": [ 280 { 281 "ref": "ApiType" 282 }, 283 "DataPlane" 284 ] 285 } 286 ], 287 "error": "Invalid Configuration: fips endpoint is not supported for this API", 288 "type": "error" 289 }, 290 { 291 "conditions": [], 292 "error": "Invalid Configuration: Unknown ApiType", 293 "type": "error" 294 } 295 ], 296 "type": "tree" 297 }, 298 { 299 "conditions": [], 300 "error": "FIPS is enabled but this partition does not support FIPS", 301 "type": "error" 302 } 303 ], 304 "type": "tree" 305 }, 306 { 307 "conditions": [ 308 { 309 "fn": "booleanEquals", 310 "argv": [ 311 { 312 "ref": "UseDualStack" 313 }, 314 true 315 ] 316 } 317 ], 318 "rules": [ 319 { 320 "conditions": [ 321 { 322 "fn": "booleanEquals", 323 "argv": [ 324 true, 325 { 326 "fn": "getAttr", 327 "argv": [ 328 { 329 "ref": "PartitionResult" 330 }, 331 "supportsDualStack" 332 ] 333 } 334 ] 335 } 336 ], 337 "rules": [ 338 { 339 "conditions": [ 340 { 341 "fn": "stringEquals", 342 "argv": [ 343 { 344 "ref": "ApiType" 345 }, 346 "ControlPlane" 347 ] 348 } 349 ], 350 "endpoint": { 351 "url": "https://neptune-graph.{Region}.{PartitionResult#dualStackDnsSuffix}", 352 "properties": {}, 353 "headers": {} 354 }, 355 "type": "endpoint" 356 }, 357 { 358 "conditions": [ 359 { 360 "fn": "stringEquals", 361 "argv": [ 362 { 363 "ref": "ApiType" 364 }, 365 "DataPlane" 366 ] 367 } 368 ], 369 "endpoint": { 370 "url": "https://neptune-graph.{Region}.on.aws", 371 "properties": {}, 372 "headers": {} 373 }, 374 "type": "endpoint" 375 }, 376 { 377 "conditions": [], 378 "error": "Invalid Configuration: Unknown ApiType", 379 "type": "error" 380 } 381 ], 382 "type": "tree" 383 }, 384 { 385 "conditions": [], 386 "error": "DualStack is enabled but this partition does not support DualStack", 387 "type": "error" 388 } 389 ], 390 "type": "tree" 391 }, 392 { 393 "conditions": [ 394 { 395 "fn": "stringEquals", 396 "argv": [ 397 { 398 "ref": "ApiType" 399 }, 400 "ControlPlane" 401 ] 402 } 403 ], 404 "endpoint": { 405 "url": "https://neptune-graph.{Region}.{PartitionResult#dnsSuffix}", 406 "properties": {}, 407 "headers": {} 408 }, 409 "type": "endpoint" 410 }, 411 { 412 "conditions": [ 413 { 414 "fn": "stringEquals", 415 "argv": [ 416 { 417 "ref": "ApiType" 418 }, 419 "DataPlane" 420 ] 421 } 422 ], 423 "endpoint": { 424 "url": "https://{Region}.neptune-graph.{PartitionResult#dnsSuffix}", 425 "properties": {}, 426 "headers": {} 427 }, 428 "type": "endpoint" 429 }, 430 { 431 "conditions": [], 432 "error": "Invalid Configuration: Unknown ApiType", 433 "type": "error" 434 } 435 ], 436 "type": "tree" 437 } 438 ], 439 "type": "tree" 440 }, 441 { 442 "conditions": [], 443 "error": "Invalid Configuration: Missing Region", 444 "type": "error" 445 } 446 ] 447}