Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New resource: azurerm_media_transform #9663

Merged
merged 20 commits into from
Dec 10, 2020
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
565e9a3
include transform support
jcanizalez Dec 1, 2020
1e2913a
updating api version
jcanizalez Dec 1, 2020
92d98c1
include support for differents presets
jcanizalez Dec 2, 2020
c468474
include some validations
jcanizalez Dec 2, 2020
73aa05f
Merge branch 'master' of https://github.com/terraform-providers/terra…
jcanizalez Dec 2, 2020
0889ca2
revert deleted file
jcanizalez Dec 2, 2020
0586e44
updating documentation
jcanizalez Dec 2, 2020
c868783
Merge branch 'master' of https://github.com/terraform-providers/terra…
jcanizalez Dec 3, 2020
1560f1b
including acceptance tests
jcanizalez Dec 3, 2020
8ae3e2f
remove unnecessary line
jcanizalez Dec 3, 2020
026d50e
Merge branch 'master' of https://github.com/terraform-providers/terra…
jcanizalez Dec 3, 2020
55891fe
Merge branch 'master' of https://github.com/terraform-providers/terra…
jcanizalez Dec 8, 2020
5813b90
Apply suggestions from code review
jcanizalez Dec 8, 2020
e516cef
Apply suggestions from code review
jcanizalez Dec 8, 2020
26dedab
Merge branch 'master' of https://github.com/terraform-providers/terra…
jcanizalez Dec 8, 2020
e799ed1
Move test file to main directory
jcanizalez Dec 8, 2020
8522e82
Apply suggestions from code review
jcanizalez Dec 9, 2020
b61395d
Updating Types
jcanizalez Dec 9, 2020
6da0901
Merge branch 'master' of https://github.com/terraform-providers/terra…
jcanizalez Dec 9, 2020
ed4782c
Merge branch 'azurerm_media_transform' of https://github.com/jcanizal…
jcanizalez Dec 9, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions azurerm/internal/services/media/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@ import (
)

type Client struct {
ServicesClient *media.MediaservicesClient
ServicesClient *media.MediaservicesClient
TransformsClient *media.TransformsClient
}

func NewClient(o *common.ClientOptions) *Client {
ServicesClient := media.NewMediaservicesClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&ServicesClient.Client, o.ResourceManagerAuthorizer)

TransformsClient := media.NewTransformsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&TransformsClient.Client, o.ResourceManagerAuthorizer)

return &Client{
ServicesClient: &ServicesClient,
ServicesClient: &ServicesClient,
TransformsClient: &TransformsClient,
}
}
64 changes: 64 additions & 0 deletions azurerm/internal/services/media/parse/transform.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package parse

// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten

import (
"fmt"

"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure"
)

type TransformId struct {
SubscriptionId string
ResourceGroup string
MediaserviceName string
Name string
}

func NewTransformID(subscriptionId, resourceGroup, mediaserviceName, name string) TransformId {
return TransformId{
SubscriptionId: subscriptionId,
ResourceGroup: resourceGroup,
MediaserviceName: mediaserviceName,
Name: name,
}
}

func (id TransformId) ID(_ string) string {
fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Media/mediaservices/%s/transforms/%s"
return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroup, id.MediaserviceName, id.Name)
}

// TransformID parses a Transform ID into an TransformId struct
func TransformID(input string) (*TransformId, error) {
id, err := azure.ParseAzureResourceID(input)
if err != nil {
return nil, err
}

resourceId := TransformId{
SubscriptionId: id.SubscriptionID,
ResourceGroup: id.ResourceGroup,
}

if resourceId.SubscriptionId == "" {
return nil, fmt.Errorf("ID was missing the 'subscriptions' element")
}

if resourceId.ResourceGroup == "" {
return nil, fmt.Errorf("ID was missing the 'resourceGroups' element")
}

if resourceId.MediaserviceName, err = id.PopSegment("mediaservices"); err != nil {
return nil, err
}
if resourceId.Name, err = id.PopSegment("transforms"); err != nil {
return nil, err
}

if err := id.ValidateNoEmptySegments(input); err != nil {
return nil, err
}

return &resourceId, nil
}
128 changes: 128 additions & 0 deletions azurerm/internal/services/media/parse/transform_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
package parse

// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten

import (
"testing"

"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/resourceid"
)

var _ resourceid.Formatter = TransformId{}

func TestTransformIDFormatter(t *testing.T) {
actual := NewTransformID("12345678-1234-9876-4563-123456789012", "resGroup1", "account1", "transform1").ID("")
expected := "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Media/mediaservices/account1/transforms/transform1"
if actual != expected {
t.Fatalf("Expected %q but got %q", expected, actual)
}
}

func TestTransformID(t *testing.T) {
testData := []struct {
Input string
Error bool
Expected *TransformId
}{

{
// empty
Input: "",
Error: true,
},

{
// missing SubscriptionId
Input: "/",
Error: true,
},

{
// missing value for SubscriptionId
Input: "/subscriptions/",
Error: true,
},

{
// missing ResourceGroup
Input: "/subscriptions/12345678-1234-9876-4563-123456789012/",
Error: true,
},

{
// missing value for ResourceGroup
Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/",
Error: true,
},

{
// missing MediaserviceName
Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Media/",
Error: true,
},

{
// missing value for MediaserviceName
Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Media/mediaservices/",
Error: true,
},

{
// missing Name
Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Media/mediaservices/account1/",
Error: true,
},

{
// missing value for Name
Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Media/mediaservices/account1/transforms/",
Error: true,
},

{
// valid
Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Media/mediaservices/account1/transforms/transform1",
Expected: &TransformId{
SubscriptionId: "12345678-1234-9876-4563-123456789012",
ResourceGroup: "resGroup1",
MediaserviceName: "account1",
Name: "transform1",
},
},

{
// upper-cased
Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.MEDIA/MEDIASERVICES/ACCOUNT1/TRANSFORMS/TRANSFORM1",
Error: true,
},
}

for _, v := range testData {
t.Logf("[DEBUG] Testing %q", v.Input)

actual, err := TransformID(v.Input)
if err != nil {
if v.Error {
continue
}

t.Fatalf("Expect a value but got an error: %s", err)
}
if v.Error {
t.Fatal("Expect an error but didn't get one")
}

if actual.SubscriptionId != v.Expected.SubscriptionId {
t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId)
}
if actual.ResourceGroup != v.Expected.ResourceGroup {
t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup)
}
if actual.MediaserviceName != v.Expected.MediaserviceName {
t.Fatalf("Expected %q but got %q for MediaserviceName", v.Expected.MediaserviceName, actual.MediaserviceName)
}
if actual.Name != v.Expected.Name {
t.Fatalf("Expected %q but got %q for Name", v.Expected.Name, actual.Name)
}
}
}
1 change: 1 addition & 0 deletions azurerm/internal/services/media/registration.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,6 @@ func (r Registration) SupportedDataSources() map[string]*schema.Resource {
func (r Registration) SupportedResources() map[string]*schema.Resource {
return map[string]*schema.Resource{
"azurerm_media_services_account": resourceMediaServicesAccount(),
"azurerm_media_transform": resourceTransform(),
}
}
1 change: 1 addition & 0 deletions azurerm/internal/services/media/resourceids.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
package media

//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=MediaService -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Media/mediaservices/account1
//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=Transform -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Media/mediaservices/account1/transforms/transform1
Loading