-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds new resource azurerm_security_center_automation for automation a…
…nd data export (#8781) Co-authored-by: jackofallops <[email protected]>
- Loading branch information
1 parent
7394bd3
commit 424faca
Showing
7 changed files
with
1,769 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
azurerm/internal/services/securitycenter/parse/security_center_automation.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package parse | ||
|
||
import ( | ||
"fmt" | ||
|
||
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" | ||
) | ||
|
||
type SecurityCenterAutomationId struct { | ||
AutomationName string | ||
ResourceGroup string | ||
} | ||
|
||
func SecurityCenterAutomationID(input string) (*SecurityCenterAutomationId, error) { | ||
id, err := azure.ParseAzureResourceID(input) | ||
if err != nil { | ||
return nil, fmt.Errorf("Unable to parse Security Center Automation ID %q: %+v", input, err) | ||
} | ||
|
||
automation := SecurityCenterAutomationId{ | ||
ResourceGroup: id.ResourceGroup, | ||
} | ||
|
||
if automation.AutomationName, err = id.PopSegment("automations"); err != nil { | ||
return nil, err | ||
} | ||
|
||
if err := id.ValidateNoEmptySegments(input); err != nil { | ||
return nil, err | ||
} | ||
|
||
return &automation, nil | ||
} |
67 changes: 67 additions & 0 deletions
67
azurerm/internal/services/securitycenter/parse/security_center_automation_test.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
package parse | ||
|
||
import "testing" | ||
|
||
func TestSecurityCentreAutomationID(t *testing.T) { | ||
testData := []struct { | ||
Name string | ||
Input string | ||
Error bool | ||
Expect *SecurityCenterAutomationId | ||
}{ | ||
{ | ||
Name: "Empty", | ||
Input: "", | ||
Error: true, | ||
}, | ||
{ | ||
Name: "No Resource Group", | ||
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/", | ||
Error: true, | ||
}, | ||
{ | ||
Name: "No Automation Segment", | ||
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG1/providers/Microsoft.Security/", | ||
Error: true, | ||
}, | ||
{ | ||
Name: "No Automation Value", | ||
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG1/providers/Microsoft.Security/automations/", | ||
Error: true, | ||
}, | ||
{ | ||
Name: "Security Center Automation ID", | ||
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG1/providers/Microsoft.Security/automations/testAutomation", | ||
Expect: &SecurityCenterAutomationId{ | ||
ResourceGroup: "testRG1", | ||
AutomationName: "testAutomation", | ||
}, | ||
}, | ||
{ | ||
Name: "Wrong Case", | ||
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG1/providers/Microsoft.Security/Automations/testAutomation", | ||
Error: true, | ||
}, | ||
} | ||
|
||
for _, v := range testData { | ||
t.Logf("[DEBUG] Testing %q", v.Name) | ||
|
||
actual, err := SecurityCenterAutomationID(v.Input) | ||
if err != nil { | ||
if v.Error { | ||
continue | ||
} | ||
|
||
t.Fatalf("Expected a value but got an error: %s", err) | ||
} | ||
|
||
if actual.AutomationName != v.Expect.AutomationName { | ||
t.Fatalf("Expected %q but got %q for Automation Name", v.Expect.AutomationName, actual.AutomationName) | ||
} | ||
|
||
if actual.ResourceGroup != v.Expect.ResourceGroup { | ||
t.Fatalf("Expected %q but got %q for Resource Group Name", v.Expect.ResourceGroup, actual.ResourceGroup) | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.