Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
117 changes: 4 additions & 113 deletions sysdig/internal/client/v2/cloud_account.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,12 @@ import (
)

const (
cloudAccountsPath = "%s/api/cloud/v2/accounts"
cloudAccountsWithExternalIDPath = "%s/api/cloud/v2/accounts?includeExternalID=true&upsert=true"
cloudAccountPath = "%s/api/cloud/v2/accounts/%s"
cloudAccountWithExternalIDPath = "%s/api/cloud/v2/accounts/%s?includeExternalID=true"
providersPath = "%v/api/v2/providers"
costCloudAccountPath = "%s/api/cloudaccount"
costProviderURL = "%s/api/cloudaccount/features/cost/account?id=%d"
updateCostProviderURL = "%s/api/cloudaccount/features/cost"
providersPath = "%v/api/v2/providers"
costCloudAccountPath = "%s/api/cloudaccount"
costProviderURL = "%s/api/cloudaccount/features/cost/account?id=%d"
updateCostProviderURL = "%s/api/cloudaccount/features/cost"
)

type CloudAccountSecureInterface interface {
Base
CreateCloudAccountSecure(ctx context.Context, cloudAccount *CloudAccountSecure) (*CloudAccountSecure, error)
GetCloudAccountSecureByID(ctx context.Context, accountID string) (*CloudAccountSecure, error)
DeleteCloudAccountSecure(ctx context.Context, accountID string) error
UpdateCloudAccountSecure(ctx context.Context, accountID string, cloudAccount *CloudAccountSecure) (*CloudAccountSecure, error)
}

type CloudAccountMonitorInterface interface {
Base
CreateCloudAccountMonitor(ctx context.Context, provider *CloudAccountMonitor) (*CloudAccountMonitor, error)
Expand All @@ -36,89 +24,6 @@ type CloudAccountMonitorInterface interface {
DeleteCloudAccountMonitor(ctx context.Context, id int) error
}

func (c *Client) CreateCloudAccountSecure(ctx context.Context, cloudAccount *CloudAccountSecure) (createdAccount *CloudAccountSecure, err error) {
payload, err := Marshal(cloudAccount)
if err != nil {
return nil, err
}

response, err := c.requester.Request(ctx, http.MethodPost, c.cloudAccountsURL(true), payload)
if err != nil {
return nil, err
}
defer func() {
if dErr := response.Body.Close(); dErr != nil {
err = fmt.Errorf("unable to close response body: %w", dErr)
}
}()

if response.StatusCode != http.StatusOK && response.StatusCode != http.StatusCreated {
err = c.ErrorFromResponse(response)
return nil, err
}

return Unmarshal[*CloudAccountSecure](response.Body)
}

func (c *Client) GetCloudAccountSecureByID(ctx context.Context, accountID string) (cloudAccount *CloudAccountSecure, err error) {
response, err := c.requester.Request(ctx, http.MethodGet, c.cloudAccountURL(accountID, true), nil)
if err != nil {
return nil, err
}
defer func() {
if dErr := response.Body.Close(); dErr != nil {
err = fmt.Errorf("unable to close response body: %w", dErr)
}
}()

if response.StatusCode != http.StatusOK {
return nil, c.ErrorFromResponse(response)
}

return Unmarshal[*CloudAccountSecure](response.Body)
}

func (c *Client) DeleteCloudAccountSecure(ctx context.Context, accountID string) (err error) {
response, err := c.requester.Request(ctx, http.MethodDelete, c.cloudAccountURL(accountID, false), nil)
if err != nil {
return err
}
defer func() {
if dErr := response.Body.Close(); dErr != nil {
err = fmt.Errorf("unable to close response body: %w", dErr)
}
}()

if response.StatusCode != http.StatusNoContent && response.StatusCode != http.StatusOK {
return c.ErrorFromResponse(response)
}
return nil
}

func (c *Client) UpdateCloudAccountSecure(ctx context.Context, accountID string, cloudAccount *CloudAccountSecure) (updatedAccount *CloudAccountSecure, err error) {
payload, err := Marshal(cloudAccount)
if err != nil {
return nil, err
}

response, err := c.requester.Request(ctx, http.MethodPut, c.cloudAccountURL(accountID, true), payload)
if err != nil {
return nil, err
}
defer func() {
if dErr := response.Body.Close(); dErr != nil {
err = fmt.Errorf("unable to close response body: %w", dErr)
}
}()

if response.StatusCode != http.StatusOK {
err = c.ErrorFromResponse(response)
return nil, err
}

return Unmarshal[*CloudAccountSecure](response.Body)
}

func (c *Client) CreateCloudAccountMonitor(ctx context.Context, provider *CloudAccountMonitor) (createdProvider *CloudAccountMonitor, err error) {
payload, err := Marshal(provider)
if err != nil {
Expand Down Expand Up @@ -295,20 +200,6 @@ func (c *Client) DeleteCloudAccountMonitor(ctx context.Context, id int) (err err
return nil
}

func (c *Client) cloudAccountsURL(includeExternalID bool) string {
if includeExternalID {
return fmt.Sprintf(cloudAccountsWithExternalIDPath, c.config.url)
}
return fmt.Sprintf(cloudAccountsPath, c.config.url)
}

func (c *Client) cloudAccountURL(accountID string, includeExternalID bool) string {
if includeExternalID {
return fmt.Sprintf(cloudAccountWithExternalIDPath, c.config.url, accountID)
}
return fmt.Sprintf(cloudAccountPath, c.config.url, accountID)
}

func (c *Client) getProviderURL(id int) string {
return fmt.Sprintf("%v/%v", c.getProvidersURL(), id)
}
Expand Down
1 change: 0 additions & 1 deletion sysdig/internal/client/v2/sysdig.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ type SysdigSecure interface {
SysdigCommon
SecureCommon

CloudAccountSecureInterface
CloudauthAccountComponentSecureInterface
CloudauthAccountFeatureSecureInterface
CloudauthAccountSecureInterface
Expand Down
1 change: 0 additions & 1 deletion sysdig/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,6 @@ func (p *SysdigProvider) Provider() *schema.Provider {
"sysdig_monitor_team": resourceSysdigMonitorTeam(),

"sysdig_secure_aws_ml_policy": resourceSysdigSecureAWSMLPolicy(),
"sysdig_secure_cloud_account": resourceSysdigSecureCloudAccount(),
"sysdig_secure_cloud_auth_account": resourceSysdigSecureCloudauthAccount(),
"sysdig_secure_cloud_auth_account_component": resourceSysdigSecureCloudauthAccountComponent(),
"sysdig_secure_cloud_auth_account_feature": resourceSysdigSecureCloudauthAccountFeature(),
Expand Down
172 changes: 0 additions & 172 deletions sysdig/resource_sysdig_secure_cloud_account.go
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot just remove resources from the provider, because those may be in use by some customer. First you need to mark it as deprecated pointing to a replacement and then ensure no one else is using it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use the field DeprecationMessage within schema.Resource like:

DeprecationMessage: "This resource is deprecated. Please use X resource instead.",

That will mark the resource as deprecated.

This file was deleted.

Loading
Loading