1{ 2 "version": "1.2", 3 "serviceId": "com.amazonaws#EventBridge", 4 "parameters": { 5 "region": { 6 "type": "string", 7 "builtIn": "AWS::Region", 8 "required": true 9 }, 10 "useDualStackEndpoint": { 11 "type": "boolean", 12 "builtIn": "AWS::UseDualStackEndpoint" 13 }, 14 "useFIPSEndpoint": { 15 "type": "boolean", 16 "builtIn": "AWS::UseFIPSEndpoint" 17 }, 18 "endpointId": { 19 "type": "string" 20 } 21 }, 22 "rules": [ 23 { 24 "conditions": [ 25 { 26 "fn": "aws.partition", 27 "argv": [ 28 { 29 "ref": "region" 30 } 31 ], 32 "assign": "partitionResult" 33 } 34 ], 35 "rules": [ 36 { 37 "conditions": [ 38 { 39 "fn": "isSet", 40 "argv": [ 41 { 42 "ref": "endpointId" 43 } 44 ] 45 } 46 ], 47 "rules": [ 48 { 49 "conditions": [ 50 { 51 "fn": "isSet", 52 "argv": [ 53 { 54 "ref": "useFIPSEndpoint" 55 } 56 ] 57 }, 58 { 59 "fn": "booleanEquals", 60 "argv": [ 61 { 62 "ref": "useFIPSEndpoint" 63 }, 64 true 65 ] 66 } 67 ], 68 "error": "FIPS endpoints not supported with multi-region endpoints", 69 "type": "error" 70 }, 71 { 72 "conditions": [ 73 { 74 "fn": "not", 75 "argv": [ 76 { 77 "fn": "isSet", 78 "argv": [ 79 { 80 "ref": "useFIPSEndpoint" 81 } 82 ] 83 } 84 ] 85 }, 86 { 87 "fn": "isSet", 88 "argv": [ 89 { 90 "ref": "useDualStackEndpoint" 91 } 92 ] 93 }, 94 { 95 "fn": "booleanEquals", 96 "argv": [ 97 { 98 "ref": "useDualStackEndpoint" 99 }, 100 true 101 ] 102 } 103 ], 104 "endpoint": { 105 "url": "https://{endpointId}.endpoint.events.{partitionResult#dualStackDnsSuffix}", 106 "properties": { 107 "authSchemes": [ 108 { 109 "name": "v4a", 110 "signingScope": "events", 111 "signingRegions": "*" 112 } 113 ] 114 } 115 }, 116 "type": "endpoint" 117 }, 118 { 119 "conditions": [], 120 "endpoint": { 121 "url": "https://{endpointId}.endpoint.events.{partitionResult#dnsSuffix}", 122 "properties": { 123 "authSchemes": [ 124 { 125 "name": "v4a", 126 "signingScope": "events", 127 "signingRegions": "*" 128 } 129 ] 130 } 131 }, 132 "type": "endpoint" 133 } 134 ], 135 "type": "tree" 136 }, 137 { 138 "conditions": [ 139 { 140 "fn": "isValidHostLabel", 141 "argv": [ 142 { 143 "ref": "region" 144 }, 145 false 146 ] 147 } 148 ], 149 "rules": [ 150 { 151 "conditions": [ 152 { 153 "fn": "isSet", 154 "argv": [ 155 { 156 "ref": "useFIPSEndpoint" 157 } 158 ] 159 }, 160 { 161 "fn": "booleanEquals", 162 "argv": [ 163 { 164 "ref": "useFIPSEndpoint" 165 }, 166 true 167 ] 168 }, 169 { 170 "fn": "not", 171 "argv": [ 172 { 173 "fn": "isSet", 174 "argv": [ 175 { 176 "ref": "useDualStackEndpoint" 177 } 178 ] 179 } 180 ] 181 } 182 ], 183 "endpoint": { 184 "url": "https://events-fips.{region}.{partitionResult#dnsSuffix}", 185 "properties": { 186 "authSchemes": [ 187 { 188 "name": "v4a", 189 "signingScope": "events", 190 "signingRegions": "*" 191 } 192 ] 193 } 194 }, 195 "type": "endpoint" 196 }, 197 { 198 "conditions": [ 199 { 200 "fn": "isSet", 201 "argv": [ 202 { 203 "ref": "useDualStackEndpoint" 204 } 205 ] 206 }, 207 { 208 "fn": "booleanEquals", 209 "argv": [ 210 { 211 "ref": "useDualStackEndpoint" 212 }, 213 true 214 ] 215 }, 216 { 217 "fn": "not", 218 "argv": [ 219 { 220 "fn": "isSet", 221 "argv": [ 222 { 223 "ref": "useFIPSEndpoint" 224 } 225 ] 226 } 227 ] 228 } 229 ], 230 "endpoint": { 231 "url": "https://events.{region}.{partitionResult#dualStackDnsSuffix}", 232 "properties": { 233 "authSchemes": [ 234 { 235 "name": "v4a", 236 "signingScope": "events", 237 "signingRegions": "*" 238 } 239 ] 240 } 241 }, 242 "type": "endpoint" 243 }, 244 { 245 "conditions": [ 246 { 247 "fn": "isSet", 248 "argv": [ 249 { 250 "ref": "useDualStackEndpoint" 251 } 252 ] 253 }, 254 { 255 "fn": "isSet", 256 "argv": [ 257 { 258 "ref": "useFIPSEndpoint" 259 } 260 ] 261 }, 262 { 263 "fn": "booleanEquals", 264 "argv": [ 265 { 266 "ref": "useDualStackEndpoint" 267 }, 268 true 269 ] 270 }, 271 { 272 "fn": "booleanEquals", 273 "argv": [ 274 { 275 "ref": "useFIPSEndpoint" 276 }, 277 true 278 ] 279 } 280 ], 281 "endpoint": { 282 "url": "https://events-fips.{region}.{partitionResult#dualStackDnsSuffix}", 283 "properties": { 284 "authSchemes": [ 285 { 286 "name": "v4a", 287 "signingScope": "events", 288 "signingRegions": "*" 289 } 290 ] 291 } 292 }, 293 "type": "endpoint" 294 }, 295 { 296 "conditions": [], 297 "endpoint": { 298 "url": "https://events.{region}.{partitionResult#dnsSuffix}" 299 }, 300 "type": "endpoint" 301 } 302 ], 303 "type": "tree" 304 }, 305 { 306 "conditions": [], 307 "error": "{region} is not a valid HTTP host-label", 308 "type": "error" 309 } 310 ], 311 "type": "tree" 312 } 313 ] 314}