diff --git a/internal/provider/resource_namespace_secret.go b/internal/provider/resource_namespace_secret.go index 4c35038..3215b94 100644 --- a/internal/provider/resource_namespace_secret.go +++ b/internal/provider/resource_namespace_secret.go @@ -29,17 +29,32 @@ func resourceNamespaceSecret() *schema.Resource { ForceNew: true, }, "secret_key": { - Description: "The namespace secrey key.", + Description: "The namespace secret key.", Type: schema.TypeString, Required: true, ForceNew: true, }, "secret_value": { - Description: "The namespace secrey value.", + Description: "The namespace secret value.", Type: schema.TypeString, Required: true, Sensitive: true, }, + "secret_description": { + Description: "The namespace secret description.", + Type: schema.TypeString, + Optional: true, + Sensitive: false, + }, + "secret_tags": { + Description: "The namespace secret description.", + Type: schema.TypeMap, + Optional: true, + Sensitive: false, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, }, } } diff --git a/internal/provider/utils_namespace.go b/internal/provider/utils_namespace.go index 79dd4eb..bbd71fe 100644 --- a/internal/provider/utils_namespace.go +++ b/internal/provider/utils_namespace.go @@ -76,8 +76,20 @@ func namespaceApiToSchema(r map[string]interface{}, d *schema.ResourceData, c *C } func namespaceSecretSchemaToApi(d *schema.ResourceData) (map[string]interface{}, error) { - body := make(map[string]interface{}, 0) - body[d.Get("secret_key").(string)] = d.Get("secret_value").(string) + secret := make(map[string]interface{}, 0) + secret["key"] = d.Get("secret_key").(string) + secret["value"] = d.Get("secret_value").(string) + secret["description"] = d.Get("secret_description").(string) + + tagsByKey := d.Get("secret_tags").(map[string]interface{}) + tags := make([]interface{}, 0, len(tagsByKey)) + for key, value := range tagsByKey { + tag := make(map[string]interface{}, 0) + tag["key"] = key + tag["value"] = value + tags = append(tags, tag) + } + secret["tags"] = tags - return body, nil + return secret, nil }