1{ 2 "version": "1.0", 3 "parameters": { 4 "KvsARN": { 5 "required": false, 6 "documentation": "The ARN of the Key Value Store", 7 "type": "String" 8 }, 9 "Region": { 10 "builtIn": "AWS::Region", 11 "required": false, 12 "documentation": "The AWS region used to dispatch the request.", 13 "type": "String" 14 }, 15 "UseFIPS": { 16 "builtIn": "AWS::UseFIPS", 17 "required": true, 18 "default": false, 19 "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.", 20 "type": "Boolean" 21 }, 22 "Endpoint": { 23 "builtIn": "SDK::Endpoint", 24 "required": false, 25 "documentation": "Override the endpoint used to send this request", 26 "type": "String" 27 } 28 }, 29 "rules": [ 30 { 31 "conditions": [ 32 { 33 "fn": "booleanEquals", 34 "argv": [ 35 { 36 "ref": "UseFIPS" 37 }, 38 false 39 ] 40 } 41 ], 42 "rules": [ 43 { 44 "conditions": [ 45 { 46 "fn": "isSet", 47 "argv": [ 48 { 49 "ref": "KvsARN" 50 } 51 ] 52 } 53 ], 54 "rules": [ 55 { 56 "conditions": [ 57 { 58 "fn": "aws.parseArn", 59 "argv": [ 60 { 61 "ref": "KvsARN" 62 } 63 ], 64 "assign": "parsedArn" 65 } 66 ], 67 "rules": [ 68 { 69 "conditions": [ 70 { 71 "fn": "stringEquals", 72 "argv": [ 73 { 74 "fn": "getAttr", 75 "argv": [ 76 { 77 "ref": "parsedArn" 78 }, 79 "service" 80 ] 81 }, 82 "cloudfront" 83 ] 84 } 85 ], 86 "rules": [ 87 { 88 "conditions": [ 89 { 90 "fn": "stringEquals", 91 "argv": [ 92 { 93 "fn": "getAttr", 94 "argv": [ 95 { 96 "ref": "parsedArn" 97 }, 98 "region" 99 ] 100 }, 101 "" 102 ] 103 } 104 ], 105 "rules": [ 106 { 107 "conditions": [ 108 { 109 "fn": "getAttr", 110 "argv": [ 111 { 112 "ref": "parsedArn" 113 }, 114 "resourceId[0]" 115 ], 116 "assign": "arnType" 117 } 118 ], 119 "rules": [ 120 { 121 "conditions": [ 122 { 123 "fn": "not", 124 "argv": [ 125 { 126 "fn": "stringEquals", 127 "argv": [ 128 { 129 "ref": "arnType" 130 }, 131 "" 132 ] 133 } 134 ] 135 } 136 ], 137 "rules": [ 138 { 139 "conditions": [ 140 { 141 "fn": "stringEquals", 142 "argv": [ 143 { 144 "ref": "arnType" 145 }, 146 "key-value-store" 147 ] 148 } 149 ], 150 "rules": [ 151 { 152 "conditions": [ 153 { 154 "fn": "stringEquals", 155 "argv": [ 156 { 157 "fn": "getAttr", 158 "argv": [ 159 { 160 "ref": "parsedArn" 161 }, 162 "partition" 163 ] 164 }, 165 "aws" 166 ] 167 } 168 ], 169 "rules": [ 170 { 171 "conditions": [ 172 { 173 "fn": "isSet", 174 "argv": [ 175 { 176 "ref": "Region" 177 } 178 ] 179 } 180 ], 181 "rules": [ 182 { 183 "conditions": [ 184 { 185 "fn": "aws.partition", 186 "argv": [ 187 { 188 "ref": "Region" 189 } 190 ], 191 "assign": "partitionResult" 192 } 193 ], 194 "rules": [ 195 { 196 "conditions": [ 197 { 198 "fn": "stringEquals", 199 "argv": [ 200 { 201 "fn": "getAttr", 202 "argv": [ 203 { 204 "ref": "partitionResult" 205 }, 206 "name" 207 ] 208 }, 209 "{parsedArn#partition}" 210 ] 211 } 212 ], 213 "rules": [ 214 { 215 "conditions": [ 216 { 217 "fn": "isSet", 218 "argv": [ 219 { 220 "ref": "Endpoint" 221 } 222 ] 223 } 224 ], 225 "rules": [ 226 { 227 "conditions": [ 228 { 229 "fn": "parseURL", 230 "argv": [ 231 { 232 "ref": "Endpoint" 233 } 234 ], 235 "assign": "url" 236 } 237 ], 238 "rules": [ 239 { 240 "conditions": [], 241 "endpoint": { 242 "url": "{url#scheme}://{parsedArn#accountId}.{url#authority}{url#path}", 243 "properties": { 244 "authSchemes": [ 245 { 246 "name": "sigv4a", 247 "signingName": "cloudfront-keyvaluestore", 248 "signingRegionSet": [ 249 "*" 250 ] 251 } 252 ] 253 }, 254 "headers": {} 255 }, 256 "type": "endpoint" 257 } 258 ], 259 "type": "tree" 260 }, 261 { 262 "conditions": [], 263 "error": "Provided endpoint is not a valid URL", 264 "type": "error" 265 } 266 ], 267 "type": "tree" 268 }, 269 { 270 "conditions": [], 271 "endpoint": { 272 "url": "https://{parsedArn#accountId}.cloudfront-kvs.global.api.aws", 273 "properties": { 274 "authSchemes": [ 275 { 276 "name": "sigv4a", 277 "signingName": "cloudfront-keyvaluestore", 278 "signingRegionSet": [ 279 "*" 280 ] 281 } 282 ] 283 }, 284 "headers": {} 285 }, 286 "type": "endpoint" 287 } 288 ], 289 "type": "tree" 290 }, 291 { 292 "conditions": [], 293 "error": "Client was configured for partition `{partitionResult#name}` but Kvs ARN has `{parsedArn#partition}`", 294 "type": "error" 295 } 296 ], 297 "type": "tree" 298 } 299 ], 300 "type": "tree" 301 }, 302 { 303 "conditions": [ 304 { 305 "fn": "isSet", 306 "argv": [ 307 { 308 "ref": "Endpoint" 309 } 310 ] 311 } 312 ], 313 "rules": [ 314 { 315 "conditions": [ 316 { 317 "fn": "parseURL", 318 "argv": [ 319 { 320 "ref": "Endpoint" 321 } 322 ], 323 "assign": "url" 324 } 325 ], 326 "rules": [ 327 { 328 "conditions": [], 329 "endpoint": { 330 "url": "{url#scheme}://{parsedArn#accountId}.{url#authority}{url#path}", 331 "properties": { 332 "authSchemes": [ 333 { 334 "name": "sigv4a", 335 "signingName": "cloudfront-keyvaluestore", 336 "signingRegionSet": [ 337 "*" 338 ] 339 } 340 ] 341 }, 342 "headers": {} 343 }, 344 "type": "endpoint" 345 } 346 ], 347 "type": "tree" 348 }, 349 { 350 "conditions": [], 351 "error": "Provided endpoint is not a valid URL", 352 "type": "error" 353 } 354 ], 355 "type": "tree" 356 }, 357 { 358 "conditions": [], 359 "endpoint": { 360 "url": "https://{parsedArn#accountId}.cloudfront-kvs.global.api.aws", 361 "properties": { 362 "authSchemes": [ 363 { 364 "name": "sigv4a", 365 "signingName": "cloudfront-keyvaluestore", 366 "signingRegionSet": [ 367 "*" 368 ] 369 } 370 ] 371 }, 372 "headers": {} 373 }, 374 "type": "endpoint" 375 } 376 ], 377 "type": "tree" 378 }, 379 { 380 "conditions": [], 381 "error": "CloudFront-KeyValueStore is not supported in partition `{parsedArn#partition}`", 382 "type": "error" 383 } 384 ], 385 "type": "tree" 386 }, 387 { 388 "conditions": [], 389 "error": "ARN resource type is invalid. Expected `key-value-store`, found: `{arnType}`", 390 "type": "error" 391 } 392 ], 393 "type": "tree" 394 }, 395 { 396 "conditions": [], 397 "error": "No resource type found in the KVS ARN. Resource type must be `key-value-store`.", 398 "type": "error" 399 } 400 ], 401 "type": "tree" 402 }, 403 { 404 "conditions": [], 405 "error": "No resource type found in the KVS ARN. Resource type must be `key-value-store`.", 406 "type": "error" 407 } 408 ], 409 "type": "tree" 410 }, 411 { 412 "conditions": [], 413 "error": "Provided ARN must be a global resource ARN. Found: `{parsedArn#region}`", 414 "type": "error" 415 } 416 ], 417 "type": "tree" 418 }, 419 { 420 "conditions": [], 421 "error": "Provided ARN is not a valid CloudFront Service ARN. Found: `{parsedArn#service}`", 422 "type": "error" 423 } 424 ], 425 "type": "tree" 426 }, 427 { 428 "conditions": [], 429 "error": "KVS ARN must be a valid ARN", 430 "type": "error" 431 } 432 ], 433 "type": "tree" 434 }, 435 { 436 "conditions": [], 437 "error": "KVS ARN must be provided to use this service", 438 "type": "error" 439 } 440 ], 441 "type": "tree" 442 }, 443 { 444 "conditions": [], 445 "error": "Invalid Configuration: FIPS is not supported with CloudFront-KeyValueStore.", 446 "type": "error" 447 } 448 ] 449}