diff --git a/fast/stages/0-org-setup/schemas/defaults.schema.json b/fast/stages/0-org-setup/schemas/defaults.schema.json
index 98c8406db..a1564c23b 100644
--- a/fast/stages/0-org-setup/schemas/defaults.schema.json
+++ b/fast/stages/0-org-setup/schemas/defaults.schema.json
@@ -835,7 +835,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -861,7 +861,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -900,7 +900,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -933,7 +933,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/0-org-setup/schemas/defaults.schema.md b/fast/stages/0-org-setup/schemas/defaults.schema.md
index bdf1b50b2..69c48beb9 100644
--- a/fast/stages/0-org-setup/schemas/defaults.schema.md
+++ b/fast/stages/0-org-setup/schemas/defaults.schema.md
@@ -249,7 +249,7 @@
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -260,7 +260,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -273,7 +273,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -283,4 +283,4 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
diff --git a/fast/stages/0-org-setup/schemas/folder.schema.json b/fast/stages/0-org-setup/schemas/folder.schema.json
index a9832d9a6..166cb1e3f 100644
--- a/fast/stages/0-org-setup/schemas/folder.schema.json
+++ b/fast/stages/0-org-setup/schemas/folder.schema.json
@@ -531,7 +531,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -557,7 +557,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -596,7 +596,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -629,7 +629,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -669,7 +669,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/0-org-setup/schemas/folder.schema.md b/fast/stages/0-org-setup/schemas/folder.schema.md
index 168f85f72..2a89323f7 100644
--- a/fast/stages/0-org-setup/schemas/folder.schema.md
+++ b/fast/stages/0-org-setup/schemas/folder.schema.md
@@ -173,7 +173,7 @@
- **versioning**: *boolean*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **iam_bindings**: *object*
@@ -184,7 +184,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -197,7 +197,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -207,7 +207,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *object*
@@ -219,7 +219,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*
diff --git a/fast/stages/0-org-setup/schemas/organization.schema.json b/fast/stages/0-org-setup/schemas/organization.schema.json
index b8fb356d5..24a0907c3 100644
--- a/fast/stages/0-org-setup/schemas/organization.schema.json
+++ b/fast/stages/0-org-setup/schemas/organization.schema.json
@@ -542,7 +542,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|$custom_roles:|organizations/|projects/)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -572,7 +572,7 @@
},
"role": {
"type": "string",
- "pattern": "^roles/"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -648,7 +648,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -688,7 +688,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/0-org-setup/schemas/organization.schema.md b/fast/stages/0-org-setup/schemas/organization.schema.md
index 84379b1f9..7d1236078 100644
--- a/fast/stages/0-org-setup/schemas/organization.schema.md
+++ b/fast/stages/0-org-setup/schemas/organization.schema.md
@@ -134,7 +134,7 @@
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|$custom_roles:|organizations/|projects/)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:\$[a-z_-]+:|domain:|group:|mdb:|serviceAccount:|user:|principal:|principalSet:)*
- **iam_bindings**: *object*
@@ -145,7 +145,7 @@
- items: *string*
*pattern: ^(?:\$[a-z_-]+:|domain:|group:|mdb:|serviceAccount:|user:|principal:|principalSet:)*
- ⁺**role**: *string*
-
*pattern: ^roles/*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -168,7 +168,7 @@
*additional properties: false*
- **`^(?:\$[a-z_-]+:|domain:|group:|serviceAccount:|user:|principal:|principalSet:)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:\$[a-z_-]+:|domain:|group:|serviceAccount:|user:|principal:|principalSet:)`**: *object*
@@ -180,7 +180,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **pam_entitlements**: *object*
*additional properties: false*
- **`^[a-z][a-z0-9-]{0,61}[a-z0-9]$`**: *object*
diff --git a/fast/stages/0-org-setup/schemas/project.schema.json b/fast/stages/0-org-setup/schemas/project.schema.json
index 32e1bd81f..d65fa4a58 100644
--- a/fast/stages/0-org-setup/schemas/project.schema.json
+++ b/fast/stages/0-org-setup/schemas/project.schema.json
@@ -1308,7 +1308,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -1334,7 +1334,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1373,7 +1373,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1406,7 +1406,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -1446,7 +1446,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/0-org-setup/schemas/project.schema.md b/fast/stages/0-org-setup/schemas/project.schema.md
index eadce0d3c..a14fb866d 100644
--- a/fast/stages/0-org-setup/schemas/project.schema.md
+++ b/fast/stages/0-org-setup/schemas/project.schema.md
@@ -363,7 +363,7 @@
- **`^[a-z0-9-]+$`**: *reference([bucket](#refs-bucket))*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -374,7 +374,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -387,7 +387,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -397,7 +397,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *object*
@@ -409,7 +409,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*
diff --git a/fast/stages/1-vpcsc/schemas/defaults.schema.json b/fast/stages/1-vpcsc/schemas/defaults.schema.json
index 3b21f4895..d365589b9 100644
--- a/fast/stages/1-vpcsc/schemas/defaults.schema.json
+++ b/fast/stages/1-vpcsc/schemas/defaults.schema.json
@@ -78,7 +78,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -104,7 +104,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -143,7 +143,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -176,7 +176,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/1-vpcsc/schemas/defaults.schema.md b/fast/stages/1-vpcsc/schemas/defaults.schema.md
index c0f1ffbd9..dfc43a393 100644
--- a/fast/stages/1-vpcsc/schemas/defaults.schema.md
+++ b/fast/stages/1-vpcsc/schemas/defaults.schema.md
@@ -31,7 +31,7 @@
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -42,7 +42,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -55,7 +55,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -65,4 +65,4 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
diff --git a/fast/stages/2-networking/schemas/defaults.schema.json b/fast/stages/2-networking/schemas/defaults.schema.json
index 7b0237031..84cdcf256 100644
--- a/fast/stages/2-networking/schemas/defaults.schema.json
+++ b/fast/stages/2-networking/schemas/defaults.schema.json
@@ -754,7 +754,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -780,7 +780,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -819,7 +819,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -852,7 +852,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-networking/schemas/defaults.schema.md b/fast/stages/2-networking/schemas/defaults.schema.md
index 96bf3ebb4..9cb83f318 100644
--- a/fast/stages/2-networking/schemas/defaults.schema.md
+++ b/fast/stages/2-networking/schemas/defaults.schema.md
@@ -228,7 +228,7 @@
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -239,7 +239,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -252,7 +252,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -262,4 +262,4 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
diff --git a/fast/stages/2-networking/schemas/dns.schema.json b/fast/stages/2-networking/schemas/dns.schema.json
index 5692e21eb..cc2bba99b 100644
--- a/fast/stages/2-networking/schemas/dns.schema.json
+++ b/fast/stages/2-networking/schemas/dns.schema.json
@@ -125,7 +125,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
diff --git a/fast/stages/2-networking/schemas/dns.schema.md b/fast/stages/2-networking/schemas/dns.schema.md
index cfbde994e..48a4f8955 100644
--- a/fast/stages/2-networking/schemas/dns.schema.md
+++ b/fast/stages/2-networking/schemas/dns.schema.md
@@ -23,7 +23,7 @@
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **recordsets**: *object*
diff --git a/fast/stages/2-networking/schemas/folder.schema.json b/fast/stages/2-networking/schemas/folder.schema.json
index a9832d9a6..166cb1e3f 100644
--- a/fast/stages/2-networking/schemas/folder.schema.json
+++ b/fast/stages/2-networking/schemas/folder.schema.json
@@ -531,7 +531,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -557,7 +557,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -596,7 +596,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -629,7 +629,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -669,7 +669,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-networking/schemas/folder.schema.md b/fast/stages/2-networking/schemas/folder.schema.md
index 168f85f72..2a89323f7 100644
--- a/fast/stages/2-networking/schemas/folder.schema.md
+++ b/fast/stages/2-networking/schemas/folder.schema.md
@@ -173,7 +173,7 @@
- **versioning**: *boolean*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **iam_bindings**: *object*
@@ -184,7 +184,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -197,7 +197,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -207,7 +207,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *object*
@@ -219,7 +219,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*
diff --git a/fast/stages/2-networking/schemas/project.schema.json b/fast/stages/2-networking/schemas/project.schema.json
index 32e1bd81f..d65fa4a58 100644
--- a/fast/stages/2-networking/schemas/project.schema.json
+++ b/fast/stages/2-networking/schemas/project.schema.json
@@ -1308,7 +1308,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -1334,7 +1334,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1373,7 +1373,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1406,7 +1406,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -1446,7 +1446,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-networking/schemas/project.schema.md b/fast/stages/2-networking/schemas/project.schema.md
index eadce0d3c..a14fb866d 100644
--- a/fast/stages/2-networking/schemas/project.schema.md
+++ b/fast/stages/2-networking/schemas/project.schema.md
@@ -363,7 +363,7 @@
- **`^[a-z0-9-]+$`**: *reference([bucket](#refs-bucket))*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -374,7 +374,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -387,7 +387,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -397,7 +397,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *object*
@@ -409,7 +409,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*
diff --git a/fast/stages/2-project-factory/schemas/defaults.schema.json b/fast/stages/2-project-factory/schemas/defaults.schema.json
index 1243240d4..117783a93 100644
--- a/fast/stages/2-project-factory/schemas/defaults.schema.json
+++ b/fast/stages/2-project-factory/schemas/defaults.schema.json
@@ -652,7 +652,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -678,7 +678,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -717,7 +717,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -750,7 +750,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-project-factory/schemas/defaults.schema.md b/fast/stages/2-project-factory/schemas/defaults.schema.md
index 3122239c5..eee6f3b76 100644
--- a/fast/stages/2-project-factory/schemas/defaults.schema.md
+++ b/fast/stages/2-project-factory/schemas/defaults.schema.md
@@ -188,7 +188,7 @@
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -199,7 +199,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -212,7 +212,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -222,4 +222,4 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
diff --git a/fast/stages/2-project-factory/schemas/folder.schema.json b/fast/stages/2-project-factory/schemas/folder.schema.json
index a9832d9a6..166cb1e3f 100644
--- a/fast/stages/2-project-factory/schemas/folder.schema.json
+++ b/fast/stages/2-project-factory/schemas/folder.schema.json
@@ -531,7 +531,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -557,7 +557,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -596,7 +596,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -629,7 +629,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -669,7 +669,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-project-factory/schemas/folder.schema.md b/fast/stages/2-project-factory/schemas/folder.schema.md
index 168f85f72..2a89323f7 100644
--- a/fast/stages/2-project-factory/schemas/folder.schema.md
+++ b/fast/stages/2-project-factory/schemas/folder.schema.md
@@ -173,7 +173,7 @@
- **versioning**: *boolean*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **iam_bindings**: *object*
@@ -184,7 +184,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -197,7 +197,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -207,7 +207,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *object*
@@ -219,7 +219,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*
diff --git a/fast/stages/2-project-factory/schemas/project.schema.json b/fast/stages/2-project-factory/schemas/project.schema.json
index 32e1bd81f..d65fa4a58 100644
--- a/fast/stages/2-project-factory/schemas/project.schema.json
+++ b/fast/stages/2-project-factory/schemas/project.schema.json
@@ -1308,7 +1308,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -1334,7 +1334,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1373,7 +1373,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1406,7 +1406,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -1446,7 +1446,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-project-factory/schemas/project.schema.md b/fast/stages/2-project-factory/schemas/project.schema.md
index eadce0d3c..a14fb866d 100644
--- a/fast/stages/2-project-factory/schemas/project.schema.md
+++ b/fast/stages/2-project-factory/schemas/project.schema.md
@@ -363,7 +363,7 @@
- **`^[a-z0-9-]+$`**: *reference([bucket](#refs-bucket))*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -374,7 +374,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -387,7 +387,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -397,7 +397,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *object*
@@ -409,7 +409,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*
diff --git a/fast/stages/2-security/schemas/certificate-authority.schema.json b/fast/stages/2-security/schemas/certificate-authority.schema.json
index 97c5c3718..9bdab4522 100644
--- a/fast/stages/2-security/schemas/certificate-authority.schema.json
+++ b/fast/stages/2-security/schemas/certificate-authority.schema.json
@@ -395,7 +395,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-security/schemas/certificate-authority.schema.md b/fast/stages/2-security/schemas/certificate-authority.schema.md
index a5efa559d..5a3f70d41 100644
--- a/fast/stages/2-security/schemas/certificate-authority.schema.md
+++ b/fast/stages/2-security/schemas/certificate-authority.schema.md
@@ -120,4 +120,4 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
diff --git a/fast/stages/2-security/schemas/defaults.schema.json b/fast/stages/2-security/schemas/defaults.schema.json
index 9782fa052..913663e5a 100644
--- a/fast/stages/2-security/schemas/defaults.schema.json
+++ b/fast/stages/2-security/schemas/defaults.schema.json
@@ -545,7 +545,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -571,7 +571,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -610,7 +610,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -643,7 +643,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-security/schemas/defaults.schema.md b/fast/stages/2-security/schemas/defaults.schema.md
index 3287f67fb..d18e59d0c 100644
--- a/fast/stages/2-security/schemas/defaults.schema.md
+++ b/fast/stages/2-security/schemas/defaults.schema.md
@@ -162,7 +162,7 @@
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -173,7 +173,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -186,7 +186,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -196,4 +196,4 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
diff --git a/fast/stages/2-security/schemas/folder.schema.json b/fast/stages/2-security/schemas/folder.schema.json
index a9832d9a6..166cb1e3f 100644
--- a/fast/stages/2-security/schemas/folder.schema.json
+++ b/fast/stages/2-security/schemas/folder.schema.json
@@ -531,7 +531,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -557,7 +557,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -596,7 +596,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -629,7 +629,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -669,7 +669,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-security/schemas/folder.schema.md b/fast/stages/2-security/schemas/folder.schema.md
index 168f85f72..2a89323f7 100644
--- a/fast/stages/2-security/schemas/folder.schema.md
+++ b/fast/stages/2-security/schemas/folder.schema.md
@@ -173,7 +173,7 @@
- **versioning**: *boolean*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **iam_bindings**: *object*
@@ -184,7 +184,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -197,7 +197,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -207,7 +207,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *object*
@@ -219,7 +219,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*
diff --git a/fast/stages/2-security/schemas/project.schema.json b/fast/stages/2-security/schemas/project.schema.json
index 32e1bd81f..d65fa4a58 100644
--- a/fast/stages/2-security/schemas/project.schema.json
+++ b/fast/stages/2-security/schemas/project.schema.json
@@ -1308,7 +1308,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -1334,7 +1334,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1373,7 +1373,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1406,7 +1406,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -1446,7 +1446,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/fast/stages/2-security/schemas/project.schema.md b/fast/stages/2-security/schemas/project.schema.md
index eadce0d3c..a14fb866d 100644
--- a/fast/stages/2-security/schemas/project.schema.md
+++ b/fast/stages/2-security/schemas/project.schema.md
@@ -363,7 +363,7 @@
- **`^[a-z0-9-]+$`**: *reference([bucket](#refs-bucket))*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -374,7 +374,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -387,7 +387,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -397,7 +397,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *object*
@@ -409,7 +409,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*
diff --git a/modules/dataplex-aspect-types/schemas/aspect-type.schema.json b/modules/dataplex-aspect-types/schemas/aspect-type.schema.json
index bf2614f2e..49a8f8e31 100644
--- a/modules/dataplex-aspect-types/schemas/aspect-type.schema.json
+++ b/modules/dataplex-aspect-types/schemas/aspect-type.schema.json
@@ -31,7 +31,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -57,7 +57,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -96,7 +96,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
diff --git a/modules/dataplex-aspect-types/schemas/aspect-type.schema.md b/modules/dataplex-aspect-types/schemas/aspect-type.schema.md
index f3da76a0d..81576d96e 100644
--- a/modules/dataplex-aspect-types/schemas/aspect-type.schema.md
+++ b/modules/dataplex-aspect-types/schemas/aspect-type.schema.md
@@ -18,7 +18,7 @@
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -29,7 +29,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -42,7 +42,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
diff --git a/modules/project-factory/schemas/folder.schema.json b/modules/project-factory/schemas/folder.schema.json
index a9832d9a6..166cb1e3f 100644
--- a/modules/project-factory/schemas/folder.schema.json
+++ b/modules/project-factory/schemas/folder.schema.json
@@ -531,7 +531,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -557,7 +557,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -596,7 +596,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -629,7 +629,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -669,7 +669,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/modules/project-factory/schemas/folder.schema.md b/modules/project-factory/schemas/folder.schema.md
index 168f85f72..2a89323f7 100644
--- a/modules/project-factory/schemas/folder.schema.md
+++ b/modules/project-factory/schemas/folder.schema.md
@@ -173,7 +173,7 @@
- **versioning**: *boolean*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **iam_bindings**: *object*
@@ -184,7 +184,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -197,7 +197,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -207,7 +207,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:)`**: *object*
@@ -219,7 +219,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*
diff --git a/modules/project-factory/schemas/project.schema.json b/modules/project-factory/schemas/project.schema.json
index 32e1bd81f..d65fa4a58 100644
--- a/modules/project-factory/schemas/project.schema.json
+++ b/modules/project-factory/schemas/project.schema.json
@@ -1308,7 +1308,7 @@
"type": "object",
"additionalProperties": false,
"patternProperties": {
- "^(?:roles/|\\$custom_roles:)": {
+ "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)": {
"type": "array",
"items": {
"type": "string",
@@ -1334,7 +1334,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1373,7 +1373,7 @@
},
"role": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
},
"condition": {
"type": "object",
@@ -1406,7 +1406,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
@@ -1446,7 +1446,7 @@
"type": "array",
"items": {
"type": "string",
- "pattern": "^(?:roles/|\\$custom_roles:)"
+ "pattern": "^(?:roles/|\\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)"
}
}
}
diff --git a/modules/project-factory/schemas/project.schema.md b/modules/project-factory/schemas/project.schema.md
index eadce0d3c..a14fb866d 100644
--- a/modules/project-factory/schemas/project.schema.md
+++ b/modules/project-factory/schemas/project.schema.md
@@ -363,7 +363,7 @@
- **`^[a-z0-9-]+$`**: *reference([bucket](#refs-bucket))*
- **iam**: *object*
*additional properties: false*
- - **`^(?:roles/|\$custom_roles:)`**: *array*
+ - **`^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)`**: *array*
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:||\$iam_principals:[a-z0-9_-]+)*
- **iam_bindings**: *object*
@@ -374,7 +374,7 @@
- items: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -387,7 +387,7 @@
- **member**: *string*
*pattern: ^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)*
- **role**: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **condition**: *object*
*additional properties: false*
- ⁺**expression**: *string*
@@ -397,7 +397,7 @@
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_by_principals_conditional**: *object*
*additional properties: false*
- **`^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|\$iam_principals:[a-z0-9_-]+)`**: *object*
@@ -409,7 +409,7 @@
- **description**: *string*
- ⁺**roles**: *array*
- items: *string*
-
*pattern: ^(?:roles/|\$custom_roles:)*
+
*pattern: ^(?:roles/|\$custom_roles:|organizations/[0-9]+/roles/|([a-z0-9.]+:)?projects/[a-z0-9-]+/roles/)*
- **iam_billing_roles**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *array*