pub struct StackBuilder<S: State = Empty> { /* private fields */ }Expand description
Use builder syntax to set the inputs and finish with build().
Implementations§
Source§impl<S: State> StackBuilder<S>
impl<S: State> StackBuilder<S>
Source§impl StackBuilder
impl StackBuilder
Sourcepub fn add<T: ResourceDefinition>(
self,
resource: T,
lifecycle: ResourceLifecycle,
) -> Self
pub fn add<T: ResourceDefinition>( self, resource: T, lifecycle: ResourceLifecycle, ) -> Self
Adds a resource to the stack with its lifecycle state. The resource’s intrinsic dependencies (from resource.get_dependencies()) are automatically included. Use add_with_dependencies() if you need to specify additional dependencies.
Sourcepub fn add_with_dependencies<T: ResourceDefinition>(
self,
resource: T,
lifecycle: ResourceLifecycle,
additional_dependencies: Vec<ResourceRef>,
) -> Self
pub fn add_with_dependencies<T: ResourceDefinition>( self, resource: T, lifecycle: ResourceLifecycle, additional_dependencies: Vec<ResourceRef>, ) -> Self
Adds a resource to the stack with its lifecycle state and additional dependencies. The total dependencies will be: resource.get_dependencies() + additional_dependencies
Sourcepub fn add_with_remote_access<T: ResourceDefinition>(
self,
resource: T,
lifecycle: ResourceLifecycle,
) -> Self
pub fn add_with_remote_access<T: ResourceDefinition>( self, resource: T, lifecycle: ResourceLifecycle, ) -> Self
Adds a resource with remote access enabled. When remote_access is true, binding params are synced to StackState for external access.
Sourcepub fn permissions(self, permissions: PermissionsConfig) -> Self
pub fn permissions(self, permissions: PermissionsConfig) -> Self
Sets the permissions configuration for the stack. This defines access control for compute services in the stack.
Sourcepub fn permission(
self,
name: impl Into<String>,
profile: PermissionProfile,
) -> Self
pub fn permission( self, name: impl Into<String>, profile: PermissionProfile, ) -> Self
Add a single permission profile to the stack - allows fluent chaining
§Example
Stack::new("my-stack".to_string())
.permission("execution", PermissionProfile::new().global(["storage/data-read"]))
.permission("management", PermissionProfile::new().global(["storage/management"]))
.build()Sourcepub fn management(self, management: ManagementPermissions) -> Self
pub fn management(self, management: ManagementPermissions) -> Self
Sets the management permissions configuration for the stack. This defines how management permissions are derived and configured.
§Examples
// Auto-derived management permissions (default)
Stack::new("my-stack".to_string())
.management(ManagementPermissions::auto())
.build();
// Extend auto-derived permissions
Stack::new("my-stack".to_string())
.management(ManagementPermissions::extend(
PermissionProfile::new().global(["vault/data-write"])
))
.build();
// Override auto-derived permissions entirely
Stack::new("my-stack".to_string())
.management(ManagementPermissions::override_(
PermissionProfile::new().global(["storage/management", "function/management"])
))
.build();