316 lines
13 KiB
JavaScript
316 lines
13 KiB
JavaScript
|
export const ruleSet = {
|
||
|
version: "1.0",
|
||
|
parameters: {
|
||
|
Region: {
|
||
|
builtIn: "AWS::Region",
|
||
|
required: false,
|
||
|
documentation: "The AWS region used to dispatch the request.",
|
||
|
type: "String",
|
||
|
},
|
||
|
UseDualStack: {
|
||
|
builtIn: "AWS::UseDualStack",
|
||
|
required: true,
|
||
|
default: false,
|
||
|
documentation: "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
|
||
|
type: "Boolean",
|
||
|
},
|
||
|
UseFIPS: {
|
||
|
builtIn: "AWS::UseFIPS",
|
||
|
required: true,
|
||
|
default: false,
|
||
|
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.",
|
||
|
type: "Boolean",
|
||
|
},
|
||
|
Endpoint: {
|
||
|
builtIn: "SDK::Endpoint",
|
||
|
required: false,
|
||
|
documentation: "Override the endpoint used to send this request",
|
||
|
type: "String",
|
||
|
},
|
||
|
},
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "aws.partition",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "Region",
|
||
|
},
|
||
|
],
|
||
|
assign: "PartitionResult",
|
||
|
},
|
||
|
],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "isSet",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "Endpoint",
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
fn: "parseURL",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "Endpoint",
|
||
|
},
|
||
|
],
|
||
|
assign: "url",
|
||
|
},
|
||
|
],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "UseFIPS",
|
||
|
},
|
||
|
true,
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
error: "Invalid Configuration: FIPS and custom endpoint are not supported",
|
||
|
type: "error",
|
||
|
},
|
||
|
{
|
||
|
conditions: [],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "UseDualStack",
|
||
|
},
|
||
|
true,
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
error: "Invalid Configuration: Dualstack and custom endpoint are not supported",
|
||
|
type: "error",
|
||
|
},
|
||
|
{
|
||
|
conditions: [],
|
||
|
endpoint: {
|
||
|
url: {
|
||
|
ref: "Endpoint",
|
||
|
},
|
||
|
properties: {},
|
||
|
headers: {},
|
||
|
},
|
||
|
type: "endpoint",
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "UseFIPS",
|
||
|
},
|
||
|
true,
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "UseDualStack",
|
||
|
},
|
||
|
true,
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
true,
|
||
|
{
|
||
|
fn: "getAttr",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "PartitionResult",
|
||
|
},
|
||
|
"supportsFIPS",
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
true,
|
||
|
{
|
||
|
fn: "getAttr",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "PartitionResult",
|
||
|
},
|
||
|
"supportsDualStack",
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [],
|
||
|
endpoint: {
|
||
|
url: "https://email-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
|
||
|
properties: {},
|
||
|
headers: {},
|
||
|
},
|
||
|
type: "endpoint",
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
conditions: [],
|
||
|
error: "FIPS and DualStack are enabled, but this partition does not support one or both",
|
||
|
type: "error",
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "UseFIPS",
|
||
|
},
|
||
|
true,
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
true,
|
||
|
{
|
||
|
fn: "getAttr",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "PartitionResult",
|
||
|
},
|
||
|
"supportsFIPS",
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [],
|
||
|
endpoint: {
|
||
|
url: "https://email-fips.{Region}.{PartitionResult#dnsSuffix}",
|
||
|
properties: {},
|
||
|
headers: {},
|
||
|
},
|
||
|
type: "endpoint",
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
conditions: [],
|
||
|
error: "FIPS is enabled but this partition does not support FIPS",
|
||
|
type: "error",
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "UseDualStack",
|
||
|
},
|
||
|
true,
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [
|
||
|
{
|
||
|
fn: "booleanEquals",
|
||
|
argv: [
|
||
|
true,
|
||
|
{
|
||
|
fn: "getAttr",
|
||
|
argv: [
|
||
|
{
|
||
|
ref: "PartitionResult",
|
||
|
},
|
||
|
"supportsDualStack",
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
type: "tree",
|
||
|
rules: [
|
||
|
{
|
||
|
conditions: [],
|
||
|
endpoint: {
|
||
|
url: "https://email.{Region}.{PartitionResult#dualStackDnsSuffix}",
|
||
|
properties: {},
|
||
|
headers: {},
|
||
|
},
|
||
|
type: "endpoint",
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
conditions: [],
|
||
|
error: "DualStack is enabled but this partition does not support DualStack",
|
||
|
type: "error",
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
conditions: [],
|
||
|
endpoint: {
|
||
|
url: "https://email.{Region}.{PartitionResult#dnsSuffix}",
|
||
|
properties: {},
|
||
|
headers: {},
|
||
|
},
|
||
|
type: "endpoint",
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
};
|