diff --git a/cloudsigma/provider.go b/cloudsigma/provider.go index 34f532a..3f600e2 100644 --- a/cloudsigma/provider.go +++ b/cloudsigma/provider.go @@ -59,9 +59,7 @@ func Provider() *schema.Provider { }, ResourcesMap: map[string]*schema.Resource{ - "cloudsigma_acl": resourceCloudSigmaACL(), "cloudsigma_drive": resourceCloudSigmaDrive(), - "cloudsigma_firewall_policy": resourceCloudSigmaFirewallPolicy(), "cloudsigma_remote_snapshot": resourceCloudSigmaRemoteSnapshot(), "cloudsigma_server": resourceCloudSigmaServer(), "cloudsigma_snapshot": resourceCloudSigmaSnapshot(), diff --git a/cloudsigma/resource_cloudsigma_acl.go b/cloudsigma/resource_cloudsigma_acl.go deleted file mode 100644 index c02ff5c..0000000 --- a/cloudsigma/resource_cloudsigma_acl.go +++ /dev/null @@ -1,121 +0,0 @@ -package cloudsigma - -import ( - "context" - "log" - - "github.com/cloudsigma/cloudsigma-sdk-go/cloudsigma" - "github.com/hashicorp/terraform-plugin-sdk/v2/diag" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" -) - -func resourceCloudSigmaACL() *schema.Resource { - return &schema.Resource{ - Description: ` -The acl resource allows you to manage CloudSigma ACLs (Access Control Lists). -`, - - CreateContext: resourceCloudSigmaACLCreate, - ReadContext: resourceCloudSigmaACLRead, - UpdateContext: resourceCloudSigmaACLUpdate, - DeleteContext: resourceCloudSigmaACLDelete, - - SchemaVersion: 0, - - Schema: map[string]*schema.Schema{ - "name": { - Description: "The ACL name.", - Type: schema.TypeString, - Required: true, - }, - - "resource_uri": { - Description: "The unique resource identifier of the ACL.", - Type: schema.TypeString, - Optional: true, - Computed: true, - }, - }, - } -} - -func resourceCloudSigmaACLCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - client := meta.(*cloudsigma.Client) - - createRequest := &cloudsigma.ACLCreateRequest{ - ACLs: []cloudsigma.ACL{ - { - Name: d.Get("name").(string), - }, - }, - } - log.Printf("[DEBUG] ACL create configuration: %#v", *createRequest) - acls, _, err := client.ACLs.Create(ctx, createRequest) - if err != nil { - return diag.FromErr(err) - } - - d.SetId(acls[0].UUID) - log.Printf("[INFO] ACL ID: %s", d.Id()) - - return resourceCloudSigmaACLRead(ctx, d, meta) -} - -func resourceCloudSigmaACLRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - client := meta.(*cloudsigma.Client) - - acl, resp, err := client.ACLs.Get(ctx, d.Id()) - if err != nil { - if resp != nil && resp.StatusCode == 404 { - d.SetId("") - return nil - } - return diag.FromErr(err) - } - - _ = d.Set("name", acl.Name) - _ = d.Set("resource_uri", acl.ResourceURI) - - // owner := []map[string]interface{}{ - // { - // "resource_uri": acl.Owner.ResourceURI, - // "uuid": acl.Owner.UUID, - // }, - // } - // _ = d.Set("owner", owner) - - return nil -} - -func resourceCloudSigmaACLUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - client := meta.(*cloudsigma.Client) - - if d.HasChange("name") { - _, newName := d.GetChange("name") - updateRequest := &cloudsigma.ACLUpdateRequest{ - ACL: &cloudsigma.ACL{ - Name: newName.(string), - }, - } - log.Printf("[DEBUG] ACL update configuration: %#v", *updateRequest) - _, _, err := client.ACLs.Update(ctx, d.Id(), updateRequest) - if err != nil { - return diag.FromErr(err) - } - } - - return resourceCloudSigmaACLRead(ctx, d, meta) -} - -func resourceCloudSigmaACLDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - client := meta.(*cloudsigma.Client) - - _, err := client.ACLs.Delete(ctx, d.Id()) - if err != nil { - return diag.FromErr(err) - } - - d.SetId("") - - return nil -} diff --git a/cloudsigma/resource_cloudsigma_firewall_policy.go b/cloudsigma/resource_cloudsigma_firewall_policy.go deleted file mode 100644 index 84946b9..0000000 --- a/cloudsigma/resource_cloudsigma_firewall_policy.go +++ /dev/null @@ -1,116 +0,0 @@ -package cloudsigma - -import ( - "context" - "log" - - "github.com/cloudsigma/cloudsigma-sdk-go/cloudsigma" - "github.com/hashicorp/terraform-plugin-sdk/v2/diag" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" -) - -func resourceCloudSigmaFirewallPolicy() *schema.Resource { - return &schema.Resource{ - Description: ` -The firewall policy resource allows you to manage CloudSigma firewall policies. -`, - - CreateContext: resourceCloudSigmaFirewallPolicyCreate, - ReadContext: resourceCloudSigmaFirewallPolicyRead, - UpdateContext: resourceCloudSigmaFirewallPolicyUpdate, - DeleteContext: resourceCloudSigmaFirewallPolicyDelete, - - SchemaVersion: 0, - - Schema: map[string]*schema.Schema{ - "name": { - Description: "The firewall policy name.", - Required: true, - Type: schema.TypeString, - }, - - "resource_uri": { - Description: "The unique resource identifier of the firewall policy.", - Computed: true, - Type: schema.TypeString, - }, - }, - } -} - -func resourceCloudSigmaFirewallPolicyCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - client := meta.(*cloudsigma.Client) - - createRequest := &cloudsigma.FirewallPolicyCreateRequest{ - FirewallPolicies: []cloudsigma.FirewallPolicy{ - { - Name: d.Get("name").(string), - }, - }, - } - log.Printf("[DEBUG] Firewall policy create configuration: %#v", *createRequest) - firewallPolicies, _, err := client.FirewallPolicies.Create(ctx, createRequest) - if err != nil { - return diag.FromErr(err) - } - - d.SetId(firewallPolicies[0].UUID) - log.Printf("[INFO] Firewall policy ID: %s", d.Id()) - - return resourceCloudSigmaFirewallPolicyRead(ctx, d, meta) -} - -func resourceCloudSigmaFirewallPolicyRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - client := meta.(*cloudsigma.Client) - - firewallPolicy, resp, err := client.FirewallPolicies.Get(ctx, d.Id()) - if err != nil { - if resp != nil && resp.StatusCode == 404 { - d.SetId("") - return nil - } - return diag.FromErr(err) - } - - _ = d.Set("name", firewallPolicy.Name) - _ = d.Set("resource_uri", firewallPolicy.ResourceURI) - - return nil -} - -func resourceCloudSigmaFirewallPolicyUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - client := meta.(*cloudsigma.Client) - - firewallPolicy := &cloudsigma.FirewallPolicy{ - UUID: d.Id(), - } - - if name, ok := d.GetOk("name"); ok { - firewallPolicy.Name = name.(string) - } - - log.Printf("[DEBUG] Firewall policy update: %#v", *firewallPolicy) - - updateRequest := &cloudsigma.FirewallPolicyUpdateRequest{ - FirewallPolicy: firewallPolicy, - } - _, _, err := client.FirewallPolicies.Update(ctx, d.Id(), updateRequest) - if err != nil { - return diag.FromErr(err) - } - - return resourceCloudSigmaFirewallPolicyRead(ctx, d, meta) -} - -func resourceCloudSigmaFirewallPolicyDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - client := meta.(*cloudsigma.Client) - - _, err := client.FirewallPolicies.Delete(ctx, d.Id()) - if err != nil { - return diag.FromErr(err) - } - - d.SetId("") - - return nil -} diff --git a/docs/resources/acl.md b/docs/resources/acl.md deleted file mode 100644 index 6c58ee4..0000000 --- a/docs/resources/acl.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -# generated by https://github.com/hashicorp/terraform-plugin-docs -page_title: "cloudsigma_acl Resource - terraform-provider-cloudsigma" -subcategory: "" -description: |- - The acl resource allows you to manage CloudSigma ACLs (Access Control Lists). ---- - -# cloudsigma_acl (Resource) - -The acl resource allows you to manage CloudSigma ACLs (Access Control Lists). - -## Example Usage - -```terraform -resource "cloudsigma_acl" "developers" { - name = "developers" -} -``` - - -## Schema - -### Required - -- `name` (String) The ACL name. - -### Optional - -- `resource_uri` (String) The unique resource identifier of the ACL. - -### Read-Only - -- `id` (String) The ID of this resource. diff --git a/docs/resources/firewall_policy.md b/docs/resources/firewall_policy.md deleted file mode 100644 index 0f51cc8..0000000 --- a/docs/resources/firewall_policy.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -# generated by https://github.com/hashicorp/terraform-plugin-docs -page_title: "cloudsigma_firewall_policy Resource - terraform-provider-cloudsigma" -subcategory: "" -description: |- - The firewall policy resource allows you to manage CloudSigma firewall policies. ---- - -# cloudsigma_firewall_policy (Resource) - -The firewall policy resource allows you to manage CloudSigma firewall policies. - -## Example Usage - -```terraform -resource "cloudsigma_firewall_policy" "my_policy" { - name = "my_policy" -} -``` - - -## Schema - -### Required - -- `name` (String) The firewall policy name. - -### Read-Only - -- `id` (String) The ID of this resource. -- `resource_uri` (String) The unique resource identifier of the firewall policy. diff --git a/examples/resources/cloudsigma_acl/resource.tf b/examples/resources/cloudsigma_acl/resource.tf deleted file mode 100644 index 4fb34b1..0000000 --- a/examples/resources/cloudsigma_acl/resource.tf +++ /dev/null @@ -1,3 +0,0 @@ -resource "cloudsigma_acl" "developers" { - name = "developers" -} diff --git a/examples/resources/cloudsigma_firewall_policy/resource.tf b/examples/resources/cloudsigma_firewall_policy/resource.tf deleted file mode 100644 index e28415a..0000000 --- a/examples/resources/cloudsigma_firewall_policy/resource.tf +++ /dev/null @@ -1,3 +0,0 @@ -resource "cloudsigma_firewall_policy" "my_policy" { - name = "my_policy" -}