diff --git a/client/api_key.go b/client/api_key.go index 82e930e7..0f66b013 100644 --- a/client/api_key.go +++ b/client/api_key.go @@ -1,15 +1,16 @@ package client type ApiKey struct { - Id string `json:"id"` - Name string `json:"name"` - ApiKeyId string `json:"apiKeyId"` - ApiKeySecret string `json:"apiKeySecret"` - LastUsedAt string `json:"lastUsedAt"` - OrganizationId string `json:"organizationId"` - CreatedAt string `json:"createdAt"` - CreatedBy string `json:"createdBy"` - CreatedByUser User `json:"createdByUser"` + Id string `json:"id"` + Name string `json:"name"` + ApiKeyId string `json:"apiKeyId"` + ApiKeySecret string `json:"apiKeySecret"` + LastUsedAt string `json:"lastUsedAt"` + OrganizationId string `json:"organizationId"` + OrganizationRole string `json:"organizationRole"` + CreatedAt string `json:"createdAt"` + CreatedBy string `json:"createdBy"` + CreatedByUser User `json:"createdByUser"` } type ApiKeyCreatePayload struct { diff --git a/env0/resource_api_key.go b/env0/resource_api_key.go index 069ff70a..4aa476e6 100644 --- a/env0/resource_api_key.go +++ b/env0/resource_api_key.go @@ -26,6 +26,14 @@ func resourceApiKey() *schema.Resource { Required: true, ForceNew: true, }, + "organization_role": { + Type: schema.TypeString, + Description: "the api key type. 'Admin' or 'User'. If not set defaults to 'Admin'. For more details check https://docs.env0.com/docs/api-keys", + Default: "Admin", + Optional: true, + ForceNew: true, + ValidateDiagFunc: NewStringInValidator([]string{"Admin", "User"}), + }, }, } } diff --git a/env0/resource_api_key_test.go b/env0/resource_api_key_test.go index be6fe511..9f9515d5 100644 --- a/env0/resource_api_key_test.go +++ b/env0/resource_api_key_test.go @@ -19,19 +19,21 @@ func TestUnitApiKeyResource(t *testing.T) { accessor := resourceAccessor(resourceType, resourceName) apiKey := client.ApiKey{ - Id: uuid.NewString(), - Name: "name", - ApiKeyId: "keyid", - ApiKeySecret: "keysecret", - OrganizationId: "org", + Id: uuid.NewString(), + Name: "name", + ApiKeyId: "keyid", + ApiKeySecret: "keysecret", + OrganizationId: "org", + OrganizationRole: "Admin", } updatedApiKey := client.ApiKey{ - Id: "id2", - Name: "name2", - ApiKeyId: "keyid2", - ApiKeySecret: "keysecret2", - OrganizationId: "org", + Id: "id2", + Name: "name2", + ApiKeyId: "keyid2", + ApiKeySecret: "keysecret2", + OrganizationId: "org", + OrganizationRole: "Admin", } t.Run("Success", func(t *testing.T) { @@ -44,6 +46,7 @@ func TestUnitApiKeyResource(t *testing.T) { Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr(accessor, "id", apiKey.Id), resource.TestCheckResourceAttr(accessor, "name", apiKey.Name), + resource.TestCheckResourceAttr(accessor, "organization_role", apiKey.OrganizationRole), ), }, { @@ -53,6 +56,7 @@ func TestUnitApiKeyResource(t *testing.T) { Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr(accessor, "id", updatedApiKey.Id), resource.TestCheckResourceAttr(accessor, "name", updatedApiKey.Name), + resource.TestCheckResourceAttr(accessor, "organization_role", updatedApiKey.OrganizationRole), ), }, },