@@ -239,6 +239,33 @@ However, existing tokens still grant access.`,
239
239
},
240
240
},
241
241
},
242
+ "jwks_json" : {
243
+ Type : schema .TypeString ,
244
+ Optional : true ,
245
+ Description : `OIDC JWKs in JSON String format. For details on definition of a
246
+ JWK, see https:tools.ietf.org/html/rfc7517. If not set, then we
247
+ use the 'jwks_uri' from the discovery document fetched from the
248
+ .well-known path for the 'issuer_uri'. Currently, RSA and EC asymmetric
249
+ keys are supported. The JWK must use following format and include only
250
+ the following fields:
251
+ '''
252
+ {
253
+ "keys": [
254
+ {
255
+ "kty": "RSA/EC",
256
+ "alg": "<algorithm>",
257
+ "use": "sig",
258
+ "kid": "<key-id>",
259
+ "n": "",
260
+ "e": "",
261
+ "x": "",
262
+ "y": "",
263
+ "crv": ""
264
+ }
265
+ ]
266
+ }
267
+ '''` ,
268
+ },
242
269
"web_sso_config" : {
243
270
Type : schema .TypeList ,
244
271
Computed : true ,
@@ -799,6 +826,8 @@ func flattenIAMWorkforcePoolWorkforcePoolProviderOidc(v interface{}, d *schema.R
799
826
flattenIAMWorkforcePoolWorkforcePoolProviderOidcClientSecret (original ["clientSecret" ], d , config )
800
827
transformed ["web_sso_config" ] =
801
828
flattenIAMWorkforcePoolWorkforcePoolProviderOidcWebSsoConfig (original ["webSsoConfig" ], d , config )
829
+ transformed ["jwks_json" ] =
830
+ flattenIAMWorkforcePoolWorkforcePoolProviderOidcJwksJson (original ["jwksJson" ], d , config )
802
831
return []interface {}{transformed }
803
832
}
804
833
func flattenIAMWorkforcePoolWorkforcePoolProviderOidcIssuerUri (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
@@ -869,6 +898,10 @@ func flattenIAMWorkforcePoolWorkforcePoolProviderOidcWebSsoConfigAdditionalScope
869
898
return v
870
899
}
871
900
901
+ func flattenIAMWorkforcePoolWorkforcePoolProviderOidcJwksJson (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
902
+ return v
903
+ }
904
+
872
905
func expandIAMWorkforcePoolWorkforcePoolProviderDisplayName (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
873
906
return v , nil
874
907
}
@@ -956,6 +989,13 @@ func expandIAMWorkforcePoolWorkforcePoolProviderOidc(v interface{}, d tpgresourc
956
989
transformed ["webSsoConfig" ] = transformedWebSsoConfig
957
990
}
958
991
992
+ transformedJwksJson , err := expandIAMWorkforcePoolWorkforcePoolProviderOidcJwksJson (original ["jwks_json" ], d , config )
993
+ if err != nil {
994
+ return nil , err
995
+ } else if val := reflect .ValueOf (transformedJwksJson ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
996
+ transformed ["jwksJson" ] = transformedJwksJson
997
+ }
998
+
959
999
return transformed , nil
960
1000
}
961
1001
@@ -1065,6 +1105,10 @@ func expandIAMWorkforcePoolWorkforcePoolProviderOidcWebSsoConfigAdditionalScopes
1065
1105
return v , nil
1066
1106
}
1067
1107
1108
+ func expandIAMWorkforcePoolWorkforcePoolProviderOidcJwksJson (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
1109
+ return v , nil
1110
+ }
1111
+
1068
1112
func resourceIAMWorkforcePoolWorkforcePoolProviderDecoder (d * schema.ResourceData , meta interface {}, res map [string ]interface {}) (map [string ]interface {}, error ) {
1069
1113
if v := res ["state" ]; v == "DELETED" {
1070
1114
return nil , nil
0 commit comments