• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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}