@@ -28,6 +28,7 @@ const (
2828 availabilityZoneFlag = "availability-zone"
2929 nameFlag = "name"
3030 snapshotsVisibleFlag = "snapshots-visible"
31+ snapshotPolicyIdFlag = "snapshot-policy-id"
3132)
3233
3334type inputModel struct {
@@ -38,6 +39,7 @@ type inputModel struct {
3839 Name string
3940 AvailabilityZone string
4041 SnapshotsVisible bool
42+ SnapshotPolicyId string
4143}
4244
4345func NewCmd (params * types.CmdParams ) * cobra.Command {
@@ -62,6 +64,9 @@ The available performance class values can be obtained by running:
6264 examples .NewExample (
6365 `Create a SFS resource pool with visible snapshots` ,
6466 "$ stackit beta sfs resource-pool create --availability-zone eu01-m --ip-acl 10.88.135.144/28 --performance-class Standard --size 500 --name resource-pool-01 --snapshots-visible" ),
67+ examples .NewExample (
68+ `Create a SFS resource pool with specific snapshot policy` ,
69+ "$ stackit beta sfs resource-pool create --availability-zone eu01-m --ip-acl 10.88.135.144/28 --performance-class Standard --size 500 --name resource-pool-01 --snapshot-policy-id XXX" ),
6570 ),
6671 RunE : func (cmd * cobra.Command , args []string ) error {
6772 ctx := context .Background ()
@@ -124,6 +129,7 @@ func configureFlags(cmd *cobra.Command) {
124129 cmd .Flags ().String (availabilityZoneFlag , "" , "Availability zone" )
125130 cmd .Flags ().String (nameFlag , "" , "Name" )
126131 cmd .Flags ().Bool (snapshotsVisibleFlag , false , "Set snapshots visible and accessible to users" )
132+ cmd .Flags ().String (snapshotPolicyIdFlag , "" , "Set snapshot policy ID" )
127133
128134 for _ , flag := range []string {sizeFlag , performanceClassFlag , ipAclFlag , availabilityZoneFlag , nameFlag } {
129135 err := flags .MarkFlagsRequired (cmd , flag )
@@ -140,6 +146,7 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *sfs.APIClie
140146 PerformanceClass : model .PerformanceClass ,
141147 SizeGigabytes : * model .SizeInGB ,
142148 SnapshotsAreVisible : & model .SnapshotsVisible ,
149+ SnapshotPolicyId : & model .SnapshotPolicyId ,
143150 })
144151 return req
145152}
@@ -156,6 +163,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
156163 ipAcls := flags .FlagToStringSliceValue (p , cmd , ipAclFlag )
157164 name := flags .FlagToStringValue (p , cmd , nameFlag )
158165 snapshotsVisible := flags .FlagToBoolValue (p , cmd , snapshotsVisibleFlag )
166+ snapshotPolicyId := flags .FlagToStringValue (p , cmd , snapshotPolicyIdFlag )
159167
160168 model := inputModel {
161169 GlobalFlagModel : globalFlags ,
@@ -165,6 +173,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
165173 AvailabilityZone : availabilityZone ,
166174 Name : name ,
167175 SnapshotsVisible : snapshotsVisible ,
176+ SnapshotPolicyId : snapshotPolicyId ,
168177 }
169178
170179 p .DebugInputModel (model )
0 commit comments