@@ -59,7 +59,7 @@ func CreateKeyRingWaitHandler(ctx context.Context, client ApiKmsClient, projectI
5959 return false , nil , err
6060 }
6161
62- if response .State != nil {
62+ if response != nil && response .State != nil {
6363 switch * response .State {
6464 case kms .KEYRINGSTATE_CREATING :
6565 return false , nil , nil
@@ -81,7 +81,7 @@ func CreateOrUpdateKeyWaitHandler(ctx context.Context, client ApiKmsClient, proj
8181 return false , nil , err
8282 }
8383
84- if response .State != nil {
84+ if response != nil && response .State != nil {
8585 switch * response .State {
8686 case kms .KEYSTATE_CREATING :
8787 return false , nil , nil
@@ -121,19 +121,15 @@ func EnableKeyVersionWaitHandler(ctx context.Context, client ApiKmsClient, proje
121121 var apiErr * oapierror.GenericOpenAPIError
122122 if errors .As (err , & apiErr ) {
123123 if statusCode := apiErr .StatusCode ; statusCode == http .StatusNotFound || statusCode == http .StatusGone {
124- return true , nil , fmt .Errorf ("enabling failed for key %s version %d: version not found" , keyId , version )
124+ return true , nil , fmt .Errorf ("enabling failed for key %s version %d: version or key not found" , keyId , version )
125125 }
126126 }
127127 return false , nil , err
128128 }
129129
130- if response .State != nil {
130+ if response != nil && response .State != nil {
131131 switch * response .State {
132- case kms .VERSIONSTATE_DESTROYED :
133- return true , response , nil
134- case kms .VERSIONSTATE_KEY_MATERIAL_INVALID :
135- return true , response , nil
136- case kms .VERSIONSTATE_DISABLED :
132+ case kms .VERSIONSTATE_DESTROYED , kms .VERSIONSTATE_KEY_MATERIAL_INVALID , kms .VERSIONSTATE_DISABLED :
137133 return true , response , nil
138134 case kms .VERSIONSTATE_CREATING :
139135 return false , nil , nil
@@ -155,25 +151,19 @@ func DisableKeyVersionWaitHandler(ctx context.Context, client ApiKmsClient, proj
155151 var apiErr * oapierror.GenericOpenAPIError
156152 if errors .As (err , & apiErr ) {
157153 if statusCode := apiErr .StatusCode ; statusCode == http .StatusNotFound || statusCode == http .StatusGone {
158- return true , nil , fmt .Errorf ("disabling failed for key %s version %d: version not found" , keyId , version )
154+ return true , nil , fmt .Errorf ("disabling failed for key %s version %d: version or key not found" , keyId , version )
159155 }
160156 }
161157 return false , nil , err
162158 }
163159
164- if response .State != nil {
160+ if response != nil && response .State != nil {
165161 switch * response .State {
166162 case kms .VERSIONSTATE_DISABLED :
167163 return true , response , nil
168- case kms .VERSIONSTATE_ACTIVE :
169- return false , nil , nil
170- case kms .VERSIONSTATE_CREATING :
171- return false , nil , nil
172- case kms .VERSIONSTATE_KEY_MATERIAL_UNAVAILABLE :
164+ case kms .VERSIONSTATE_ACTIVE , kms .VERSIONSTATE_CREATING , kms .VERSIONSTATE_KEY_MATERIAL_UNAVAILABLE :
173165 return false , nil , nil
174- case kms .VERSIONSTATE_DESTROYED :
175- return true , response , fmt .Errorf ("disabling failed for key %s version %d: state %s" , keyId , version , * response .State )
176- case kms .VERSIONSTATE_KEY_MATERIAL_INVALID :
166+ case kms .VERSIONSTATE_DESTROYED , kms .VERSIONSTATE_KEY_MATERIAL_INVALID :
177167 return true , response , fmt .Errorf ("disabling failed for key %s version %d: state %s" , keyId , version , * response .State )
178168 default :
179169 return true , response , fmt .Errorf ("key version %d for key %s has unexpected state %s" , version , keyId , * response .State )
@@ -193,8 +183,8 @@ func CreateWrappingKeyWaitHandler(ctx context.Context, client ApiKmsClient, proj
193183 return false , nil , err
194184 }
195185
196- if state := response .State ; state != nil {
197- switch * state {
186+ if response != nil && response .State != nil {
187+ switch * response . State {
198188 case kms .WRAPPINGKEYSTATE_CREATING :
199189 return false , nil , nil
200190 default :
0 commit comments