-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
azurerm_trusted_signing_account
- new resource support
#27720
Changes from 3 commits
0ad2225
7c0315a
041d9ba
366dad6
0e244d0
d8a5afc
3343a0d
5421d7c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package client | ||
|
||
import ( | ||
"fmt" | ||
|
||
codesigning_v2024_09_30_preview "github.com/hashicorp/go-azure-sdk/resource-manager/codesigning/2024-09-30-preview" | ||
|
||
"github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" | ||
"github.com/hashicorp/terraform-provider-azurerm/internal/common" | ||
) | ||
|
||
type Client struct { | ||
Client codesigning_v2024_09_30_preview.Client | ||
} | ||
|
||
func NewClient(o *common.ClientOptions) (*Client, error) { | ||
V20240930previewClient, err := codesigning_v2024_09_30_preview.NewClientWithBaseURI(o.Environment.ResourceManager, func(c *resourcemanager.Client) { | ||
o.Configure(c, o.Authorizers.ResourceManager) | ||
}) | ||
if err != nil { | ||
return nil, fmt.Errorf("building client for codesigning v20240930preview: %+v", err) | ||
} | ||
|
||
return &Client{ | ||
Client: *V20240930previewClient, | ||
}, nil | ||
} |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,40 @@ | ||||||
// Copyright (c) HashiCorp, Inc. | ||||||
// SPDX-License-Identifier: MPL-2.0 | ||||||
|
||||||
package codesigning | ||||||
|
||||||
import ( | ||||||
"github.com/hashicorp/terraform-provider-azurerm/internal/sdk" | ||||||
) | ||||||
|
||||||
type Registration struct{} | ||||||
|
||||||
var _ sdk.TypedServiceRegistration = Registration{} | ||||||
|
||||||
func (r Registration) AssociatedGitHubLabel() string { | ||||||
return "service/codesigning" | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should probably just call this
Suggested change
|
||||||
} | ||||||
|
||||||
// Name is the name of this Service | ||||||
func (r Registration) Name() string { | ||||||
return "Trusted Signing" | ||||||
} | ||||||
|
||||||
// WebsiteCategories returns a list of categories which can be used for the sidebar | ||||||
func (r Registration) WebsiteCategories() []string { | ||||||
return []string{ | ||||||
"Trusted Signing", | ||||||
} | ||||||
} | ||||||
|
||||||
// DataSources returns a list of Data Sources supported by this Service | ||||||
func (r Registration) DataSources() []sdk.DataSource { | ||||||
return []sdk.DataSource{} | ||||||
} | ||||||
|
||||||
// Resources returns a list of Resources supported by this Service | ||||||
func (r Registration) Resources() []sdk.Resource { | ||||||
return []sdk.Resource{ | ||||||
TrustedSigningAccountResource{}, | ||||||
} | ||||||
} |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,221 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Copyright (c) HashiCorp, Inc. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// SPDX-License-Identifier: MPL-2.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
package codesigning | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"context" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"fmt" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"regexp" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"time" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/go-azure-helpers/lang/pointer" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/go-azure-helpers/lang/response" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/go-azure-sdk/resource-manager/codesigning/2024-09-30-preview/codesigningaccounts" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/terraform-provider-azurerm/internal/sdk" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type TruestedSigningAccountModel struct { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name string `tfschema:"name"` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Location string `tfschema:"location"` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ResourceGroupName string `tfschema:"resource_group_name"` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AccountUri string `tfschema:"account_uri"` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SkuName string `tfschema:"sku_name"` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tags map[string]string `tfschema:"tags"` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type TrustedSigningAccountResource struct{} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var _ sdk.Resource = (*TrustedSigningAccountResource)(nil) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (m TrustedSigningAccountResource) Arguments() map[string]*pluginsdk.Schema { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return map[string]*pluginsdk.Schema{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"name": { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Type: pluginsdk.TypeString, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Required: true, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ForceNew: true, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ValidateFunc: validation.All( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
validation.StringLenBetween(3, 24), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
validation.StringMatch( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
regexp.MustCompile("^[A-Za-z][A-Za-z0-9]*(?:-[A-Za-z0-9]+)*$"), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"An account's name must be between 3-24 alphanumeric characters. The name must begin with a letter, end with a letter or digit, and not contain consecutive hyphens.", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"location": commonschema.Location(), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"resource_group_name": commonschema.ResourceGroupName(), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"sku_name": { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Type: pluginsdk.TypeString, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Required: true, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ValidateFunc: validation.StringInSlice( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
codesigningaccounts.PossibleValuesForSkuName(), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
false), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"tags": commonschema.Tags(), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (m TrustedSigningAccountResource) Attributes() map[string]*pluginsdk.Schema { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return map[string]*pluginsdk.Schema{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"account_uri": { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Type: pluginsdk.TypeString, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Computed: true, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (m TrustedSigningAccountResource) ModelObject() interface{} { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return &TruestedSigningAccountModel{} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (m TrustedSigningAccountResource) ResourceType() string { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return "azurerm_trusted_signing_account" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (m TrustedSigningAccountResource) Create() sdk.ResourceFunc { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return sdk.ResourceFunc{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Timeout: 30 * time.Minute, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Func: func(ctx context.Context, meta sdk.ResourceMetaData) error { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client := meta.Client.CodeSigning.Client.CodeSigningAccounts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var model TruestedSigningAccountModel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err := meta.Decode(&model); err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return err | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These errors should be wrapped
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
subscriptionID := meta.Client.Account.SubscriptionId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id := codesigningaccounts.NewCodeSigningAccountID(subscriptionID, model.ResourceGroupName, model.Name) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
existing, err := client.Get(ctx, id) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if !response.WasNotFound(existing.HttpResponse) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return fmt.Errorf("retrieving %s: %v", id, err) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return meta.ResourceRequiresImport(m.ResourceType(), id) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
req := codesigningaccounts.CodeSigningAccount{} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
req.Name = &model.Name | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
req.Location = model.Location | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
req.Properties = pointer.To(codesigningaccounts.CodeSigningAccountProperties{}) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
req.Properties.Sku = pointer.To(codesigningaccounts.AccountSku{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: codesigningaccounts.SkuName(model.SkuName), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
req.Tags = &model.Tags | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please update this to
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
err = client.CreateThenPoll(ctx, id, req) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return fmt.Errorf("creating %s: %v", id, err) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta.SetID(id) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return nil | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (m TrustedSigningAccountResource) Read() sdk.ResourceFunc { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return sdk.ResourceFunc{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Timeout: 5 * time.Minute, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Func: func(ctx context.Context, meta sdk.ResourceMetaData) error { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id, err := codesigningaccounts.ParseCodeSigningAccountID(meta.ResourceData.Id()) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return err | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client := meta.Client.CodeSigning.Client.CodeSigningAccounts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
result, err := client.Get(ctx, *id) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return err | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if result.Model == nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return fmt.Errorf("retrieving %s got nil model", id) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var output TruestedSigningAccountModel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
output.Name = id.CodeSigningAccountName | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
output.ResourceGroupName = id.ResourceGroupName | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if result.Model == nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return fmt.Errorf("Get response nil Model") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
model := result.Model | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
output.Location = model.Location | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
output.Tags = pointer.From(model.Tags) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if ptrProp := model.Properties; ptrProp != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
itemProp := *ptrProp | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
output.AccountUri = pointer.From(itemProp.AccountUri) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if ptrSku := itemProp.Sku; ptrSku != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
itemSku := *ptrSku | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
output.SkuName = string(itemSku.Name) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We don't error if the model is nil in the read, yet we're doing it twice here. This is also inconsistent with our contributor guidelines and the rest of the provider. Please refactor this
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return meta.Encode(&output) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (m TrustedSigningAccountResource) Update() sdk.ResourceFunc { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return sdk.ResourceFunc{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Timeout: 10 * time.Minute, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Func: func(ctx context.Context, meta sdk.ResourceMetaData) (err error) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client := meta.Client.CodeSigning.Client.CodeSigningAccounts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id, err := codesigningaccounts.ParseCodeSigningAccountID(meta.ResourceData.Id()) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return err | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var model TruestedSigningAccountModel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err = meta.Decode(&model); err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return fmt.Errorf("decoding %s: %+v", id, err) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var upd codesigningaccounts.CodeSigningAccountPatch | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Minor but |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if meta.ResourceData.HasChange("sku_name") { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
upd.Properties = pointer.To(codesigningaccounts.CodeSigningAccountPatchProperties{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sku: pointer.To(codesigningaccounts.AccountSkuPatch{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: pointer.To(codesigningaccounts.SkuName(model.SkuName)), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if meta.ResourceData.HasChange("tags") { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
upd.Tags = pointer.To(model.Tags) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err = client.UpdateThenPoll(ctx, *id, upd); err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return fmt.Errorf("updating %s: %v", id, err) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return nil | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (m TrustedSigningAccountResource) Delete() sdk.ResourceFunc { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return sdk.ResourceFunc{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Timeout: 10 * time.Minute, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Func: func(ctx context.Context, meta sdk.ResourceMetaData) error { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id, err := codesigningaccounts.ParseCodeSigningAccountID(meta.ResourceData.Id()) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return err | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta.Logger.Infof("deleting %s", id) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client := meta.Client.CodeSigning.Client.CodeSigningAccounts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if _, err = client.Delete(ctx, *id); err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return fmt.Errorf("deleting %s: %v", id, err) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return nil | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please consider the ordering of variable declarations within the CRUD functions, there is no good reason to reorder this when 99% of the provider follows the sequence suggested below.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (m TrustedSigningAccountResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return codesigningaccounts.ValidateCodeSigningAccountID | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updating the
go-azure-sdk
should be done in a separate PR otherwise we end up causing conflicts like has happened here.