Documentation ¶
Index ¶
- Constants
- Variables
- func GetCloudServicesForAPIs(apis ...string) (services []cloud.Service)
- func GetCloudServicesForTypes(types ...string) (services []cloud.Service)
- func InitServices(conf map[string]interface{}, log *logger.Logger) error
- func NewAccess(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func NewCdn(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func NewCloudformation(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func NewDns(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func NewDriver(region, profile string, log ...*logger.Logger) (driver.Driver, error)
- func NewInfra(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func NewLambda(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func NewMonitoring(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func NewNotification(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func NewQueue(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func NewStorage(sess *session.Session, awsconf config, log *logger.Logger) cloud.Service
- func ResourceTypesPerServiceName() map[string][]string
- type Access
- func (s *Access) Drivers() []driver.Driver
- func (s *Access) FetchByType(t string) (*graph.Graph, error)
- func (s *Access) FetchResources() (*graph.Graph, error)
- func (s *Access) GetIdentity() (*Identity, error)
- func (s *Access) GetUserPolicies(username string) (*UserPolicies, error)
- func (s *Access) IsSyncDisabled() bool
- func (s *Access) Name() string
- func (s *Access) ResourceTypes() []string
- type AwsImage
- type Cdn
- type Cloudformation
- func (s *Cloudformation) Drivers() []driver.Driver
- func (s *Cloudformation) FetchByType(t string) (*graph.Graph, error)
- func (s *Cloudformation) FetchResources() (*graph.Graph, error)
- func (s *Cloudformation) IsSyncDisabled() bool
- func (s *Cloudformation) Name() string
- func (s *Cloudformation) ResourceTypes() []string
- type Distro
- type Dns
- type Identity
- type ImageQuery
- type ImageResolver
- type Infra
- type Lambda
- type Monitoring
- type Notification
- func (s *Notification) Drivers() []driver.Driver
- func (s *Notification) FetchByType(t string) (*graph.Graph, error)
- func (s *Notification) FetchResources() (*graph.Graph, error)
- func (s *Notification) IsSyncDisabled() bool
- func (s *Notification) Name() string
- func (s *Notification) ResourceTypes() []string
- type Platform
- type Queue
- type Storage
- type UserPolicies
Constants ¶
View Source
const ( PARENT_OF = iota // default APPLIES_ON DEPENDING_ON )
View Source
const ImageQuerySpec = "owner:distro:variant:arch:virtualization:store"
Variables ¶
View Source
var ( Platforms = map[string]Platform{ "canonical": Canonical, "redhat": RedHat, "debian": Debian, "amazonlinux": AmazonLinux, "suselinux": SuseLinux, "microsoftserver": MicrosoftServer, } Canonical = Platform{ Name: "canonical", Id: "099720109477", DistroName: "ubuntu", LatestVariant: "xenial", MatchFunc: func(s string, d Distro) bool { return strings.HasPrefix(s, fmt.Sprintf("%s/images/%s-ssd/%s-%s", d.Name, d.Virt, d.Name, d.Variant)) }, } RedHat = Platform{ Name: "redhat", Id: "309956199498", DistroName: "rhel", LatestVariant: "7.3", MatchFunc: func(s string, d Distro) bool { return strings.Contains(s, fmt.Sprintf("%s-%s", d.Name, d.Variant)) }, } Debian = Platform{ Name: "debian", Id: "379101102735", DistroName: "debian", LatestVariant: "jessie", MatchFunc: func(s string, d Distro) bool { return strings.HasPrefix(s, fmt.Sprintf("%s-%s", d.Name, d.Variant)) }, } AmazonLinux = Platform{ Name: "amazonlinux", Id: "137112412989", LatestVariant: "hvm", MatchFunc: func(s string, d Distro) bool { return strings.HasPrefix(s, fmt.Sprintf("amzn-ami-%s", d.Variant)) }, } SuseLinux = Platform{ Name: "suselinux", Id: "013907871322", LatestVariant: "sles-12", MatchFunc: func(s string, d Distro) bool { return strings.HasPrefix(s, fmt.Sprintf("suse-%s", d.Variant)) }, } MicrosoftServer = Platform{ Name: "microsoftserver", Id: "801119661308", LatestVariant: "Windows_Server-2016", MatchFunc: func(s string, d Distro) bool { return strings.HasPrefix(s, fmt.Sprintf("%s", d.Variant)) }, } SupportedAMIOwners []string )
View Source
var APIPerResourceType = map[string]string{
"instance": "ec2",
"subnet": "ec2",
"vpc": "ec2",
"keypair": "ec2",
"securitygroup": "ec2",
"volume": "ec2",
"internetgateway": "ec2",
"routetable": "ec2",
"availabilityzone": "ec2",
"image": "ec2",
"importimagetask": "ec2",
"elasticip": "ec2",
"snapshot": "ec2",
"loadbalancer": "elbv2",
"targetgroup": "elbv2",
"listener": "elbv2",
"database": "rds",
"dbsubnetgroup": "rds",
"launchconfiguration": "autoscaling",
"scalinggroup": "autoscaling",
"scalingpolicy": "autoscaling",
"user": "iam",
"group": "iam",
"role": "iam",
"policy": "iam",
"accesskey": "iam",
"bucket": "s3",
"s3object": "s3",
"subscription": "sns",
"topic": "sns",
"queue": "sqs",
"zone": "route53",
"record": "route53",
"function": "lambda",
"metric": "cloudwatch",
"alarm": "cloudwatch",
"distribution": "cloudfront",
"stack": "cloudformation",
}
View Source
var (
AccessService, InfraService, StorageService, NotificationService, QueueService, DnsService, LambdaService, MonitoringService, CdnService, CloudformationService cloud.Service
)
View Source
var ErrTagNotFound = errors.New("aws tag key not found")
View Source
var ResourceTypes = []string{
"instance",
"subnet",
"vpc",
"keypair",
"securitygroup",
"volume",
"internetgateway",
"routetable",
"availabilityzone",
"image",
"importimagetask",
"elasticip",
"snapshot",
"loadbalancer",
"targetgroup",
"listener",
"database",
"dbsubnetgroup",
"launchconfiguration",
"scalinggroup",
"scalingpolicy",
"user",
"group",
"role",
"policy",
"accesskey",
"bucket",
"s3object",
"subscription",
"topic",
"queue",
"zone",
"record",
"function",
"metric",
"alarm",
"distribution",
"stack",
}
View Source
var ServiceNames = []string{
"infra",
"access",
"storage",
"notification",
"queue",
"dns",
"lambda",
"monitoring",
"cdn",
"cloudformation",
}
View Source
var ServicePerAPI = map[string]string{
"ec2": "infra",
"elbv2": "infra",
"rds": "infra",
"autoscaling": "infra",
"iam": "access",
"sts": "access",
"s3": "storage",
"sns": "notification",
"sqs": "queue",
"route53": "dns",
"lambda": "lambda",
"cloudwatch": "monitoring",
"cloudfront": "cdn",
"cloudformation": "cloudformation",
}
View Source
var ServicePerResourceType = map[string]string{
"instance": "infra",
"subnet": "infra",
"vpc": "infra",
"keypair": "infra",
"securitygroup": "infra",
"volume": "infra",
"internetgateway": "infra",
"routetable": "infra",
"availabilityzone": "infra",
"image": "infra",
"importimagetask": "infra",
"elasticip": "infra",
"snapshot": "infra",
"loadbalancer": "infra",
"targetgroup": "infra",
"listener": "infra",
"database": "infra",
"dbsubnetgroup": "infra",
"launchconfiguration": "infra",
"scalinggroup": "infra",
"scalingpolicy": "infra",
"user": "access",
"group": "access",
"role": "access",
"policy": "access",
"accesskey": "access",
"bucket": "storage",
"s3object": "storage",
"subscription": "notification",
"topic": "notification",
"queue": "queue",
"zone": "dns",
"record": "dns",
"function": "lambda",
"metric": "monitoring",
"alarm": "monitoring",
"distribution": "cdn",
"stack": "cloudformation",
}
Functions ¶
func GetCloudServicesForAPIs ¶ added in v0.0.21
func GetCloudServicesForTypes ¶ added in v0.0.21
func NewCloudformation ¶ added in v0.0.25
func NewMonitoring ¶ added in v0.0.23
func NewNotification ¶
func NewStorage ¶
func ResourceTypesPerServiceName ¶ added in v0.0.22
Types ¶
type Access ¶
func (*Access) GetIdentity ¶ added in v0.0.21
func (*Access) GetUserPolicies ¶ added in v0.0.21
func (s *Access) GetUserPolicies(username string) (*UserPolicies, error)
func (*Access) IsSyncDisabled ¶
func (*Access) ResourceTypes ¶
type Cdn ¶ added in v0.0.25
type Cdn struct { cloudfrontiface.CloudFrontAPI // contains filtered or unexported fields }
func (*Cdn) FetchByType ¶ added in v0.0.25
func (*Cdn) IsSyncDisabled ¶ added in v0.0.25
func (*Cdn) ResourceTypes ¶ added in v0.0.25
type Cloudformation ¶ added in v0.0.25
type Cloudformation struct { cloudformationiface.CloudFormationAPI // contains filtered or unexported fields }
func (*Cloudformation) Drivers ¶ added in v0.0.25
func (s *Cloudformation) Drivers() []driver.Driver
func (*Cloudformation) FetchByType ¶ added in v0.0.25
func (s *Cloudformation) FetchByType(t string) (*graph.Graph, error)
func (*Cloudformation) FetchResources ¶ added in v0.0.25
func (s *Cloudformation) FetchResources() (*graph.Graph, error)
func (*Cloudformation) IsSyncDisabled ¶ added in v0.0.25
func (s *Cloudformation) IsSyncDisabled() bool
func (*Cloudformation) Name ¶ added in v0.0.25
func (s *Cloudformation) Name() string
func (*Cloudformation) ResourceTypes ¶ added in v0.0.25
func (s *Cloudformation) ResourceTypes() []string
type Dns ¶
type Dns struct { route53iface.Route53API // contains filtered or unexported fields }
func (*Dns) IsSyncDisabled ¶
func (*Dns) ResourceTypes ¶
type Identity ¶ added in v0.0.21
type Identity struct {
Account, Arn, UserId, ResourceType, ResourcePath, Resource string
}
func (*Identity) IsUserType ¶ added in v0.0.24
type ImageQuery ¶ added in v0.0.24
func ParseImageQuery ¶ added in v0.0.24
func ParseImageQuery(s string) (ImageQuery, error)
func (ImageQuery) String ¶ added in v0.0.24
func (q ImageQuery) String() string
type ImageResolver ¶ added in v0.0.24
type ImageResolver struct {
InfraService *Infra
}
Image resolving allows to find AWS AMIs identifiers specifying what you want instead of an id that is specific to a region. The ami query string specification is as follows:
owner:distro:variant:arch:virtualization:store
Everything optional expect for the owner.
As for now only the main specific owner are taken into account and we deal with bares machines only distribution. Here are some examples:
- canonical:ubuntu:trusty
- redhat:rhel:6.8
- redhat::6.8
- amazonlinux
- suselinux:sles-12
- canonical:::i386
- redhat::::instance-store
The default values are: Arch="x86_64", Virt="hvm", Store="ebs"
func (*ImageResolver) Resolve ¶ added in v0.0.24
func (r *ImageResolver) Resolve(q ImageQuery) ([]*AwsImage, error)
type Infra ¶
type Infra struct { ec2iface.EC2API elbv2iface.ELBV2API rdsiface.RDSAPI autoscalingiface.AutoScalingAPI // contains filtered or unexported fields }
func (*Infra) IsSyncDisabled ¶
func (*Infra) ResourceTypes ¶
type Lambda ¶ added in v0.0.23
type Lambda struct { lambdaiface.LambdaAPI // contains filtered or unexported fields }
func (*Lambda) FetchByType ¶ added in v0.0.23
func (*Lambda) FetchResources ¶ added in v0.0.23
func (*Lambda) IsSyncDisabled ¶ added in v0.0.23
func (*Lambda) ResourceTypes ¶ added in v0.0.23
type Monitoring ¶ added in v0.0.23
type Monitoring struct { cloudwatchiface.CloudWatchAPI // contains filtered or unexported fields }
func (*Monitoring) Drivers ¶ added in v0.0.23
func (s *Monitoring) Drivers() []driver.Driver
func (*Monitoring) FetchByType ¶ added in v0.0.23
func (s *Monitoring) FetchByType(t string) (*graph.Graph, error)
func (*Monitoring) FetchResources ¶ added in v0.0.23
func (s *Monitoring) FetchResources() (*graph.Graph, error)
func (*Monitoring) IsSyncDisabled ¶ added in v0.0.23
func (s *Monitoring) IsSyncDisabled() bool
func (*Monitoring) Name ¶ added in v0.0.23
func (s *Monitoring) Name() string
func (*Monitoring) ResourceTypes ¶ added in v0.0.23
func (s *Monitoring) ResourceTypes() []string
type Notification ¶
func (*Notification) Drivers ¶
func (s *Notification) Drivers() []driver.Driver
func (*Notification) FetchByType ¶
func (s *Notification) FetchByType(t string) (*graph.Graph, error)
func (*Notification) FetchResources ¶
func (s *Notification) FetchResources() (*graph.Graph, error)
func (*Notification) IsSyncDisabled ¶
func (s *Notification) IsSyncDisabled() bool
func (*Notification) Name ¶
func (s *Notification) Name() string
func (*Notification) ResourceTypes ¶
func (s *Notification) ResourceTypes() []string
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
DO NOT EDIT This file was automatically generated with go generate
|
DO NOT EDIT This file was automatically generated with go generate |
DO NOT EDIT This file was automatically generated with go generate DO NOT EDIT This file was automatically generated with go generate DO NOT EDIT This file was automatically generated with go generate
|
DO NOT EDIT This file was automatically generated with go generate DO NOT EDIT This file was automatically generated with go generate DO NOT EDIT This file was automatically generated with go generate |
Click to show internal directories.
Click to hide internal directories.