From 053e95827180596262571d9f0a87331ae45b859e Mon Sep 17 00:00:00 2001 From: ambrosy-eric <14945937+ambrosy-eric@users.noreply.github.com> Date: Fri, 20 Jan 2023 14:45:36 -0500 Subject: [PATCH 1/3] Add import by name for v2 ingest budgets --- .../resource_sumologic_ingest_budget_v2.go | 16 ++++++++ sumologic/sumologic_ingest_budget_v2.go | 41 +++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/sumologic/resource_sumologic_ingest_budget_v2.go b/sumologic/resource_sumologic_ingest_budget_v2.go index b89217b4..f6ab4ce6 100644 --- a/sumologic/resource_sumologic_ingest_budget_v2.go +++ b/sumologic/resource_sumologic_ingest_budget_v2.go @@ -141,6 +141,22 @@ func resourceSumologicIngestBudgetV2Update(d *schema.ResourceData, meta interfac return resourceSumologicIngestBudgetV2Read(d, meta) } +func resourceSumologicIngestBudgetV2Import(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) { + c := meta.(*Client) + + name := d.Id() + + ingestBudgetV2, err := c.FindIngestBudget(name) + + if err != nil { + return nil, err + } + + d.SetId(ingestBudgetV2.ID) + + return []*schema.ResourceData{d}, nil +} + func resourceToIngestBudgetV2(d *schema.ResourceData) IngestBudgetV2 { return IngestBudgetV2{ diff --git a/sumologic/sumologic_ingest_budget_v2.go b/sumologic/sumologic_ingest_budget_v2.go index a3347dd1..dd784aa5 100644 --- a/sumologic/sumologic_ingest_budget_v2.go +++ b/sumologic/sumologic_ingest_budget_v2.go @@ -91,6 +91,47 @@ func (s *Client) UpdateIngestBudgetV2(ingestBudgetV2 IngestBudgetV2) error { } +func (s *Client) FindIngestBudgetV2(name string) (*IngestBudget, error) { + type IngestBudgetV2List struct { + Next string `json:"next"` + Data []IngestBudget `json:"data"` + } + + next := "" + + for { + body, _, err := s.Get(fmt.Sprintf("v2/ingestBudgets?next=%s", next)) + if err != nil { + return nil, err + } + + if body == nil { + return nil, nil + } + + var response IngestBudgetV2List + + err = json.Unmarshal(body, &response) + if err != nil { + return nil, err + } + + for _, budgetV2 := range response.Data { + if budgetV2.Name == name { + return &budgetV2, nil + } + } + + if response.Next == "" { + break + } + + next = response.Next + } + + return nil, fmt.Errorf("unable to find ingest budget '%s'", name) +} + type IngestBudgetV2 struct { AuditThreshold int `json:"auditThreshold,omitempty"` Action string `json:"action"` From 5323962f24a7ff0d3d1551f1521741be780ceb21 Mon Sep 17 00:00:00 2001 From: ambrosy-eric <14945937+ambrosy-eric@users.noreply.github.com> Date: Fri, 20 Jan 2023 15:03:03 -0500 Subject: [PATCH 2/3] use the v2 find budget --- sumologic/resource_sumologic_ingest_budget_v2.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumologic/resource_sumologic_ingest_budget_v2.go b/sumologic/resource_sumologic_ingest_budget_v2.go index f6ab4ce6..65c9252a 100644 --- a/sumologic/resource_sumologic_ingest_budget_v2.go +++ b/sumologic/resource_sumologic_ingest_budget_v2.go @@ -146,7 +146,7 @@ func resourceSumologicIngestBudgetV2Import(d *schema.ResourceData, meta interfac name := d.Id() - ingestBudgetV2, err := c.FindIngestBudget(name) + ingestBudgetV2, err := c.FindIngestBudgetV2(name) if err != nil { return nil, err From e9ca6b197aadf62481469a69d84430b4ac941171 Mon Sep 17 00:00:00 2001 From: ambrosy-eric <14945937+ambrosy-eric@users.noreply.github.com> Date: Tue, 21 Nov 2023 13:56:11 -0500 Subject: [PATCH 3/3] Add name to import test --- sumologic/resource_sumologic_ingest_budget_v2_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/sumologic/resource_sumologic_ingest_budget_v2_test.go b/sumologic/resource_sumologic_ingest_budget_v2_test.go index 3aeff3af..7c07403e 100644 --- a/sumologic/resource_sumologic_ingest_budget_v2_test.go +++ b/sumologic/resource_sumologic_ingest_budget_v2_test.go @@ -44,6 +44,7 @@ func TestAccSumologicIngestBudgetV2_basic(t *testing.T) { ResourceName: "sumologic_ingest_budget_v2.foo", ImportState: true, ImportStateVerify: true, + ImportStateId: testName, }, }, })