Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrDuplicateAsset = errors.New("duplicate asset")
Functions ¶
This section is empty.
Types ¶
type Asset ¶
type Asset struct { Name string `json:"name"` Type string `json:"asset_type"` Resource *AssetResource `json:"resource,omitempty"` IAMPolicy *IAMPolicy `json:"iam_policy,omitempty"` OrgPolicy []*OrgPolicy `json:"org_policy,omitempty"` Ancestors []string `json:"ancestors"` // contains filtered or unexported fields }
Asset contains the resource data and metadata in the same format as Google CAI (Cloud Asset Inventory).
type AssetResource ¶
type AssetResource struct { Version string `json:"version"` DiscoveryDocumentURI string `json:"discovery_document_uri"` DiscoveryName string `json:"discovery_name"` Parent string `json:"parent"` Data map[string]interface{} `json:"data"` }
AssetResource is nested within the Asset type.
type BooleanPolicy ¶
type BooleanPolicy struct {
Enforced bool `json:"enforced,omitempty"`
}
BooleanPolicy If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable.
type Converter ¶
type Converter struct {
// contains filtered or unexported fields
}
Converter knows how to convert terraform resources to their Google CAI (Cloud Asset Inventory) format (the Asset type).
func NewConverter ¶
func NewConverter(cfg *resources.Config, ancestryManager ancestrymanager.AncestryManager, offline bool, convertUnchanged bool, errorLogger *zap.Logger) *Converter
NewConverter is a factory function for Converter.
func (*Converter) AddResourceChanges ¶
func (c *Converter) AddResourceChanges(changes []*tfjson.ResourceChange) error
AddResourceChange processes the resource changes in two stages: 1. Process deletions (fetching canonical resources from GCP as necessary) 2. Process creates, updates, and no-ops (fetching canonical resources from GCP as necessary) This will give us a deterministic end result even in cases where for example an IAM Binding and Member conflict with each other, but one is replacing the other.
type IAMBinding ¶
IAMBinding binds a role to a set of members.
type IAMPolicy ¶
type IAMPolicy struct {
Bindings []IAMBinding `json:"bindings"`
}
IAMPolicy is the representation of a Cloud IAM policy set on a cloud resource.
type ListPolicy ¶
type ListPolicy struct { AllowedValues []string `json:"allowed_values,omitempty"` DeniedValues []string `json:"denied_values,omitempty"` AllValues ListPolicyAllValues `json:"all_values,omitempty"` SuggestedValue string `json:"suggested_value,omitempty"` InheritFromParent bool `json:"inherit_from_parent,omitempty"` }
ListPolicy can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied by setting the `allowed_values` and `denied_values` fields.
type ListPolicyAllValues ¶
type ListPolicyAllValues int32
ListPolicyAllValues is used to set `Policies` that apply to all possible configuration values rather than specific values in `allowed_values` or `denied_values`.
type OrgPolicy ¶
type OrgPolicy struct { Constraint string `json:"constraint,omitempty"` ListPolicy *ListPolicy `json:"list_policy,omitempty"` BooleanPolicy *BooleanPolicy `json:"boolean_policy,omitempty"` RestoreDefault *RestoreDefault `json:"restore_default,omitempty"` UpdateTime *Timestamp `json:"update_time,omitempty"` }
OrgPolicy is for managing organization policies.
type RestoreDefault ¶
type RestoreDefault struct { }
RestoreDefault determines if the default values of the `Constraints` are active for the resources.