Skip to content

Commit f21c8e7

Browse files
feat(enterprises): Enterprise role binding resource (#580)
# Enterprise Role Bindings Resource ## Overview This PR introduces the `castai_enterprise_role_binding` resource for managing enterprise role bindings in CAST AI, enabling programmatic access control across organizations. ## Features - **Full Lifecycle Management**: Create, read, update, and delete operations for role bindings - **Enterprise Context**: Manage role assignments at enterprise and organization levels - **Multi-Subject Support**: Assign roles to users, service accounts, and groups - **Batch Operations**: Efficient API calls for managing multiple bindings ## Key Capabilities - Scoped role assignment with organization-level granularity - Support for multiple subject types (users, service accounts, groups) - Infrastructure-as-code approach for RBAC management - Version-controlled access policies with audit trails ## Implementation - **Changes**: 2,748 additions, 3 deletions - **Status**: Approved by radekska - **API Integration**: Uses Enterprise API batch operations for create, read, update, and delete ## Use Cases - Define enterprise access policies as infrastructure - Automate service account provisioning for CI/CD - Implement hierarchical RBAC across organizations - Maintain audit trails for compliance
1 parent 589a78d commit f21c8e7

File tree

10 files changed

+2748
-3
lines changed

10 files changed

+2748
-3
lines changed

castai/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ func Provider(version string) *schema.Provider {
6666
"castai_security_runtime_rule": resourceSecurityRuntimeRule(),
6767
"castai_allocation_group": resourceAllocationGroup(),
6868
"castai_enterprise_group": resourceEnterpriseGroup(),
69+
"castai_enterprise_role_binding": resourceEnterpriseRoleBinding(),
6970
},
7071

7172
DataSourcesMap: map[string]*schema.Resource{

castai/resource_eks_cluster_userarn.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func resourceEKSClusterUserARN() *schema.Resource {
1717
ReadContext: resourceEKSUserARNRead,
1818
CreateContext: resourceEKSUserARNCreate,
1919
DeleteContext: resourceEKSUserARNDelete,
20-
Description: "Retrieve EKS Cluster User ARN",
20+
Description: "Retrieve EKS Cluster User ARN",
2121
Schema: map[string]*schema.Schema{
2222
EKSClusterUserARNFieldClusterID: {
2323
Type: schema.TypeString,

castai/resource_enterprise_group_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ func TestResourceEnterpriseGroupCreateContext(t *testing.T) {
272272
ManagedBy: "terraform",
273273
CreateTime: createTime,
274274
OrganizationId: organizationID,
275-
Status: []organization_management.RoleBindingRoleBindingStatus{},
275+
Status: []organization_management.RoleBindingRoleBindingStatus{},
276276
Definition: organization_management.RoleBindingRoleBindingDefinition{
277277
RoleId: roleID3,
278278
Scopes: &[]organization_management.Scope{

0 commit comments

Comments
 (0)