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