@@ -23,13 +23,23 @@ import (
2323const (
2424 instanceNameFlag = "name"
2525 aclFlag = "acl"
26+
27+ kmsKeyIdFlag = "kms-key-id"
28+ kmsKeyringIdFlag = "kms-keyring-id"
29+ kmsKeyVersionFlag = "kms-key-version"
30+ kmsServiceAccountEmailFlag = "kms-service-account-email"
2631)
2732
2833type inputModel struct {
2934 * globalflags.GlobalFlagModel
3035
3136 InstanceName * string
3237 Acls * []string
38+
39+ KmsKeyId * string
40+ KmsKeyringId * string
41+ KmsKeyVersion * int64
42+ KmsServiceAccountEmail * string
3343}
3444
3545func NewCmd (params * types.CmdParams ) * cobra.Command {
@@ -103,8 +113,15 @@ func configureFlags(cmd *cobra.Command) {
103113 cmd .Flags ().StringP (instanceNameFlag , "n" , "" , "Instance name" )
104114 cmd .Flags ().Var (flags .CIDRSliceFlag (), aclFlag , "List of IP networks in CIDR notation which are allowed to access this instance" )
105115
116+ cmd .Flags ().String (kmsKeyIdFlag , "" , "ID of the KMS key to use for encryption" )
117+ cmd .Flags ().String (kmsKeyringIdFlag , "" , "ID of the KMS key ring" )
118+ cmd .Flags ().Int64 (kmsKeyVersionFlag , 0 , "Version of the KMS key" )
119+ cmd .Flags ().String (kmsServiceAccountEmailFlag , "" , "Service account email for KMS access" )
120+
106121 err := flags .MarkFlagsRequired (cmd , instanceNameFlag )
107122 cobra .CheckErr (err )
123+
124+ cmd .MarkFlagsRequiredTogether (kmsKeyIdFlag , kmsKeyringIdFlag , kmsKeyVersionFlag , kmsServiceAccountEmailFlag )
108125}
109126
110127func parseInput (p * print.Printer , cmd * cobra.Command , _ []string ) (* inputModel , error ) {
@@ -114,9 +131,13 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
114131 }
115132
116133 model := inputModel {
117- GlobalFlagModel : globalFlags ,
118- InstanceName : flags .FlagToStringPointer (p , cmd , instanceNameFlag ),
119- Acls : flags .FlagToStringSlicePointer (p , cmd , aclFlag ),
134+ GlobalFlagModel : globalFlags ,
135+ InstanceName : flags .FlagToStringPointer (p , cmd , instanceNameFlag ),
136+ Acls : flags .FlagToStringSlicePointer (p , cmd , aclFlag ),
137+ KmsKeyId : flags .FlagToStringPointer (p , cmd , kmsKeyIdFlag ),
138+ KmsKeyringId : flags .FlagToStringPointer (p , cmd , kmsKeyringIdFlag ),
139+ KmsKeyVersion : flags .FlagToInt64Pointer (p , cmd , kmsKeyVersionFlag ),
140+ KmsServiceAccountEmail : flags .FlagToStringPointer (p , cmd , kmsServiceAccountEmailFlag ),
120141 }
121142
122143 p .DebugInputModel (model )
@@ -128,6 +149,7 @@ func buildCreateInstanceRequest(ctx context.Context, model *inputModel, apiClien
128149
129150 req = req .CreateInstancePayload (secretsmanager.CreateInstancePayload {
130151 Name : model .InstanceName ,
152+ // TODO: Add KMS config here when implementing API integration
131153 })
132154
133155 return req
0 commit comments