accounts

package
v0.0.0-...-1687775 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 28, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package accounts provides functionality for managing AWS Organization accounts. Version: 1.0.0

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateDefaultAccounts

func CreateDefaultAccounts(ctx *pulumi.Context, securityOUID pulumi.StringInput, cfg *config.OrganizationConfig) error

CreateDefaultAccounts creates the default accounts required for AWS Control Tower

Types

type AccountConfig

type AccountConfig struct {
	Name       string             `json:"name"`
	Email      string             `json:"email"`
	ParentOUID pulumi.StringInput `json:"parentOuId"`
	Tags       map[string]string  `json:"tags"`
}

AccountConfig represents the configuration for account creation

type AccountInfo

type AccountInfo struct {
	ID     string            `json:"id"`
	ARN    string            `json:"arn"`
	Name   string            `json:"name"`
	Email  string            `json:"email"`
	Status string            `json:"status"`
	Tags   map[string]string `json:"tags"`
}

AccountInfo represents account information

type AccountManager

type AccountManager struct {
	// contains filtered or unexported fields
}

AccountManager handles AWS account operations

func NewAccountManager

func NewAccountManager(ctx context.Context) (*AccountManager, error)

NewAccountManager creates a new account manager instance

func (*AccountManager) Backup

func (am *AccountManager) Backup(ctx context.Context) error

Backup creates a backup of account configurations

func (*AccountManager) CreateAccount

func (am *AccountManager) CreateAccount(ctx *pulumi.Context, accountConfig *AccountConfig) (*awsOrg.Account, error)

CreateAccount creates a new AWS account with retry logic

func (*AccountManager) Restore

func (am *AccountManager) Restore(ctx context.Context, backupID string) error

Restore restores account configurations from a backup

func (*AccountManager) WithPulumiContext

func (am *AccountManager) WithPulumiContext(ctx *pulumi.Context) context.Context

Add this to your AccountManager struct

type AccountService

type AccountService interface {
	CreateAccount(ctx *pulumi.Context, config *AccountConfig) (*awsOrg.Account, error)
	SuspendAccount(ctx *pulumi.Context, accountID string) error
	ResumeAccount(ctx *pulumi.Context, accountID string) error
	MoveAccount(ctx *pulumi.Context, accountID string, targetOUID string) error
	GetAccountStatus(ctx *pulumi.Context, accountID string) (string, error)
	ListAccounts(ctx *pulumi.Context) ([]*AccountInfo, error)
	Backup(ctx context.Context) error
	Restore(ctx context.Context, backupID string) error
}

AccountService defines the interface for account operations

type BackupInfo

type BackupInfo struct {
	ID        string                  `json:"id"`
	Timestamp time.Time               `json:"timestamp"`
	Accounts  map[string]*AccountInfo `json:"accounts"`
}

BackupInfo represents the structure of a backup

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL