terraform

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2023 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FastlyService

type FastlyService struct {
	Name             string
	Vcls             []*TerraformVcl
	Backends         []*TerraformBackend
	Acls             []*TerraformAcl
	Dictionaries     []*TerraformDictionary
	Snippets         []*TerraformSnippet
	LoggingEndpoints []string
}

func UnmarshalTerraformPlannedInput

func UnmarshalTerraformPlannedInput(buf []byte) ([]*FastlyService, error)

type TerraformAcl

type TerraformAcl struct {
	Name string
}

type TerraformBackend

type TerraformBackend struct {
	Name   string
	Shield *string
}

TODO(davinci26): We can unmarshall all the properties from the TF file and lint them to make sure they have sane values.

type TerraformDictionary

type TerraformDictionary struct {
	Name string
}

type TerraformFetcher

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

func NewTerraformFetcher

func NewTerraformFetcher(s []*FastlyService) *TerraformFetcher

func (*TerraformFetcher) Acls

func (f *TerraformFetcher) Acls() ([]*types.RemoteAcl, error)

func (*TerraformFetcher) Backends

func (f *TerraformFetcher) Backends() ([]*types.RemoteBackend, error)

func (*TerraformFetcher) Dictionaries

func (f *TerraformFetcher) Dictionaries() ([]*types.RemoteDictionary, error)

func (*TerraformFetcher) LoggingEndpoints added in v1.0.0

func (f *TerraformFetcher) LoggingEndpoints() ([]string, error)

func (*TerraformFetcher) SetName added in v1.0.0

func (f *TerraformFetcher) SetName(name string)

func (*TerraformFetcher) Snippets

func (f *TerraformFetcher) Snippets() ([]*types.RemoteVCL, error)

type TerraformLoggingEndpoint added in v1.0.0

type TerraformLoggingEndpoint struct {
	Name string
}

type TerraformPlannedInput

type TerraformPlannedInput struct {
	PlannedValues *struct {
		RootModule *struct {
			Resources    []*TerraformPlannedResource `json:"resources"`
			ChildModules []*struct {
				Resources []*TerraformPlannedResource `json:"resources"`
			} `json:"child_modules"`
		} `json:"root_module"`
	} `json:"planned_values"`
}

type TerraformPlannedResource

type TerraformPlannedResource struct {
	ProviderName string `json:"provider_name"`
	Type         string `json:"type"`
	Values       *struct {
		Name       string                 `json:"name"`
		Vcl        []*TerraformVcl        `json:"vcl"`
		Acl        []*TerraformAcl        `json:"acl"`
		Backend    []*TerraformBackend    `json:"backend"`
		Dictionary []*TerraformDictionary `json:"dictionary"`
		Snippets   []*TerraformSnippet    `json:"snippet"`

		// Various kinds of realtime logging endpoints
		LoggingBigQuerty     []*TerraformLoggingEndpoint `json:"logging_bigqeury"`
		LoggingBlobStorage   []*TerraformLoggingEndpoint `json:"logging_blobstorage"`
		LoggingCloudFiles    []*TerraformLoggingEndpoint `json:"logging_cloudfiles"`
		LoggingDatadog       []*TerraformLoggingEndpoint `json:"logging_datadog"`
		LoggingDigitalOpean  []*TerraformLoggingEndpoint `json:"logging_digitalocean"`
		LoggingElasticsearch []*TerraformLoggingEndpoint `json:"logging_elasticsearch"`
		LoggingFtp           []*TerraformLoggingEndpoint `json:"logging_ftp"`
		LoggingGcs           []*TerraformLoggingEndpoint `json:"logging_gcs"`
		LoggingGooglePubSub  []*TerraformLoggingEndpoint `json:"logging_googlepubsub"`
		LoggingHeroku        []*TerraformLoggingEndpoint `json:"logging_heroku"`
		LoggingHttps         []*TerraformLoggingEndpoint `json:"logging_https"`
		LoggingKafka         []*TerraformLoggingEndpoint `json:"logging_kafka"`
		LoggingKinesis       []*TerraformLoggingEndpoint `json:"logging_kinesis"`
		LoggingLogEntries    []*TerraformLoggingEndpoint `json:"logging_logentries"`
		LoggingLoggly        []*TerraformLoggingEndpoint `json:"logging_loggly"`
		LoggingLogShuttle    []*TerraformLoggingEndpoint `json:"logging_logshuttle"`
		LoggingNewRelic      []*TerraformLoggingEndpoint `json:"logging_newrelic"`
		LoggingOpenStack     []*TerraformLoggingEndpoint `json:"logging_openstack"`
		LoggingPaperTrail    []*TerraformLoggingEndpoint `json:"logging_papertrail"`
		LoggingS3            []*TerraformLoggingEndpoint `json:"logging_s3"`
		LoggingScalyr        []*TerraformLoggingEndpoint `json:"logging_scalyr"`
		LoggingSftp          []*TerraformLoggingEndpoint `json:"logging_sftp"`
		LoggingSplunk        []*TerraformLoggingEndpoint `json:"logging_splunk"`
		LoggingSumoLogic     []*TerraformLoggingEndpoint `json:"logging_sumologic"`
		LoggingSyslog        []*TerraformLoggingEndpoint `json:"logging_syslog"`
	} `json:"values"`
}

type TerraformSnippet

type TerraformSnippet struct {
	Name     string
	Type     string
	Content  string
	Priority int64
}

type TerraformVcl

type TerraformVcl struct {
	Content string
	Main    bool
	Name    string
}

Terraform planned input struct This struct could be unmarshled from input of `terraform show -json [planned json]

Jump to

Keyboard shortcuts

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