fastly

package
v7.5.5 Latest Latest
Warning

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

Go to latest
Published: Mar 31, 2023 License: Apache-2.0 Imports: 26 Imported by: 1

Documentation

Overview

API reference: https://developer.fastly.com/reference/api/vcl-services/rate-limiter/ NB: ERL is an optional feature that must be enabled before use

Index

Examples

Constants

View Source
const (
	// CreateBatchOperation represents a batching variant.
	CreateBatchOperation BatchOperation = "create"
	// UpdateBatchOperation represents a batching variant.
	UpdateBatchOperation BatchOperation = "update"
	// UpsertBatchOperation represents a batching variant.
	UpsertBatchOperation BatchOperation = "upsert"
	// DeleteBatchOperation represents a batching variant.
	DeleteBatchOperation BatchOperation = "delete"

	// BatchModifyMaximumOperations represents the maximum number of operations
	// that can be sent within a single batch request. This is currently not
	// documented in the API.
	BatchModifyMaximumOperations = 1000

	// MaximumDictionarySize represents the maximum number of items that can be
	// placed within an Edge Dictionary.
	MaximumDictionarySize = 10000

	// MaximumACLSize represents the maximum number of entries that can be placed
	// within an ACL.
	MaximumACLSize = 10000
)
View Source
const (
	// S3RedundancyStandard represents a redundancy variant.
	S3RedundancyStandard S3Redundancy = "standard"
	// S3RedundancyIntelligentTiering represents a redundancy variant.
	S3RedundancyIntelligentTiering S3Redundancy = "intelligent_tiering"
	// S3RedundancyStandardIA represents a redundancy variant.
	S3RedundancyStandardIA S3Redundancy = "standard_ia"
	// S3RedundancyOneZoneIA represents a redundancy variant.
	S3RedundancyOneZoneIA S3Redundancy = "onezone_ia"
	// S3RedundancyGlacierInstantRetrieval represents a redundancy variant.
	S3RedundancyGlacierInstantRetrieval S3Redundancy = "glacier_ir"
	// S3RedundancyGlacierFlexibleRetrieval represents a redundancy variant.
	S3RedundancyGlacierFlexibleRetrieval S3Redundancy = "glacier"
	// S3RedundancyGlacierDeepArchive represents a redundancy variant.
	S3RedundancyGlacierDeepArchive S3Redundancy = "deep_archive"
	// S3RedundancyReduced represents a redundancy variant.
	S3RedundancyReduced S3Redundancy = "reduced_redundancy"

	// S3ServerSideEncryptionAES represents an encryption variant.
	S3ServerSideEncryptionAES S3ServerSideEncryption = "AES256"
	// S3ServerSideEncryptionKMS represents an encryption variant.
	S3ServerSideEncryptionKMS S3ServerSideEncryption = "aws:kms"

	// S3AccessControlListPrivate represents a control list variant.
	S3AccessControlListPrivate S3AccessControlList = "private"
	// S3AccessControlListPublicRead represents a control list variant.
	S3AccessControlListPublicRead S3AccessControlList = "public-read"
	// S3AccessControlListPublicReadWrite represents a control list variant.
	S3AccessControlListPublicReadWrite S3AccessControlList = "public-read-write"
	// S3AccessControlListAWSExecRead represents a control list variant.
	S3AccessControlListAWSExecRead S3AccessControlList = "aws-exec-read"
	// S3AccessControlListAuthenticatedRead represents a control list variant.
	S3AccessControlListAuthenticatedRead S3AccessControlList = "authenticated-read"
	// S3AccessControlListBucketOwnerRead represents a control list variant.
	S3AccessControlListBucketOwnerRead S3AccessControlList = "bucket-owner-read"
	// S3AccessControlListBucketOwnerFullControl represents a control list variant.
	S3AccessControlListBucketOwnerFullControl S3AccessControlList = "bucket-owner-full-control"
)
View Source
const (
	// WAFRuleExclusionTypeRule is the type of WAF rule exclusions that excludes rules from the WAF based on certain conditions.
	WAFRuleExclusionTypeRule = "rule"
	// WAFRuleExclusionTypeWAF is the type of WAF rule exclusions that excludes WAF based on certain conditions.
	WAFRuleExclusionTypeWAF = "waf"
)
View Source
const (
	// WAFPaginationPageSize is used as the default pagination page size by the WAF related requests.
	WAFPaginationPageSize = 100

	// WAFBatchModifyMaximumOperations is used as the default batch maximum operations.
	WAFBatchModifyMaximumOperations = 500

	// WAFVersionDeploymentStatusPending is the string value representing pending state for last_deployment_status for a WAF version.
	WAFVersionDeploymentStatusPending = "pending"

	// WAFVersionDeploymentStatusInProgress is the string value representing in-progress state for last_deployment_status for a WAF version.
	WAFVersionDeploymentStatusInProgress = "in progress"

	// WAFVersionDeploymentStatusCompleted is the string value representing completed state for last_deployment_status for a WAF versions.
	WAFVersionDeploymentStatusCompleted = "completed"

	// WAFVersionDeploymentStatusFailed is the string value representing failed state for last_deployment_status for a WAF versions.
	WAFVersionDeploymentStatusFailed = "failed"
)
View Source
const APIKeyEnvVar = "FASTLY_API_KEY"

APIKeyEnvVar is the name of the environment variable where the Fastly API key should be read from.

View Source
const APIKeyHeader = "Fastly-Key"

APIKeyHeader is the name of the header that contains the Fastly API key.

View Source
const DefaultEndpoint = "https://api.fastly.com"

DefaultEndpoint is the default endpoint for Fastly. Since Fastly does not support an on-premise solution, this is likely to always be the default.

View Source
const DefaultRealtimeStatsEndpoint = "https://rt.fastly.com"

DefaultRealtimeStatsEndpoint is the realtime stats endpoint for Fastly.

View Source
const EndpointEnvVar = "FASTLY_API_URL"

EndpointEnvVar is the name of an environment variable that can be used to change the URL of API requests.

View Source
const RealtimeStatsEndpointEnvVar = "FASTLY_RTS_URL"

RealtimeStatsEndpointEnvVar is the name of an environment variable that can be used to change the URL of realtime stats requests.

Variables

ERLActions is a list of supported actions.

ERLLoggers is a list of supported logger types.

View Source
var ERLWindowSizes = []ERLWindowSize{
	ERLSize1,
	ERLSize10,
	ERLSize60,
}

ERLWindowSizes is a list of supported time window sizes.

View Source
var ErrCommonNameNotInDomains = NewFieldError("CommonName").Message("CommonName must be in Domains")

ErrCommonNameNotInDomains is an error that is returned when an input struct requires that the domain in "CommonName" is also in "Domains"

View Source
var ErrManagedLoggingEnabled = errors.New("managed logging already enabled")

ErrManagedLoggingEnabled is an error that indicates that managed logging was already enabled for a service.

View Source
var ErrMaxExceededEntries = NewFieldError("Entries").Message(batchModifyMaxExceeded)

ErrMaxExceededEntries is an error that is returned when an input struct specifies an "Entries" key value exceeding the maximum allowed.

View Source
var ErrMaxExceededItems = NewFieldError("Items").Message(batchModifyMaxExceeded)

ErrMaxExceededItems is an error that is returned when an input struct specifies an "Items" key value exceeding the maximum allowed.

View Source
var ErrMaxExceededRules = NewFieldError("Rules").Message(batchModifyMaxExceeded)

ErrMaxExceededRules is an error that is returned when an input struct specifies an "Rules" key value exceeding the maximum allowed.

View Source
var ErrMissingACLID = NewFieldError("ACLID")

ErrMissingACLID is an error that is returned when an input struct requires a "ACLID" key, but one was not set.

View Source
var ErrMissingAddress = NewFieldError("Address")

ErrMissingAddress is an error that is returned when an input struct requires a "Address" key, but one was not set.

View Source
var ErrMissingBackend = NewFieldError("Backend")

ErrMissingBackend is an error that is returned when an input struct requires a "Backend" key, but one was not set.

View Source
var ErrMissingCertBlob = NewFieldError("CertBlob")

ErrMissingCertBlob is an error that is returned when an input struct requires a "CertBlob" key, but one was not set.

View Source
var ErrMissingContent = NewFieldError("Content")

ErrMissingContent is an error that is returned when an input struct requires a "Content" key, but one was not set.

View Source
var ErrMissingCustomerID = NewFieldError("CustomerID")

ErrMissingCustomerID is an error that is returned when an input struct requires a "CustomerID" key, but one was not set.

View Source
var ErrMissingDictionaryID = NewFieldError("DictionaryID")

ErrMissingDictionaryID is an error that is returned when an input struct requires a "DictionaryID" key, but one was not set.

View Source
var ErrMissingDirector = NewFieldError("Director")

ErrMissingDirector is an error that is returned when an input struct requires a "Director" key, but one was not set.

View Source
var ErrMissingERLID = NewFieldError("ERLID")

ErrMissingERLID is an error that is returned when an input struct requires an "ERLID" key, but one was not set.

View Source
var ErrMissingEventID = NewFieldError("EventID")

ErrMissingEventID is an error that is returned when an input struct requires a "EventID" key, but one was not set.

View Source
var ErrMissingFrom = NewFieldError("From")

ErrMissingFrom is an error that is returned when an input struct requires a "From" key, but one was not set.

View Source
var ErrMissingID = NewFieldError("ID")

ErrMissingID is an error that is returned when an input struct requires a "ID" key, but one was not set.

View Source
var ErrMissingIP = NewFieldError("IP")

ErrMissingIP is an error that is returned when an input struct requires a "IP" key, but one was not set.

View Source
var ErrMissingIntermediatesBlob = NewFieldError("IntermediatesBlob")

ErrMissingIntermediatesBlob is an error that is returned when an input struct requires a "IntermediatesBlob" key, but one was not set.

View Source
var ErrMissingItemKey = NewFieldError("ItemKey")

ErrMissingItemKey is an error that is returned when an input struct requires a "ItemKey" key, but one was not set.

View Source
var ErrMissingKey = NewFieldError("Key")

ErrMissingKey is an error that is returned when an input struct requires a "Key" key, but one was not set.

View Source
var ErrMissingKeys = NewFieldError("Keys")

ErrMissingKeys is an error that is returned when an input struct requires a "Keys" key, but one was not set.

View Source
var ErrMissingKind = NewFieldError("Kind")

ErrMissingKind is an error that is returned when an input struct requires a "Kind" key, but one was not set.

View Source
var ErrMissingLogin = NewFieldError("Login")

ErrMissingLogin is an error that is returned when an input struct requires a "Login" key, but one was not set.

View Source
var ErrMissingMonth = NewFieldError("Month")

ErrMissingMonth is an error that is returned when an input struct requires a "Month" key, but one was not set.

View Source
var ErrMissingName = NewFieldError("Name")

ErrMissingName is an error that is returned when an input struct requires a "Name" key, but one was not set.

View Source
var ErrMissingNameValue = NewFieldError("Name").Message("service name can't be an empty value")

ErrMissingNameValue is an error that is returned when an input struct requires a "Name" key, but one was not set.

View Source
var ErrMissingNewName = NewFieldError("NewName")

ErrMissingNewName is an error that is returned when an input struct requires a "NewName" key, but one was not set.

View Source
var ErrMissingNumber = NewFieldError("Number")

ErrMissingNumber is an error that is returned when an input struct requires a "Number" key, but one was not set.

View Source
var ErrMissingOptionalNameComment = NewFieldError("Name, Comment").Message("at least one of the available 'optional' fields is required")

ErrMissingOptionalNameComment is an error that is returned when an input struct requires either a "Name" or "Comment" key, but one was not set.

View Source
var ErrMissingPermission = NewFieldError("Permission")

ErrMissingPermission is an error that is returned when an input struct requires a "Permission" key, but one was not set

View Source
var ErrMissingPoolID = NewFieldError("PoolID")

ErrMissingPoolID is an error that is returned when an input struct requires a "PoolID" key, but one was not set.

View Source
var ErrMissingProductID = NewFieldError("ProductID")

ErrMissingProductID is an error that is returned when an input struct requires a "ProductID" key, but one was not set.

View Source
var ErrMissingSecret = NewFieldError("Secret")

ErrMissingSecret is an error that is returned when an input struct requires a "Secret" key, but one was not set.

View Source
var ErrMissingServer = NewFieldError("Server")

ErrMissingServer is an error that is returned when an input struct requires a "Server" key, but one was not set.

View Source
var ErrMissingServerSideEncryptionKMSKeyID = NewFieldError("ServerSideEncryptionKMSKeyID")

ErrMissingServerSideEncryptionKMSKeyID is an error that is returned when an input struct requires a "ServerSideEncryptionKMSKeyID" key, but one was not set.

View Source
var ErrMissingServiceAuthorizationsService = NewFieldError("Service").Message("SAService requires an ID")

ErrMissingServiceAuthorizationsService is an error that is returned when an input struct requires a "Service" key of type SAService, but one was not set or was misconfigured.

View Source
var ErrMissingServiceAuthorizationsUser = NewFieldError("User").Message("SAUser requires an ID")

ErrMissingServiceAuthorizationsUser is an error that is returned when an input struct requires a "User" key of type SAUser, but one was not set or was misconfigured.

View Source
var ErrMissingServiceID = NewFieldError("ServiceID")

ErrMissingServiceID is an error that is returned when an input struct requires a "ServiceID" key, but one was not set.

View Source
var ErrMissingServiceVersion = NewFieldError("ServiceVersion")

ErrMissingServiceVersion is an error that is returned when an input struct requires a "ServiceVersion" key, but one was not set.

View Source
var ErrMissingStoreID = NewFieldError("StoreID")

ErrMissingStoreID is an error that is returned when an input struct requires a "StoreID" key, but one was not set.

View Source
var ErrMissingTLSCertificate = NewFieldError("TLSCertificate")

ErrMissingTLSCertificate is an error that is returned when an input struct requires a "TLSCertificate" key, but one was not set.

View Source
var ErrMissingTLSConfiguration = NewFieldError("TLSConfiguration")

ErrMissingTLSConfiguration is an error that is returned when an input struct requires a "TLSConfiguration" key, but one was not set.

View Source
var ErrMissingTLSDomain = NewFieldError("TLSDomain")

ErrMissingTLSDomain is an error that is returned when an input struct requires a "TLSDomain" key, but one was not set.

View Source
var ErrMissingTo = NewFieldError("To")

ErrMissingTo is an error that is returned when an input struct requires a "To" key, but one was not set.

View Source
var ErrMissingToken = NewFieldError("Token")

ErrMissingToken is an error that is returned when an input struct requires a "Token" key, but one was not set.

View Source
var ErrMissingTokenID = errors.New("missing required field 'TokenID'")

ErrMissingTokenID is an error that is returned when an input struct requires a "TokenID" key, but one was not set.

View Source
var ErrMissingTokensValue = NewFieldError("Tokens").Message("expect at least one token")

ErrMissingTokensValue is an error that is returned when an input struct requires a "Tokens" key, but there needs to be at least one token entry.

View Source
var ErrMissingType = NewFieldError("Type")

ErrMissingType is an error that is returned when an input struct requires a "Type" key, but one was not set.

View Source
var ErrMissingURL = NewFieldError("URL")

ErrMissingURL is an error that is returned when an input struct requires a "URL" key, but one was not set.

View Source
var ErrMissingUserID = NewFieldError("UserID")

ErrMissingUserID is an error that is returned when an input struct requires a "UserID" key, but one was not set

View Source
var ErrMissingValue = NewFieldError("Value")

ErrMissingValue is an error that is returned when an input struct requires a "Value" key, but one was not set.

View Source
var ErrMissingWAFActiveRule = NewFieldError("Rules").Message("expect at least one WAFActiveRule")

ErrMissingWAFActiveRule is an error that is returned when an input struct requires a "Rules" key, but there needs to be at least one WAFActiveRule entry.

View Source
var ErrMissingWAFID = NewFieldError("WAFID")

ErrMissingWAFID is an error that is returned when an input struct requires a "WAFID" key, but one was not set.

View Source
var ErrMissingWAFRuleExclusion = NewFieldError("WAFRuleExclusion")

ErrMissingWAFRuleExclusion is an error that is returned when an input struct requires a "WAFRuleExclusion" key, but one was not set.

View Source
var ErrMissingWAFRuleExclusionNumber = NewFieldError("WAFRuleExclusionNumber")

ErrMissingWAFRuleExclusionNumber is an error that is returned when an input struct requires a "WAFRuleExclusionNumber" key, but one was not set.

View Source
var ErrMissingWAFVersionID = NewFieldError("WAFVersionID")

ErrMissingWAFVersionID is an error that is returned when an input struct requires a "WAFVersionID" key, but one was not set.

View Source
var ErrMissingWAFVersionNumber = NewFieldError("WAFVersionNumber")

ErrMissingWAFVersionNumber is an error that is returned when an input struct requires a "WAFVersionNumber" key, but one was not set.

View Source
var ErrMissingYear = NewFieldError("Year")

ErrMissingYear is an error that is returned when an input struct requires a "Year" key, but one was not set.

View Source
var ErrNotImplemented = errors.New("not implemented")

ErrNotImplemented is a generic error indicating that something is not yet implemented.

View Source
var ErrNotOK = errors.New("not ok")

ErrNotOK is a generic error indicating that something is not okay.

View Source
var ErrStatusNotOk = errors.New("unexpected 'status' field in API response body")

ErrStatusNotOk is an error that indicates the response body returned by the Fastly API was not `{"status": "ok"}`

View Source
var ErrTokenEmpty = NewFieldError("Token").Message(emptyTokenInvalid)

ErrTokenEmpty is an error that is returned when an input struct specifies an "Token" key value which the user has set to an empty string.

View Source
var ProjectURL = "github.com/fastly/go-fastly"

ProjectURL is the url for this library.

View Source
var ProjectVersion = "7.5.5"

ProjectVersion is the version of this library.

View Source
var UserAgent = fmt.Sprintf("FastlyGo/%s (+%s; %s)",
	ProjectVersion, ProjectURL, runtime.Version())

UserAgent is the user agent for this particular client.

View Source
var WAFActiveRuleType = reflect.TypeOf(new(WAFActiveRule))

WAFActiveRuleType is used for reflection because JSONAPI wants to know what it's decoding into.

View Source
var WAFRuleExclusionType = reflect.TypeOf(new(WAFRuleExclusion))

WAFRuleExclusionType is used for reflection because JSONAPI wants to know what it's decoding into.

View Source
var WAFRuleType = reflect.TypeOf(new(WAFRule))

WAFRuleType is used for reflection because JSONAPI wants to know what it's decoding into.

View Source
var WAFVersionType = reflect.TypeOf(new(WAFVersion))

WAFVersionType is used for reflection because JSONAPI wants to know what it's decoding into.

Functions

func Bool

func Bool(v bool) *bool

Bool is a helper that returns a pointer to the bool value passed in.

func Int

func Int(v int) *int

Int is a helper that returns a pointer to the int value passed in.

func MakePackagePath

func MakePackagePath(serviceID string, serviceVersion int) (string, error)

MakePackagePath ensures we create the correct REST path for referencing packages in the API.

func NullString

func NullString(v string) *string

NullString is a helper that returns a pointer to the string value passed in or nil if the string is empty.

NOTE: historically this has only been utilized by https://github.com/fastly/terraform-provider-fastly

func String

func String(v string) *string

String is a helper that returns a pointer to the string value passed in.

func Uint

func Uint(v uint) *uint

Uint is a helper that returns a pointer to the uint value passed in.

func Uint8

func Uint8(v uint8) *uint8

Uint8 is a helper that returns a pointer to the uint8 value passed in.

Types

type ACL

type ACL struct {
	CreatedAt      *time.Time `mapstructure:"created_at"`
	DeletedAt      *time.Time `mapstructure:"deleted_at"`
	ID             string     `mapstructure:"id"`
	Name           string     `mapstructure:"name"`
	ServiceID      string     `mapstructure:"service_id"`
	ServiceVersion int        `mapstructure:"version"`
	UpdatedAt      *time.Time `mapstructure:"updated_at"`
}

ACL represents a server response from the Fastly API.

type ACLEntry

type ACLEntry struct {
	ACLID     string     `mapstructure:"acl_id"`
	Comment   string     `mapstructure:"comment"`
	CreatedAt *time.Time `mapstructure:"created_at"`
	DeletedAt *time.Time `mapstructure:"deleted_at"`
	ID        string     `mapstructure:"id"`
	IP        string     `mapstructure:"ip"`
	Negated   bool       `mapstructure:"negated"`
	ServiceID string     `mapstructure:"service_id"`
	Subnet    *int       `mapstructure:"subnet"`
	UpdatedAt *time.Time `mapstructure:"updated_at"`
}

ACLEntry represents a server response from the Fastly API.

type ACLsByName

type ACLsByName []*ACL

ACLsByName is a sortable list of ACLs.

func (ACLsByName) Len

func (s ACLsByName) Len() int

Len implements the sortable interface.

func (ACLsByName) Less

func (s ACLsByName) Less(i, j int) bool

Less implements the sortable interface.

func (ACLsByName) Swap

func (s ACLsByName) Swap(i, j int)

Swap implements the sortable interface.

type ActivateVCLInput

type ActivateVCLInput struct {
	// Name is the name of the VCL to mark as main (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ActivateVCLInput is used as input to the ActivateVCL function.

type ActivateVersionInput

type ActivateVersionInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ActivateVersionInput is the input to the ActivateVersion function.

type Backend

type Backend struct {
	Address             string     `mapstructure:"address"`
	AutoLoadbalance     bool       `mapstructure:"auto_loadbalance"`
	BetweenBytesTimeout int        `mapstructure:"between_bytes_timeout"`
	Comment             string     `mapstructure:"comment"`
	ConnectTimeout      int        `mapstructure:"connect_timeout"`
	CreatedAt           *time.Time `mapstructure:"created_at"`
	DeletedAt           *time.Time `mapstructure:"deleted_at"`
	ErrorThreshold      int        `mapstructure:"error_threshold"`
	FirstByteTimeout    int        `mapstructure:"first_byte_timeout"`
	HealthCheck         string     `mapstructure:"healthcheck"`
	Hostname            string     `mapstructure:"hostname"`
	KeepAliveTime       int        `mapstructure:"keepalive_time"`
	MaxConn             int        `mapstructure:"max_conn"`
	MaxTLSVersion       string     `mapstructure:"max_tls_version"`
	MinTLSVersion       string     `mapstructure:"min_tls_version"`
	Name                string     `mapstructure:"name"`
	OverrideHost        string     `mapstructure:"override_host"`
	Port                int        `mapstructure:"port"`
	RequestCondition    string     `mapstructure:"request_condition"`
	SSLCACert           string     `mapstructure:"ssl_ca_cert"`
	SSLCertHostname     string     `mapstructure:"ssl_cert_hostname"`
	SSLCheckCert        bool       `mapstructure:"ssl_check_cert"`
	SSLCiphers          string     `mapstructure:"ssl_ciphers"`
	SSLClientCert       string     `mapstructure:"ssl_client_cert"`
	SSLClientKey        string     `mapstructure:"ssl_client_key"`
	SSLHostname         string     `mapstructure:"ssl_hostname"`
	SSLSNIHostname      string     `mapstructure:"ssl_sni_hostname"`
	ServiceID           string     `mapstructure:"service_id"`
	ServiceVersion      int        `mapstructure:"version"`
	Shield              string     `mapstructure:"shield"`
	UpdatedAt           *time.Time `mapstructure:"updated_at"`
	UseSSL              bool       `mapstructure:"use_ssl"`
	Weight              int        `mapstructure:"weight"`
}

Backend represents a backend response from the Fastly API.

type BatchACLEntry

type BatchACLEntry struct {
	// Comment is a freeform descriptive note.
	Comment *string `json:"comment,omitempty"`
	// ID is an alphanumeric string identifying an ACL Entry.
	ID *string `json:"id,omitempty"`
	// IP is an IP address.
	IP *string `json:"ip,omitempty"`
	// Negated is whether to negate the match. Useful primarily when creating individual exceptions to larger subnets.
	Negated *Compatibool `json:"negated,omitempty"`
	// Operation is a batching operation variant.
	Operation BatchOperation `json:"op"`
	// Subnet is the number of bits for the subnet mask applied to the IP address.
	Subnet *int `json:"subnet,omitempty"`
}

BatchACLEntry represents a single ACL entry.

type BatchDeleteTokensInput

type BatchDeleteTokensInput struct {
	// Tokens is a list of alphanumeric strings, each identifying a token.
	Tokens []*BatchToken
}

BatchDeleteTokensInput is used as input to BatchDeleteTokens.

type BatchDictionaryItem

type BatchDictionaryItem struct {
	// ItemKey is an item key (maximum 256 characters).
	ItemKey string `json:"item_key"`
	// ItemValue is an item value (maximum 8000 characters).
	ItemValue string `json:"item_value"`
	// Operation is a batching operation variant.
	Operation BatchOperation `json:"op"`
}

BatchDictionaryItem represents a dictionary item.

type BatchModificationWAFActiveRulesInput

type BatchModificationWAFActiveRulesInput struct {
	// OP is the batch operation to be performed (allowed operations are upsert and delete).
	OP BatchOperation
	// Rules is the list of WAF active rules (ModSecID, Status and Revision are required for upsert, ModSecID is required for delete).
	Rules []*WAFActiveRule
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

BatchModificationWAFActiveRulesInput is used for active rules batch modifications.

type BatchModifyACLEntriesInput

type BatchModifyACLEntriesInput struct {
	// ACLID is an alphanumeric string identifying a ACL (required).
	ACLID string `json:"-"`
	// Entries is a list of ACL entries.
	Entries []*BatchACLEntry `json:"entries"`
	// ServiceID is an alphanumeric string identifying the service (required).
	ServiceID string `json:"-"`
}

BatchModifyACLEntriesInput is the input parameter to the BatchModifyACLEntries function.

type BatchModifyDictionaryItemsInput

type BatchModifyDictionaryItemsInput struct {
	// DictionaryID is the ID of the dictionary to modify items for (required).
	DictionaryID string `json:"-"`
	// Items is a list of dictionary items.
	Items []*BatchDictionaryItem `json:"items"`
	// ServiceID is the ID of the service (required).
	ServiceID string `json:"-"`
}

BatchModifyDictionaryItemsInput is the input parameter to the BatchModifyDictionaryItems function.

type BatchOperation

type BatchOperation string

BatchOperation represents batching variants.

type BatchToken

type BatchToken struct {
	// ID is an alphanumeric string identifying a token.
	ID string `jsonapi:"primary,token,omitempty"`
}

BatchToken represents the JSONAPI data to be sent to the API. Reference: https://github.com/google/jsonapi#primary

type BigQuery

type BigQuery struct {
	AccountName       string     `mapstructure:"account_name"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	Dataset           string     `mapstructure:"dataset"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	ProjectID         string     `mapstructure:"project_id"`
	ResponseCondition string     `mapstructure:"response_condition"`
	SecretKey         string     `mapstructure:"secret_key"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Table             string     `mapstructure:"table"`
	Template          string     `mapstructure:"template_suffix"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	User              string     `mapstructure:"user"`
}

BigQuery represents a BigQuery response from the Fastly API.

type Billing

type Billing struct {
	EndTime   *time.Time     `mapstructure:"end_time"`
	InvoiceID string         `mapstructure:"invoice_id"`
	StartTime *time.Time     `mapstructure:"start_time"`
	Status    *BillingStatus `mapstructure:"status"`
	Total     *BillingTotal  `mapstructure:"total"`
}

Billing is the top-level representation of a billing response from the Fastly API.

type BillingExtra

type BillingExtra struct {
	Name      string  `mapstructure:"name"`
	Recurring float64 `mapstructure:"recurring"`
	Setup     float64 `mapstructure:"setup"`
}

BillingExtra is a representation of extras (such as SSL addons) from the Fastly API.

type BillingStatus

type BillingStatus struct {
	InvoiceID string     `mapstructure:"invoice_id"`
	SentAt    *time.Time `mapstructure:"sent_at"`
	Status    string     `mapstructure:"status"`
}

BillingStatus is a representation of the status of the bill from the Fastly API.

type BillingTotal

type BillingTotal struct {
	Bandwidth          float64         `mapstructure:"bandwidth"`
	BandwidthCost      float64         `mapstructure:"bandwidth_cost"`
	Cost               float64         `mapstructure:"cost"`
	CostBeforeDiscount float64         `mapstructure:"cost_before_discount"`
	Discount           float64         `mapstructure:"discount"`
	Extras             []*BillingExtra `mapstructure:"extras"`
	ExtrasCost         float64         `mapstructure:"extras_cost"`
	IncurredCost       float64         `mapstructure:"incurred_cost"`
	Overage            float64         `mapstructure:"overage"`
	PlanCode           string          `mapstructure:"plan_code"`
	PlanMinimum        string          `mapstructure:"plan_minimum"`
	PlanName           string          `mapstructure:"plan_name"`
	Requests           uint64          `mapstructure:"requests"`
	RequestsCost       float64         `mapstructure:"requests_cost"`
	Terms              string          `mapstructure:"terms"`
}

BillingTotal is a representation of the status of the usage for this bill from the Fastly API.

type BlobStorage

type BlobStorage struct {
	AccountName       string     `mapstructure:"account_name"`
	CompressionCodec  string     `mapstructure:"compression_codec"`
	Container         string     `mapstructure:"container"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	FileMaxBytes      int        `mapstructure:"file_max_bytes"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	GzipLevel         int        `mapstructure:"gzip_level"`
	MessageType       string     `mapstructure:"message_type"`
	Name              string     `mapstructure:"name"`
	Path              string     `mapstructure:"path"`
	Period            int        `mapstructure:"period"`
	Placement         string     `mapstructure:"placement"`
	PublicKey         string     `mapstructure:"public_key"`
	ResponseCondition string     `mapstructure:"response_condition"`
	SASToken          string     `mapstructure:"sas_token"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TimestampFormat   string     `mapstructure:"timestamp_format"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

BlobStorage represents a blob storage response from the Fastly API.

type BulkCertificate

type BulkCertificate struct {
	Configurations []*TLSConfiguration `jsonapi:"relation,tls_configurations,tls_configuration"`
	CreatedAt      *time.Time          `jsonapi:"attr,created_at,iso8601"`
	Domains        []*TLSDomain        `jsonapi:"relation,tls_domains,tls_domain"`
	ID             string              `jsonapi:"primary,tls_bulk_certificate"`
	NotAfter       *time.Time          `jsonapi:"attr,not_after,iso8601"`
	NotBefore      *time.Time          `jsonapi:"attr,not_before,iso8601"`
	Replace        bool                `jsonapi:"attr,replace"`
	UpdatedAt      *time.Time          `jsonapi:"attr,updated_at,iso8601"`
}

BulkCertificate represents a bulk certificate.

type CacheSetting

type CacheSetting struct {
	Action         CacheSettingAction `mapstructure:"action"`
	CacheCondition string             `mapstructure:"cache_condition"`
	CreatedAt      *time.Time         `mapstructure:"created_at"`
	DeletedAt      *time.Time         `mapstructure:"deleted_at"`
	Name           string             `mapstructure:"name"`
	ServiceID      string             `mapstructure:"service_id"`
	ServiceVersion int                `mapstructure:"version"`
	StaleTTL       int                `mapstructure:"stale_ttl"`
	TTL            int                `mapstructure:"ttl"`
	UpdatedAt      *time.Time         `mapstructure:"updated_at"`
}

CacheSetting represents a response from Fastly's API for cache settings.

type CacheSettingAction

type CacheSettingAction string

CacheSettingAction is the type of cache action.

const (
	// CacheSettingActionCache sets the cache to cache.
	CacheSettingActionCache CacheSettingAction = "cache"

	// CacheSettingActionPass sets the cache to pass through.
	CacheSettingActionPass CacheSettingAction = "pass"

	// CacheSettingActionRestart sets the cache to restart the request.
	CacheSettingActionRestart CacheSettingAction = "restart"
)

func CacheSettingActionPtr

func CacheSettingActionPtr(v CacheSettingAction) *CacheSettingAction

CacheSettingActionPtr returns a pointer to a CacheSettingAction.

type Client

type Client struct {
	// Address is the address of Fastly's API endpoint.
	Address string
	// HTTPClient is the HTTP client to use. If one is not provided, a default
	// client will be used.
	HTTPClient *http.Client
	// contains filtered or unexported fields
}

Client is the main entrypoint to the Fastly golang API library.

func DefaultClient

func DefaultClient() *Client

DefaultClient instantiates a new Fastly API client. This function requires the environment variable `FASTLY_API_KEY` is set and contains a valid API key to authenticate with Fastly.

func NewClient

func NewClient(key string) (*Client, error)

NewClient creates a new API client with the given key and the default API endpoint. Because Fastly allows some requests without an API key, this function will not error if the API token is not supplied. Attempts to make a request that requires an API key will return a 403 response.

func NewClientForEndpoint

func NewClientForEndpoint(key string, endpoint string) (*Client, error)

NewClientForEndpoint creates a new API client with the given key and API endpoint. Because Fastly allows some requests without an API key, this function will not error if the API token is not supplied. Attempts to make a request that requires an API key will return a 403 response.

func (*Client) ActivateVCL

func (c *Client) ActivateVCL(i *ActivateVCLInput) (*VCL, error)

ActivateVCL creates a new Fastly VCL.

func (*Client) ActivateVersion

func (c *Client) ActivateVersion(i *ActivateVersionInput) (*Version, error)

ActivateVersion activates the given version.

func (*Client) AllDatacenters

func (c *Client) AllDatacenters() (datacenters []Datacenter, err error)

AllDatacenters returns the lists of datacenters for Fastly's network.

func (*Client) AllIPs

func (c *Client) AllIPs() (v4, v6 IPAddrs, err error)

AllIPs returns the lists of public IPv4 and IPv6 addresses for Fastly's network.

func (*Client) BatchDeleteTokens

func (c *Client) BatchDeleteTokens(i *BatchDeleteTokensInput) error

BatchDeleteTokens revokes multiple tokens.

func (*Client) BatchModificationWAFActiveRules

func (c *Client) BatchModificationWAFActiveRules(i *BatchModificationWAFActiveRulesInput) ([]*WAFActiveRule, error)

BatchModificationWAFActiveRules groups create/delete operations for the specified resource.

This is a generic function for creating or deleting WAF active rules in batches. Upsert and delete are the only operations allowed.

func (*Client) BatchModifyACLEntries

func (c *Client) BatchModifyACLEntries(i *BatchModifyACLEntriesInput) error

BatchModifyACLEntries updates the specified resources.

func (*Client) BatchModifyDictionaryItems

func (c *Client) BatchModifyDictionaryItems(i *BatchModifyDictionaryItemsInput) error

BatchModifyDictionaryItems bulk updates dictionary items.

func (*Client) CloneVersion

func (c *Client) CloneVersion(i *CloneVersionInput) (*Version, error)

CloneVersion creates a clone of the specified version.

Returns a new configuration version with all the same configuration options, but an incremented number.

func (*Client) CloneWAFVersion

func (c *Client) CloneWAFVersion(i *CloneWAFVersionInput) (*WAFVersion, error)

CloneWAFVersion clones a specific WAF version.

func (*Client) CreateACL

func (c *Client) CreateACL(i *CreateACLInput) (*ACL, error)

CreateACL creates a new resource.

func (*Client) CreateACLEntry

func (c *Client) CreateACLEntry(i *CreateACLEntryInput) (*ACLEntry, error)

CreateACLEntry creates a new resource.

func (*Client) CreateBackend

func (c *Client) CreateBackend(i *CreateBackendInput) (*Backend, error)

CreateBackend creates a new resource.

func (*Client) CreateBigQuery

func (c *Client) CreateBigQuery(i *CreateBigQueryInput) (*BigQuery, error)

CreateBigQuery creates a new resource.

func (*Client) CreateBlobStorage

func (c *Client) CreateBlobStorage(i *CreateBlobStorageInput) (*BlobStorage, error)

CreateBlobStorage creates a new resource.

func (*Client) CreateBulkCertificate

func (c *Client) CreateBulkCertificate(i *CreateBulkCertificateInput) (*BulkCertificate, error)

CreateBulkCertificate creates a new resource.

func (*Client) CreateCacheSetting

func (c *Client) CreateCacheSetting(i *CreateCacheSettingInput) (*CacheSetting, error)

CreateCacheSetting creates a new resource.

func (*Client) CreateClientKey added in v7.2.0

func (c *Client) CreateClientKey() (*ClientKey, error)

CreateClientKey creates a new time-limited client key for locally encrypting secrets before uploading them to the Fastly API.

func (*Client) CreateCloudfiles

func (c *Client) CreateCloudfiles(i *CreateCloudfilesInput) (*Cloudfiles, error)

CreateCloudfiles creates a new resource.

func (*Client) CreateCondition

func (c *Client) CreateCondition(i *CreateConditionInput) (*Condition, error)

CreateCondition creates a new resource.

func (*Client) CreateConfigStore added in v7.5.0

func (c *Client) CreateConfigStore(i *CreateConfigStoreInput) (*ConfigStore, error)

CreateConfigStore creates a new Fastly config store.

func (*Client) CreateConfigStoreItem added in v7.5.0

func (c *Client) CreateConfigStoreItem(i *CreateConfigStoreItemInput) (*ConfigStoreItem, error)

CreateConfigStoreItem creates a new Fastly config store item.

func (*Client) CreateCustomTLSCertificate

func (c *Client) CreateCustomTLSCertificate(i *CreateCustomTLSCertificateInput) (*CustomTLSCertificate, error)

CreateCustomTLSCertificate creates a new resource.

func (*Client) CreateDatadog

func (c *Client) CreateDatadog(i *CreateDatadogInput) (*Datadog, error)

CreateDatadog creates a new resource.

func (*Client) CreateDictionary

func (c *Client) CreateDictionary(i *CreateDictionaryInput) (*Dictionary, error)

CreateDictionary creates a new resource.

func (*Client) CreateDictionaryItem

func (c *Client) CreateDictionaryItem(i *CreateDictionaryItemInput) (*DictionaryItem, error)

CreateDictionaryItem creates a new resource.

func (*Client) CreateDictionaryItems

func (c *Client) CreateDictionaryItems(i []CreateDictionaryItemInput) ([]DictionaryItem, error)

CreateDictionaryItems creates a new resource.

func (*Client) CreateDigitalOcean

func (c *Client) CreateDigitalOcean(i *CreateDigitalOceanInput) (*DigitalOcean, error)

CreateDigitalOcean creates a new resource.

func (*Client) CreateDirector

func (c *Client) CreateDirector(i *CreateDirectorInput) (*Director, error)

CreateDirector creates a new resource.

func (*Client) CreateDirectorBackend

func (c *Client) CreateDirectorBackend(i *CreateDirectorBackendInput) (*DirectorBackend, error)

CreateDirectorBackend creates a new resource.

func (*Client) CreateDomain

func (c *Client) CreateDomain(i *CreateDomainInput) (*Domain, error)

CreateDomain creates a new resource.

func (*Client) CreateERL

func (c *Client) CreateERL(i *CreateERLInput) (*ERL, error)

CreateERL creates a new resource.

func (*Client) CreateElasticsearch

func (c *Client) CreateElasticsearch(i *CreateElasticsearchInput) (*Elasticsearch, error)

CreateElasticsearch creates a new resource.

func (*Client) CreateEmptyWAFVersion

func (c *Client) CreateEmptyWAFVersion(i *CreateEmptyWAFVersionInput) (*WAFVersion, error)

CreateEmptyWAFVersion creates a new resource.

There are no rules and all config options are set to their default values.

func (*Client) CreateFTP

func (c *Client) CreateFTP(i *CreateFTPInput) (*FTP, error)

CreateFTP creates a new resource.

func (*Client) CreateGCS

func (c *Client) CreateGCS(i *CreateGCSInput) (*GCS, error)

CreateGCS creates a new resource.

func (*Client) CreateGzip

func (c *Client) CreateGzip(i *CreateGzipInput) (*Gzip, error)

CreateGzip creates a new resource.

func (*Client) CreateHTTPS

func (c *Client) CreateHTTPS(i *CreateHTTPSInput) (*HTTPS, error)

CreateHTTPS creates a new resource.

func (*Client) CreateHeader

func (c *Client) CreateHeader(i *CreateHeaderInput) (*Header, error)

CreateHeader creates a new resource.

func (*Client) CreateHealthCheck

func (c *Client) CreateHealthCheck(i *CreateHealthCheckInput) (*HealthCheck, error)

CreateHealthCheck creates a new resource.

func (*Client) CreateHeroku

func (c *Client) CreateHeroku(i *CreateHerokuInput) (*Heroku, error)

CreateHeroku creates a new resource.

func (*Client) CreateHoneycomb

func (c *Client) CreateHoneycomb(i *CreateHoneycombInput) (*Honeycomb, error)

CreateHoneycomb creates a new resource.

func (*Client) CreateKafka

func (c *Client) CreateKafka(i *CreateKafkaInput) (*Kafka, error)

CreateKafka creates a new resource.

func (*Client) CreateKinesis

func (c *Client) CreateKinesis(i *CreateKinesisInput) (*Kinesis, error)

CreateKinesis creates a new resource.

func (*Client) CreateLogentries

func (c *Client) CreateLogentries(i *CreateLogentriesInput) (*Logentries, error)

CreateLogentries creates a new resource.

func (*Client) CreateLoggly

func (c *Client) CreateLoggly(i *CreateLogglyInput) (*Loggly, error)

CreateLoggly creates a new resource.

func (*Client) CreateLogshuttle

func (c *Client) CreateLogshuttle(i *CreateLogshuttleInput) (*Logshuttle, error)

CreateLogshuttle creates a new resource.

func (*Client) CreateManagedLogging

func (c *Client) CreateManagedLogging(i *CreateManagedLoggingInput) (*ManagedLogging, error)

CreateManagedLogging creates a new resource.

func (*Client) CreateNewRelic

func (c *Client) CreateNewRelic(i *CreateNewRelicInput) (*NewRelic, error)

CreateNewRelic creates a new resource.

func (*Client) CreateObjectStore

func (c *Client) CreateObjectStore(i *CreateObjectStoreInput) (*ObjectStore, error)

CreateObjectStore creates a new resource.

func (*Client) CreateOpenstack

func (c *Client) CreateOpenstack(i *CreateOpenstackInput) (*Openstack, error)

CreateOpenstack creates a new resource.

func (*Client) CreatePapertrail

func (c *Client) CreatePapertrail(i *CreatePapertrailInput) (*Papertrail, error)

CreatePapertrail creates a new resource.

func (*Client) CreatePool

func (c *Client) CreatePool(i *CreatePoolInput) (*Pool, error)

CreatePool creates a new resource.

func (*Client) CreatePrivateKey

func (c *Client) CreatePrivateKey(i *CreatePrivateKeyInput) (*PrivateKey, error)

CreatePrivateKey creates a new resource.

func (*Client) CreatePubsub

func (c *Client) CreatePubsub(i *CreatePubsubInput) (*Pubsub, error)

CreatePubsub creates a new resource.

func (*Client) CreateRequestSetting

func (c *Client) CreateRequestSetting(i *CreateRequestSettingInput) (*RequestSetting, error)

CreateRequestSetting creates a new resource.

func (*Client) CreateResource added in v7.1.0

func (c *Client) CreateResource(i *CreateResourceInput) (*Resource, error)

CreateResource creates a new resource.

func (*Client) CreateResponseObject

func (c *Client) CreateResponseObject(i *CreateResponseObjectInput) (*ResponseObject, error)

CreateResponseObject creates a new resource.

func (*Client) CreateS3

func (c *Client) CreateS3(i *CreateS3Input) (*S3, error)

CreateS3 creates a new resource.

func (*Client) CreateSFTP

func (c *Client) CreateSFTP(i *CreateSFTPInput) (*SFTP, error)

CreateSFTP creates a new resource.

func (*Client) CreateScalyr

func (c *Client) CreateScalyr(i *CreateScalyrInput) (*Scalyr, error)

CreateScalyr creates a new resource.

func (*Client) CreateSecret

func (c *Client) CreateSecret(i *CreateSecretInput) (*Secret, error)

CreateSecret creates a new resource.

func (*Client) CreateSecretStore

func (c *Client) CreateSecretStore(i *CreateSecretStoreInput) (*SecretStore, error)

CreateSecretStore creates a new resource.

func (*Client) CreateServer

func (c *Client) CreateServer(i *CreateServerInput) (*Server, error)

CreateServer creates a new resource. Servers are versionless resources that are associated with a Pool.

func (*Client) CreateService

func (c *Client) CreateService(i *CreateServiceInput) (*Service, error)

CreateService creates a new resource.

func (*Client) CreateServiceAuthorization

func (c *Client) CreateServiceAuthorization(i *CreateServiceAuthorizationInput) (*ServiceAuthorization, error)

CreateServiceAuthorization creates a new resource.

func (*Client) CreateSnippet

func (c *Client) CreateSnippet(i *CreateSnippetInput) (*Snippet, error)

CreateSnippet creates a new resource.

func (*Client) CreateSplunk

func (c *Client) CreateSplunk(i *CreateSplunkInput) (*Splunk, error)

CreateSplunk creates a new resource.

func (*Client) CreateSumologic

func (c *Client) CreateSumologic(i *CreateSumologicInput) (*Sumologic, error)

CreateSumologic creates a new resource.

func (*Client) CreateSyslog

func (c *Client) CreateSyslog(i *CreateSyslogInput) (*Syslog, error)

CreateSyslog creates a new resource.

func (*Client) CreateTLSActivation

func (c *Client) CreateTLSActivation(i *CreateTLSActivationInput) (*TLSActivation, error)

CreateTLSActivation creates a new resource.

func (*Client) CreateTLSSubscription

func (c *Client) CreateTLSSubscription(i *CreateTLSSubscriptionInput) (*TLSSubscription, error)

CreateTLSSubscription creates a new resource.

func (*Client) CreateToken

func (c *Client) CreateToken(i *CreateTokenInput) (*Token, error)

CreateToken creates a new resource.

func (*Client) CreateUser

func (c *Client) CreateUser(i *CreateUserInput) (*User, error)

CreateUser creates a new resource.

func (*Client) CreateVCL

func (c *Client) CreateVCL(i *CreateVCLInput) (*VCL, error)

CreateVCL creates a new resource.

func (*Client) CreateVersion

func (c *Client) CreateVersion(i *CreateVersionInput) (*Version, error)

CreateVersion creates a new resource.

This is preferred in almost all scenarios, since `Create()` creates a _blank_ configuration where `Clone()` builds off of an existing configuration.

func (*Client) CreateWAF

func (c *Client) CreateWAF(i *CreateWAFInput) (*WAF, error)

CreateWAF creates a new resource.

func (*Client) CreateWAFActiveRules

func (c *Client) CreateWAFActiveRules(i *CreateWAFActiveRulesInput) ([]*WAFActiveRule, error)

CreateWAFActiveRules creates a new resource.

func (*Client) CreateWAFRuleExclusion

func (c *Client) CreateWAFRuleExclusion(i *CreateWAFRuleExclusionInput) (*WAFRuleExclusion, error)

CreateWAFRuleExclusion creates a new resource.

func (*Client) DeactivateVersion

func (c *Client) DeactivateVersion(i *DeactivateVersionInput) (*Version, error)

DeactivateVersion deactivates the given version.

func (*Client) Delete

func (c *Client) Delete(p string, ro *RequestOptions) (*http.Response, error)

Delete issues an HTTP DELETE request.

func (*Client) DeleteACL

func (c *Client) DeleteACL(i *DeleteACLInput) error

DeleteACL deletes the specified resource.

func (*Client) DeleteACLEntry

func (c *Client) DeleteACLEntry(i *DeleteACLEntryInput) error

DeleteACLEntry deletes the specified resource.

func (*Client) DeleteBackend

func (c *Client) DeleteBackend(i *DeleteBackendInput) error

DeleteBackend deletes the specified resource.

func (*Client) DeleteBigQuery

func (c *Client) DeleteBigQuery(i *DeleteBigQueryInput) error

DeleteBigQuery deletes the specified resource.

func (*Client) DeleteBlobStorage

func (c *Client) DeleteBlobStorage(i *DeleteBlobStorageInput) error

DeleteBlobStorage deletes the specified resource.

func (*Client) DeleteBulkCertificate

func (c *Client) DeleteBulkCertificate(i *DeleteBulkCertificateInput) error

DeleteBulkCertificate deletes the specified resource.

func (*Client) DeleteCacheSetting

func (c *Client) DeleteCacheSetting(i *DeleteCacheSettingInput) error

DeleteCacheSetting deletes the specified resource.

func (*Client) DeleteCloudfiles

func (c *Client) DeleteCloudfiles(i *DeleteCloudfilesInput) error

DeleteCloudfiles deletes the specified resource.

func (*Client) DeleteCondition

func (c *Client) DeleteCondition(i *DeleteConditionInput) error

DeleteCondition deletes the specified resource.

func (*Client) DeleteConfigStore added in v7.5.0

func (c *Client) DeleteConfigStore(i *DeleteConfigStoreInput) error

DeleteConfigStore deletes the given config store version.

func (*Client) DeleteConfigStoreItem added in v7.5.0

func (c *Client) DeleteConfigStoreItem(i *DeleteConfigStoreItemInput) error

DeleteConfigStoreItem deletes the given config store item.

func (*Client) DeleteCustomTLSCertificate

func (c *Client) DeleteCustomTLSCertificate(i *DeleteCustomTLSCertificateInput) error

DeleteCustomTLSCertificate deletes the specified resource.

func (*Client) DeleteDatadog

func (c *Client) DeleteDatadog(i *DeleteDatadogInput) error

DeleteDatadog deletes the specified resource.

func (*Client) DeleteDictionary

func (c *Client) DeleteDictionary(i *DeleteDictionaryInput) error

DeleteDictionary deletes the specified resource.

func (*Client) DeleteDictionaryItem

func (c *Client) DeleteDictionaryItem(i *DeleteDictionaryItemInput) error

DeleteDictionaryItem deletes the specified resource.

func (*Client) DeleteDigitalOcean

func (c *Client) DeleteDigitalOcean(i *DeleteDigitalOceanInput) error

DeleteDigitalOcean deletes the specified resource.

func (*Client) DeleteDirector

func (c *Client) DeleteDirector(i *DeleteDirectorInput) error

DeleteDirector deletes the specified resource.

func (*Client) DeleteDirectorBackend

func (c *Client) DeleteDirectorBackend(i *DeleteDirectorBackendInput) error

DeleteDirectorBackend deletes the specified resource.

func (*Client) DeleteDomain

func (c *Client) DeleteDomain(i *DeleteDomainInput) error

DeleteDomain deletes the specified resource.

func (*Client) DeleteERL

func (c *Client) DeleteERL(i *DeleteERLInput) error

DeleteERL deletes the specified resource.

func (*Client) DeleteElasticsearch

func (c *Client) DeleteElasticsearch(i *DeleteElasticsearchInput) error

DeleteElasticsearch deletes the specified resource.

func (*Client) DeleteFTP

func (c *Client) DeleteFTP(i *DeleteFTPInput) error

DeleteFTP deletes the specified resource.

func (*Client) DeleteGCS

func (c *Client) DeleteGCS(i *DeleteGCSInput) error

DeleteGCS deletes the specified resource.

func (*Client) DeleteGzip

func (c *Client) DeleteGzip(i *DeleteGzipInput) error

DeleteGzip deletes the specified resource.

func (*Client) DeleteHTTPS

func (c *Client) DeleteHTTPS(i *DeleteHTTPSInput) error

DeleteHTTPS deletes the specified resource.

func (*Client) DeleteHeader

func (c *Client) DeleteHeader(i *DeleteHeaderInput) error

DeleteHeader deletes the specified resource.

func (*Client) DeleteHealthCheck

func (c *Client) DeleteHealthCheck(i *DeleteHealthCheckInput) error

DeleteHealthCheck deletes the specified resource.

func (*Client) DeleteHeroku

func (c *Client) DeleteHeroku(i *DeleteHerokuInput) error

DeleteHeroku deletes the specified resource.

func (*Client) DeleteHoneycomb

func (c *Client) DeleteHoneycomb(i *DeleteHoneycombInput) error

DeleteHoneycomb deletes the specified resource.

func (*Client) DeleteJSONAPI

func (c *Client) DeleteJSONAPI(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

DeleteJSONAPI issues an HTTP DELETE request with the given interface json-encoded.

func (*Client) DeleteJSONAPIBulk

func (c *Client) DeleteJSONAPIBulk(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

DeleteJSONAPIBulk issues an HTTP DELETE request with the given interface json-encoded and bulk requests.

func (*Client) DeleteKafka

func (c *Client) DeleteKafka(i *DeleteKafkaInput) error

DeleteKafka deletes the specified resource.

func (*Client) DeleteKinesis

func (c *Client) DeleteKinesis(i *DeleteKinesisInput) error

DeleteKinesis deletes the specified resource.

func (*Client) DeleteLogentries

func (c *Client) DeleteLogentries(i *DeleteLogentriesInput) error

DeleteLogentries deletes the specified resource.

func (*Client) DeleteLoggly

func (c *Client) DeleteLoggly(i *DeleteLogglyInput) error

DeleteLoggly deletes the specified resource.

func (*Client) DeleteLogshuttle

func (c *Client) DeleteLogshuttle(i *DeleteLogshuttleInput) error

DeleteLogshuttle deletes the specified resource.

func (*Client) DeleteManagedLogging

func (c *Client) DeleteManagedLogging(i *DeleteManagedLoggingInput) error

DeleteManagedLogging deletes the specified resource.

func (*Client) DeleteNewRelic

func (c *Client) DeleteNewRelic(i *DeleteNewRelicInput) error

DeleteNewRelic deletes the specified resource.

func (*Client) DeleteObjectStore

func (c *Client) DeleteObjectStore(i *DeleteObjectStoreInput) error

DeleteObjectStore deletes the specified resource.

func (*Client) DeleteObjectStoreKey

func (c *Client) DeleteObjectStoreKey(i *DeleteObjectStoreKeyInput) error

DeleteObjectStoreKey deletes the specified resource.

func (*Client) DeleteOpenstack

func (c *Client) DeleteOpenstack(i *DeleteOpenstackInput) error

DeleteOpenstack deletes the specified resource.

func (*Client) DeletePapertrail

func (c *Client) DeletePapertrail(i *DeletePapertrailInput) error

DeletePapertrail deletes the specified resource.

func (*Client) DeletePool

func (c *Client) DeletePool(i *DeletePoolInput) error

DeletePool deletes the specified resource.

func (*Client) DeletePrivateKey

func (c *Client) DeletePrivateKey(i *DeletePrivateKeyInput) error

DeletePrivateKey deletes the specified resource.

func (*Client) DeletePubsub

func (c *Client) DeletePubsub(i *DeletePubsubInput) error

DeletePubsub deletes the specified resource.

func (*Client) DeleteRequestSetting

func (c *Client) DeleteRequestSetting(i *DeleteRequestSettingInput) error

DeleteRequestSetting deletes the specified resource.

func (*Client) DeleteResource added in v7.1.0

func (c *Client) DeleteResource(i *DeleteResourceInput) error

DeleteResource deletes the specified resource.

func (*Client) DeleteResponseObject

func (c *Client) DeleteResponseObject(i *DeleteResponseObjectInput) error

DeleteResponseObject deletes the specified resource.

func (*Client) DeleteS3

func (c *Client) DeleteS3(i *DeleteS3Input) error

DeleteS3 deletes the specified resource.

func (*Client) DeleteSFTP

func (c *Client) DeleteSFTP(i *DeleteSFTPInput) error

DeleteSFTP deletes the specified resource.

func (*Client) DeleteScalyr

func (c *Client) DeleteScalyr(i *DeleteScalyrInput) error

DeleteScalyr deletes the specified resource.

func (*Client) DeleteSecret

func (c *Client) DeleteSecret(i *DeleteSecretInput) error

DeleteSecret deletes the specified resource.

func (*Client) DeleteSecretStore

func (c *Client) DeleteSecretStore(i *DeleteSecretStoreInput) error

DeleteSecretStore deletes the specified resource.

func (*Client) DeleteServer

func (c *Client) DeleteServer(i *DeleteServerInput) error

DeleteServer deletes the specified resource.

func (*Client) DeleteService

func (c *Client) DeleteService(i *DeleteServiceInput) error

DeleteService deletes the specified resource.

func (*Client) DeleteServiceAuthorization

func (c *Client) DeleteServiceAuthorization(i *DeleteServiceAuthorizationInput) error

DeleteServiceAuthorization deletes the specified resource.

func (*Client) DeleteSnippet

func (c *Client) DeleteSnippet(i *DeleteSnippetInput) error

DeleteSnippet deletes the specified resource.

func (*Client) DeleteSplunk

func (c *Client) DeleteSplunk(i *DeleteSplunkInput) error

DeleteSplunk deletes the specified resource.

func (*Client) DeleteSumologic

func (c *Client) DeleteSumologic(i *DeleteSumologicInput) error

DeleteSumologic deletes the specified resource.

func (*Client) DeleteSyslog

func (c *Client) DeleteSyslog(i *DeleteSyslogInput) error

DeleteSyslog deletes the specified resource.

func (*Client) DeleteTLSActivation

func (c *Client) DeleteTLSActivation(i *DeleteTLSActivationInput) error

DeleteTLSActivation deletes the specified resource.

func (*Client) DeleteTLSSubscription

func (c *Client) DeleteTLSSubscription(i *DeleteTLSSubscriptionInput) error

DeleteTLSSubscription deletes the specified resource.

func (*Client) DeleteToken

func (c *Client) DeleteToken(i *DeleteTokenInput) error

DeleteToken deletes the specified resource.

func (*Client) DeleteTokenSelf

func (c *Client) DeleteTokenSelf() error

DeleteTokenSelf deletes the specified resource.

func (*Client) DeleteUser

func (c *Client) DeleteUser(i *DeleteUserInput) error

DeleteUser deletes the specified resource.

func (*Client) DeleteVCL

func (c *Client) DeleteVCL(i *DeleteVCLInput) error

DeleteVCL deletes the specified resource.

func (*Client) DeleteWAF

func (c *Client) DeleteWAF(i *DeleteWAFInput) error

DeleteWAF deletes the specified resource.

func (*Client) DeleteWAFActiveRules

func (c *Client) DeleteWAFActiveRules(i *DeleteWAFActiveRulesInput) error

DeleteWAFActiveRules deletes the specified resource.

func (*Client) DeleteWAFRuleExclusion

func (c *Client) DeleteWAFRuleExclusion(i *DeleteWAFRuleExclusionInput) error

DeleteWAFRuleExclusion deletes the specified resource.

func (*Client) DeployWAFVersion

func (c *Client) DeployWAFVersion(i *DeployWAFVersionInput) error

DeployWAFVersion deploys a specific WAF version.

func (*Client) DisableHTTP3 added in v7.2.0

func (c *Client) DisableHTTP3(i *DisableHTTP3Input) error

DisableHTTP3 deletes the specified resource.

func (*Client) DisableProduct added in v7.3.0

func (c *Client) DisableProduct(i *ProductEnablementInput) error

DisableProduct disables the specified product on the service.

func (*Client) EdgeCheck

func (c *Client) EdgeCheck(i *EdgeCheckInput) ([]*EdgeCheck, error)

EdgeCheck queries the edge cache for all of Fastly's servers for the given URL.

func (*Client) EnableHTTP3 added in v7.2.0

func (c *Client) EnableHTTP3(i *EnableHTTP3Input) (*HTTP3, error)

EnableHTTP3 creates a new resource.

func (*Client) EnableProduct added in v7.3.0

func (c *Client) EnableProduct(i *ProductEnablementInput) (*ProductEnablement, error)

EnableProduct enables the specified product on the service.

func (*Client) Get

func (c *Client) Get(p string, ro *RequestOptions) (*http.Response, error)

Get issues an HTTP GET request.

func (*Client) GetACL

func (c *Client) GetACL(i *GetACLInput) (*ACL, error)

GetACL retrieves the specified resource.

func (*Client) GetACLEntry

func (c *Client) GetACLEntry(i *GetACLEntryInput) (*ACLEntry, error)

GetACLEntry retrieves the specified resource.

func (*Client) GetAPIEvent

func (c *Client) GetAPIEvent(i *GetAPIEventInput) (*Event, error)

GetAPIEvent retrieves the specified resource.

func (*Client) GetAPIEvents

GetAPIEvents lists all the events for a particular customer

func (*Client) GetBackend

func (c *Client) GetBackend(i *GetBackendInput) (*Backend, error)

GetBackend retrieves the specified resource.

func (*Client) GetBigQuery

func (c *Client) GetBigQuery(i *GetBigQueryInput) (*BigQuery, error)

GetBigQuery retrieves the specified resource.

func (*Client) GetBilling

func (c *Client) GetBilling(i *GetBillingInput) (*Billing, error)

GetBilling returns the billing information for the current account.

func (*Client) GetBlobStorage

func (c *Client) GetBlobStorage(i *GetBlobStorageInput) (*BlobStorage, error)

GetBlobStorage retrieves the specified resource.

func (*Client) GetBulkCertificate

func (c *Client) GetBulkCertificate(i *GetBulkCertificateInput) (*BulkCertificate, error)

GetBulkCertificate retrieves the specified resource.

func (*Client) GetCacheSetting

func (c *Client) GetCacheSetting(i *GetCacheSettingInput) (*CacheSetting, error)

GetCacheSetting retrieves the specified resource.

func (*Client) GetCloudfiles

func (c *Client) GetCloudfiles(i *GetCloudfilesInput) (*Cloudfiles, error)

GetCloudfiles retrieves the specified resource.

func (*Client) GetCondition

func (c *Client) GetCondition(i *GetConditionInput) (*Condition, error)

GetCondition retrieves the specified resource.

func (*Client) GetConfigStore added in v7.5.0

func (c *Client) GetConfigStore(i *GetConfigStoreInput) (*ConfigStore, error)

GetConfigStore returns the config store for the given input parameters.

func (*Client) GetConfigStoreItem added in v7.5.0

func (c *Client) GetConfigStoreItem(i *GetConfigStoreItemInput) (*ConfigStoreItem, error)

GetConfigStoreItem gets the config store item with the given parameters.

func (*Client) GetConfigStoreMetadata added in v7.5.0

func (c *Client) GetConfigStoreMetadata(i *GetConfigStoreMetadataInput) (*ConfigStoreMetadata, error)

GetConfigStoreMetadata returns the config store's metadata for the given input parameters.

func (*Client) GetCurrentUser

func (c *Client) GetCurrentUser() (*User, error)

GetCurrentUser retrieves the user information for the authenticated user.

func (*Client) GetCustomTLSCertificate

func (c *Client) GetCustomTLSCertificate(i *GetCustomTLSCertificateInput) (*CustomTLSCertificate, error)

GetCustomTLSCertificate retrieves the specified resource.

func (*Client) GetCustomTLSConfiguration

func (c *Client) GetCustomTLSConfiguration(i *GetCustomTLSConfigurationInput) (*CustomTLSConfiguration, error)

GetCustomTLSConfiguration retrieves the specified resource.

func (*Client) GetDatadog

func (c *Client) GetDatadog(i *GetDatadogInput) (*Datadog, error)

GetDatadog retrieves the specified resource.

func (*Client) GetDictionary

func (c *Client) GetDictionary(i *GetDictionaryInput) (*Dictionary, error)

GetDictionary retrieves the specified resource.

func (*Client) GetDictionaryInfo

func (c *Client) GetDictionaryInfo(i *GetDictionaryInfoInput) (*DictionaryInfo, error)

GetDictionaryInfo retrieves the specified resource.

func (*Client) GetDictionaryItem

func (c *Client) GetDictionaryItem(i *GetDictionaryItemInput) (*DictionaryItem, error)

GetDictionaryItem retrieves the specified resource.

func (*Client) GetDiff

func (c *Client) GetDiff(i *GetDiffInput) (*Diff, error)

GetDiff retrieves the specified resource.

func (*Client) GetDigitalOcean

func (c *Client) GetDigitalOcean(i *GetDigitalOceanInput) (*DigitalOcean, error)

GetDigitalOcean retrieves the specified resource.

func (*Client) GetDirector

func (c *Client) GetDirector(i *GetDirectorInput) (*Director, error)

GetDirector retrieves the specified resource.

func (*Client) GetDirectorBackend

func (c *Client) GetDirectorBackend(i *GetDirectorBackendInput) (*DirectorBackend, error)

GetDirectorBackend retrieves the specified resource.

func (*Client) GetDomain

func (c *Client) GetDomain(i *GetDomainInput) (*Domain, error)

GetDomain retrieves the specified resource.

func (*Client) GetDynamicSnippet

func (c *Client) GetDynamicSnippet(i *GetDynamicSnippetInput) (*DynamicSnippet, error)

GetDynamicSnippet retrieves the specified resource.

This will show the current content associated with a Dynamic Snippet.

func (*Client) GetERL

func (c *Client) GetERL(i *GetERLInput) (*ERL, error)

GetERL retrieves the specified resource.

func (*Client) GetElasticsearch

func (c *Client) GetElasticsearch(i *GetElasticsearchInput) (*Elasticsearch, error)

GetElasticsearch retrieves the specified resource.

func (*Client) GetFTP

func (c *Client) GetFTP(i *GetFTPInput) (*FTP, error)

GetFTP retrieves the specified resource.

func (*Client) GetGCS

func (c *Client) GetGCS(i *GetGCSInput) (*GCS, error)

GetGCS retrieves the specified resource.

func (*Client) GetGeneratedVCL

func (c *Client) GetGeneratedVCL(i *GetGeneratedVCLInput) (*VCL, error)

GetGeneratedVCL retrieves the specified resource.

func (*Client) GetGzip

func (c *Client) GetGzip(i *GetGzipInput) (*Gzip, error)

GetGzip retrieves the specified resource.

func (*Client) GetHTTP3 added in v7.2.0

func (c *Client) GetHTTP3(i *GetHTTP3Input) (*HTTP3, error)

GetHTTP3 retrieves the specified resource.

func (*Client) GetHTTPS

func (c *Client) GetHTTPS(i *GetHTTPSInput) (*HTTPS, error)

GetHTTPS retrieves the specified resource.

func (*Client) GetHeader

func (c *Client) GetHeader(i *GetHeaderInput) (*Header, error)

GetHeader retrieves the specified resource.

func (*Client) GetHealthCheck

func (c *Client) GetHealthCheck(i *GetHealthCheckInput) (*HealthCheck, error)

GetHealthCheck retrieves the specified resource.

func (*Client) GetHeroku

func (c *Client) GetHeroku(i *GetHerokuInput) (*Heroku, error)

GetHeroku retrieves the specified resource.

func (*Client) GetHoneycomb

func (c *Client) GetHoneycomb(i *GetHoneycombInput) (*Honeycomb, error)

GetHoneycomb retrieves the specified resource.

func (*Client) GetKafka

func (c *Client) GetKafka(i *GetKafkaInput) (*Kafka, error)

GetKafka retrieves the specified resource.

func (*Client) GetKinesis

func (c *Client) GetKinesis(i *GetKinesisInput) (*Kinesis, error)

GetKinesis retrieves the specified resource.

func (*Client) GetLogentries

func (c *Client) GetLogentries(i *GetLogentriesInput) (*Logentries, error)

GetLogentries retrieves the specified resource.

func (*Client) GetLoggly

func (c *Client) GetLoggly(i *GetLogglyInput) (*Loggly, error)

GetLoggly retrieves the specified resource.

func (*Client) GetLogshuttle

func (c *Client) GetLogshuttle(i *GetLogshuttleInput) (*Logshuttle, error)

GetLogshuttle retrieves the specified resource.

func (*Client) GetNewRelic

func (c *Client) GetNewRelic(i *GetNewRelicInput) (*NewRelic, error)

GetNewRelic retrieves the specified resource.

func (*Client) GetObjectStore

func (c *Client) GetObjectStore(i *GetObjectStoreInput) (*ObjectStore, error)

GetObjectStore retrieves the specified resource.

func (*Client) GetObjectStoreKey

func (c *Client) GetObjectStoreKey(i *GetObjectStoreKeyInput) (string, error)

GetObjectStoreKey retrieves the specified resource.

func (*Client) GetOpenstack

func (c *Client) GetOpenstack(i *GetOpenstackInput) (*Openstack, error)

GetOpenstack retrieves the specified resource.

func (*Client) GetOriginMetricsForService

func (c *Client) GetOriginMetricsForService(i *GetOriginMetricsInput) (*OriginInspector, error)

GetOriginMetricsForService retrieves the specified resource.

func (*Client) GetOriginMetricsForServiceJSON

func (c *Client) GetOriginMetricsForServiceJSON(i *GetOriginMetricsInput, dst interface{}) error

GetOriginMetricsForServiceJSON retrieves the specified resource.

func (*Client) GetPackage

func (c *Client) GetPackage(i *GetPackageInput) (*Package, error)

GetPackage retrieves the specified resource.

func (*Client) GetPapertrail

func (c *Client) GetPapertrail(i *GetPapertrailInput) (*Papertrail, error)

GetPapertrail retrieves the specified resource.

func (*Client) GetPool

func (c *Client) GetPool(i *GetPoolInput) (*Pool, error)

GetPool retrieves the specified resource.

func (*Client) GetPrivateKey

func (c *Client) GetPrivateKey(i *GetPrivateKeyInput) (*PrivateKey, error)

GetPrivateKey retrieves the specified resource.

func (*Client) GetProduct added in v7.3.0

func (c *Client) GetProduct(i *ProductEnablementInput) (*ProductEnablement, error)

GetProduct retrieves the details of the product enabled on the service.

func (*Client) GetPubsub

func (c *Client) GetPubsub(i *GetPubsubInput) (*Pubsub, error)

GetPubsub retrieves the specified resource.

func (*Client) GetRegions

func (c *Client) GetRegions() (*RegionsResponse, error)

GetRegions returns a list of Fastly regions

func (*Client) GetRequestSetting

func (c *Client) GetRequestSetting(i *GetRequestSettingInput) (*RequestSetting, error)

GetRequestSetting retrieves the specified resource.

func (*Client) GetResource added in v7.1.0

func (c *Client) GetResource(i *GetResourceInput) (*Resource, error)

GetResource retrieves the specified resource.

func (*Client) GetResponseObject

func (c *Client) GetResponseObject(i *GetResponseObjectInput) (*ResponseObject, error)

GetResponseObject retrieves the specified resource.

func (*Client) GetS3

func (c *Client) GetS3(i *GetS3Input) (*S3, error)

GetS3 retrieves the specified resource.

func (*Client) GetSFTP

func (c *Client) GetSFTP(i *GetSFTPInput) (*SFTP, error)

GetSFTP retrieves the specified resource.

func (*Client) GetScalyr

func (c *Client) GetScalyr(i *GetScalyrInput) (*Scalyr, error)

GetScalyr retrieves the specified resource.

func (*Client) GetSecret

func (c *Client) GetSecret(i *GetSecretInput) (*Secret, error)

GetSecret retrieves the specified resource.

func (*Client) GetSecretStore

func (c *Client) GetSecretStore(i *GetSecretStoreInput) (*SecretStore, error)

GetSecretStore retrieves the specified resource.

func (*Client) GetServer

func (c *Client) GetServer(i *GetServerInput) (*Server, error)

GetServer retrieves the specified resource.

func (*Client) GetService

func (c *Client) GetService(i *GetServiceInput) (*Service, error)

GetService retrieves the specified resource.

If no service exists for the given id, the API returns a 400 response not 404.

func (*Client) GetServiceAuthorization

func (c *Client) GetServiceAuthorization(i *GetServiceAuthorizationInput) (*ServiceAuthorization, error)

GetServiceAuthorization retrieves the specified resource.

func (*Client) GetServiceDetails

func (c *Client) GetServiceDetails(i *GetServiceInput) (*ServiceDetail, error)

GetServiceDetails retrieves the specified resource.

If no service exists for the given id, the API returns a 400 response not 404.

func (*Client) GetSettings

func (c *Client) GetSettings(i *GetSettingsInput) (*Settings, error)

GetSettings retrieves the specified resource.

func (*Client) GetSigningKey added in v7.2.0

func (c *Client) GetSigningKey() (ed25519.PublicKey, error)

GetSigningKey returns the public signing key for client keys. In general the signing key changes very rarely, and it's recommended to ship the signing key out-of-band from the API.

func (*Client) GetSnippet

func (c *Client) GetSnippet(i *GetSnippetInput) (*Snippet, error)

GetSnippet retrieves the specified resource.

Dynamic Snippets will not show content due to them being versionless, use GetDynamicSnippet to see content.

func (*Client) GetSplunk

func (c *Client) GetSplunk(i *GetSplunkInput) (*Splunk, error)

GetSplunk retrieves the specified resource.

func (*Client) GetStats

func (c *Client) GetStats(i *GetStatsInput) (*StatsResponse, error)

GetStats retrieves the specified resource.

func (*Client) GetStatsField

func (c *Client) GetStatsField(i *GetStatsInput) (*StatsFieldResponse, error)

GetStatsField retrieves the specified resource.

func (*Client) GetStatsJSON

func (c *Client) GetStatsJSON(i *GetStatsInput, dst interface{}) error

GetStatsJSON fetches stats and decodes the response directly to the JSON struct dst.

func (*Client) GetSumologic

func (c *Client) GetSumologic(i *GetSumologicInput) (*Sumologic, error)

GetSumologic retrieves the specified resource.

func (*Client) GetSyslog

func (c *Client) GetSyslog(i *GetSyslogInput) (*Syslog, error)

GetSyslog retrieves the specified resource.

func (*Client) GetTLSActivation

func (c *Client) GetTLSActivation(i *GetTLSActivationInput) (*TLSActivation, error)

GetTLSActivation retrieves the specified resource.

func (*Client) GetTLSSubscription

func (c *Client) GetTLSSubscription(i *GetTLSSubscriptionInput) (*TLSSubscription, error)

GetTLSSubscription retrieves the specified resource.

func (*Client) GetTokenSelf

func (c *Client) GetTokenSelf() (*Token, error)

GetTokenSelf retrieves the token information for the the access_token used used to authenticate the request.

Returns a 401 if the token has expired and a 403 for invalid access token.

func (*Client) GetUsage

func (c *Client) GetUsage(i *GetUsageInput) (*UsageResponse, error)

GetUsage returns usage information aggregated across all Fastly services and grouped by region.

func (*Client) GetUsageByService

func (c *Client) GetUsageByService(i *GetUsageInput) (*UsageByServiceResponse, error)

GetUsageByService returns usage information aggregated by service and grouped by service and region.

func (*Client) GetUser

func (c *Client) GetUser(i *GetUserInput) (*User, error)

GetUser retrieves the specified resource.

If no user exists for the given id, the API returns a 404 response.

func (*Client) GetVCL

func (c *Client) GetVCL(i *GetVCLInput) (*VCL, error)

GetVCL retrieves the specified resource.

func (*Client) GetVersion

func (c *Client) GetVersion(i *GetVersionInput) (*Version, error)

GetVersion retrieves the specified resource.

func (*Client) GetWAF

func (c *Client) GetWAF(i *GetWAFInput) (*WAF, error)

GetWAF retrieves the specified resource.

func (*Client) GetWAFVersion

func (c *Client) GetWAFVersion(i *GetWAFVersionInput) (*WAFVersion, error)

GetWAFVersion retrieves the specified resource.

func (*Client) Head

func (c *Client) Head(p string, ro *RequestOptions) (*http.Response, error)

Head issues an HTTP HEAD request.

func (*Client) IPs

func (c *Client) IPs() (IPAddrs, error)

IPs returns the list of public IPv4 addresses for Fastly's network.

func (*Client) IPsV6

func (c *Client) IPsV6() (IPAddrs, error)

IPsV6 returns the list of public IPv6 addresses for Fastly's network.

func (*Client) InsertObjectStoreKey

func (c *Client) InsertObjectStoreKey(i *InsertObjectStoreKeyInput) error

InsertObjectStoreKey inserts a key/value pair into an object store.

func (*Client) LatestVersion

func (c *Client) LatestVersion(i *LatestVersionInput) (*Version, error)

LatestVersion retrieves the specified resource.

If there are no versions, this function will return nil (but not an error).

func (*Client) ListACLEntries

func (c *Client) ListACLEntries(i *ListACLEntriesInput) ([]*ACLEntry, error)

ListACLEntries retrieves all resources.

func (*Client) ListACLs

func (c *Client) ListACLs(i *ListACLsInput) ([]*ACL, error)

ListACLs retrieves all resources.

func (*Client) ListAllWAFActiveRules

func (c *Client) ListAllWAFActiveRules(i *ListAllWAFActiveRulesInput) (*WAFActiveRuleResponse, error)

ListAllWAFActiveRules retrieves all resources.

func (*Client) ListAllWAFRuleExclusions

func (c *Client) ListAllWAFRuleExclusions(i *ListAllWAFRuleExclusionsInput) (*WAFRuleExclusionResponse, error)

ListAllWAFRuleExclusions retrieves all resources.

func (*Client) ListAllWAFRules

func (c *Client) ListAllWAFRules(i *ListAllWAFRulesInput) (*WAFRuleResponse, error)

ListAllWAFRules retrieves all resources.

func (*Client) ListAllWAFVersions

func (c *Client) ListAllWAFVersions(i *ListAllWAFVersionsInput) (*WAFVersionResponse, error)

ListAllWAFVersions retrieves all resources.

func (*Client) ListBackends

func (c *Client) ListBackends(i *ListBackendsInput) ([]*Backend, error)

ListBackends retrieves all resources.

func (*Client) ListBigQueries

func (c *Client) ListBigQueries(i *ListBigQueriesInput) ([]*BigQuery, error)

ListBigQueries retrieves all resources.

func (*Client) ListBlobStorages

func (c *Client) ListBlobStorages(i *ListBlobStoragesInput) ([]*BlobStorage, error)

ListBlobStorages retrieves all resources.

func (*Client) ListBulkCertificates

func (c *Client) ListBulkCertificates(i *ListBulkCertificatesInput) ([]*BulkCertificate, error)

ListBulkCertificates retrieves all resources.

func (*Client) ListCacheSettings

func (c *Client) ListCacheSettings(i *ListCacheSettingsInput) ([]*CacheSetting, error)

ListCacheSettings retrieves all resources.

func (*Client) ListCloudfiles

func (c *Client) ListCloudfiles(i *ListCloudfilesInput) ([]*Cloudfiles, error)

ListCloudfiles retrieves all resources.

func (*Client) ListConditions

func (c *Client) ListConditions(i *ListConditionsInput) ([]*Condition, error)

ListConditions retrieves all resources.

func (*Client) ListConfigStoreItems added in v7.5.0

func (c *Client) ListConfigStoreItems(i *ListConfigStoreItemsInput) ([]*ConfigStoreItem, error)

ListConfigStoreItems returns a list of config store items for the given store.

func (*Client) ListConfigStoreServices added in v7.5.0

func (c *Client) ListConfigStoreServices(i *ListConfigStoreServicesInput) ([]*Service, error)

ListConfigStoreServices returns the list of services that are associated with a given config store.

func (*Client) ListConfigStores added in v7.5.0

func (c *Client) ListConfigStores() ([]*ConfigStore, error)

ListConfigStores returns a list of config stores sorted by name.

func (*Client) ListCustomTLSCertificates

func (c *Client) ListCustomTLSCertificates(i *ListCustomTLSCertificatesInput) ([]*CustomTLSCertificate, error)

ListCustomTLSCertificates retrieves all resources.

func (*Client) ListCustomTLSConfigurations

func (c *Client) ListCustomTLSConfigurations(i *ListCustomTLSConfigurationsInput) ([]*CustomTLSConfiguration, error)

ListCustomTLSConfigurations retrieves all resources.

func (*Client) ListCustomerTokens

func (c *Client) ListCustomerTokens(i *ListCustomerTokensInput) ([]*Token, error)

ListCustomerTokens retrieves all resources.

func (*Client) ListCustomerUsers

func (c *Client) ListCustomerUsers(i *ListCustomerUsersInput) ([]*User, error)

ListCustomerUsers retrieves all resources.

func (*Client) ListDatadog

func (c *Client) ListDatadog(i *ListDatadogInput) ([]*Datadog, error)

ListDatadog retrieves all resources.

func (*Client) ListDictionaries

func (c *Client) ListDictionaries(i *ListDictionariesInput) ([]*Dictionary, error)

ListDictionaries retrieves all resources.

func (*Client) ListDictionaryItems

func (c *Client) ListDictionaryItems(i *ListDictionaryItemsInput) ([]*DictionaryItem, error)

ListDictionaryItems retrieves all resources.

func (*Client) ListDigitalOceans

func (c *Client) ListDigitalOceans(i *ListDigitalOceansInput) ([]*DigitalOcean, error)

ListDigitalOceans retrieves all resources.

func (*Client) ListDirectors

func (c *Client) ListDirectors(i *ListDirectorsInput) ([]*Director, error)

ListDirectors retrieves all resources.

func (*Client) ListDomains

func (c *Client) ListDomains(i *ListDomainsInput) ([]*Domain, error)

ListDomains retrieves all resources.

func (*Client) ListERLs

func (c *Client) ListERLs(i *ListERLsInput) ([]*ERL, error)

ListERLs retrieves all resources.

func (*Client) ListElasticsearch

func (c *Client) ListElasticsearch(i *ListElasticsearchInput) ([]*Elasticsearch, error)

ListElasticsearch retrieves all resources.

func (*Client) ListFTPs

func (c *Client) ListFTPs(i *ListFTPsInput) ([]*FTP, error)

ListFTPs retrieves all resources.

func (*Client) ListGCSs

func (c *Client) ListGCSs(i *ListGCSsInput) ([]*GCS, error)

ListGCSs retrieves all resources.

func (*Client) ListGzips

func (c *Client) ListGzips(i *ListGzipsInput) ([]*Gzip, error)

ListGzips retrieves all resources.

func (*Client) ListHTTPS

func (c *Client) ListHTTPS(i *ListHTTPSInput) ([]*HTTPS, error)

ListHTTPS retrieves all resources.

func (*Client) ListHeaders

func (c *Client) ListHeaders(i *ListHeadersInput) ([]*Header, error)

ListHeaders retrieves all resources.

func (*Client) ListHealthChecks

func (c *Client) ListHealthChecks(i *ListHealthChecksInput) ([]*HealthCheck, error)

ListHealthChecks retrieves all resources.

func (*Client) ListHerokus

func (c *Client) ListHerokus(i *ListHerokusInput) ([]*Heroku, error)

ListHerokus retrieves all resources.

func (*Client) ListHoneycombs

func (c *Client) ListHoneycombs(i *ListHoneycombsInput) ([]*Honeycomb, error)

ListHoneycombs retrieves all resources.

func (*Client) ListKafkas

func (c *Client) ListKafkas(i *ListKafkasInput) ([]*Kafka, error)

ListKafkas retrieves all resources.

func (*Client) ListKinesis

func (c *Client) ListKinesis(i *ListKinesisInput) ([]*Kinesis, error)

ListKinesis retrieves all resources.

func (*Client) ListLogentries

func (c *Client) ListLogentries(i *ListLogentriesInput) ([]*Logentries, error)

ListLogentries retrieves all resources.

func (*Client) ListLoggly

func (c *Client) ListLoggly(i *ListLogglyInput) ([]*Loggly, error)

ListLoggly retrieves all resources.

func (*Client) ListLogshuttles

func (c *Client) ListLogshuttles(i *ListLogshuttlesInput) ([]*Logshuttle, error)

ListLogshuttles retrieves all resources.

func (*Client) ListNewRelic

func (c *Client) ListNewRelic(i *ListNewRelicInput) ([]*NewRelic, error)

ListNewRelic retrieves all resources.

func (*Client) ListObjectStoreKeys

func (c *Client) ListObjectStoreKeys(i *ListObjectStoreKeysInput) (*ListObjectStoreKeysResponse, error)

ListObjectStoreKeys retrieves all resources.

func (*Client) ListObjectStores

func (c *Client) ListObjectStores(i *ListObjectStoresInput) (*ListObjectStoresResponse, error)

ListObjectStores retrieves all resources.

func (*Client) ListOpenstack

func (c *Client) ListOpenstack(i *ListOpenstackInput) ([]*Openstack, error)

ListOpenstack retrieves all resources.

func (*Client) ListPapertrails

func (c *Client) ListPapertrails(i *ListPapertrailsInput) ([]*Papertrail, error)

ListPapertrails retrieves all resources.

func (*Client) ListPools

func (c *Client) ListPools(i *ListPoolsInput) ([]*Pool, error)

ListPools retrieves all resources.

func (*Client) ListPrivateKeys

func (c *Client) ListPrivateKeys(i *ListPrivateKeysInput) ([]*PrivateKey, error)

ListPrivateKeys retrieves all resources.

func (*Client) ListPubsubs

func (c *Client) ListPubsubs(i *ListPubsubsInput) ([]*Pubsub, error)

ListPubsubs retrieves all resources.

func (*Client) ListRequestSettings

func (c *Client) ListRequestSettings(i *ListRequestSettingsInput) ([]*RequestSetting, error)

ListRequestSettings retrieves all resources.

func (*Client) ListResources added in v7.1.0

func (c *Client) ListResources(i *ListResourcesInput) ([]*Resource, error)

ListResources retrieves all resources.

func (*Client) ListResponseObjects

func (c *Client) ListResponseObjects(i *ListResponseObjectsInput) ([]*ResponseObject, error)

ListResponseObjects retrieves all resources.

func (*Client) ListS3s

func (c *Client) ListS3s(i *ListS3sInput) ([]*S3, error)

ListS3s retrieves all resources.

func (*Client) ListSFTPs

func (c *Client) ListSFTPs(i *ListSFTPsInput) ([]*SFTP, error)

ListSFTPs retrieves all resources.

func (*Client) ListScalyrs

func (c *Client) ListScalyrs(i *ListScalyrsInput) ([]*Scalyr, error)

ListScalyrs retrieves all resources.

func (*Client) ListSecretStores

func (c *Client) ListSecretStores(i *ListSecretStoresInput) (*SecretStores, error)

ListSecretStores retrieves all resources.

The returned next cursor, if non-blank, can be used as input to a subsequent request for the next page of results.

func (*Client) ListSecrets

func (c *Client) ListSecrets(i *ListSecretsInput) (*Secrets, error)

ListSecrets retrieves all resources.

The returned next cursor, if non-blank, can be used as input to a subsequent request for the next page of results.

func (*Client) ListServers

func (c *Client) ListServers(i *ListServersInput) ([]*Server, error)

ListServers retrieves all resources.

func (*Client) ListServiceAuthorizations

func (c *Client) ListServiceAuthorizations(i *ListServiceAuthorizationsInput) (*ServiceAuthorizations, error)

ListServiceAuthorizations retrieves all resources.

func (*Client) ListServiceDomains

func (c *Client) ListServiceDomains(i *ListServiceDomainInput) (ServiceDomainsList, error)

ListServiceDomains retrieves all resources.

func (*Client) ListServices

func (c *Client) ListServices(i *ListServicesInput) ([]*Service, error)

ListServices retrieves all resources.

func (*Client) ListSnippets

func (c *Client) ListSnippets(i *ListSnippetsInput) ([]*Snippet, error)

ListSnippets retrieves all resources.

Content is not displayed for Dynmanic Snippets due to them being versionless, use the GetDynamicSnippet function to show current content.

func (*Client) ListSplunks

func (c *Client) ListSplunks(i *ListSplunksInput) ([]*Splunk, error)

ListSplunks retrieves all resources.

func (*Client) ListSumologics

func (c *Client) ListSumologics(i *ListSumologicsInput) ([]*Sumologic, error)

ListSumologics retrieves all resources.

func (*Client) ListSyslogs

func (c *Client) ListSyslogs(i *ListSyslogsInput) ([]*Syslog, error)

ListSyslogs retrieves all resources.

func (*Client) ListTLSActivations

func (c *Client) ListTLSActivations(i *ListTLSActivationsInput) ([]*TLSActivation, error)

ListTLSActivations retrieves all resources.

func (*Client) ListTLSDomains

func (c *Client) ListTLSDomains(i *ListTLSDomainsInput) ([]*TLSDomain, error)

ListTLSDomains retrieves all resources.

func (*Client) ListTLSSubscriptions

func (c *Client) ListTLSSubscriptions(i *ListTLSSubscriptionsInput) ([]*TLSSubscription, error)

ListTLSSubscriptions retrieves all resources.

func (*Client) ListTokens

func (c *Client) ListTokens() ([]*Token, error)

ListTokens retrieves all resources.

func (*Client) ListVCLs

func (c *Client) ListVCLs(i *ListVCLsInput) ([]*VCL, error)

ListVCLs retrieves all resources.

func (*Client) ListVersions

func (c *Client) ListVersions(i *ListVersionsInput) ([]*Version, error)

ListVersions retrieves all resources.

func (*Client) ListWAFActiveRules

func (c *Client) ListWAFActiveRules(i *ListWAFActiveRulesInput) (*WAFActiveRuleResponse, error)

ListWAFActiveRules retrieves all resources.

func (*Client) ListWAFRuleExclusions

func (c *Client) ListWAFRuleExclusions(i *ListWAFRuleExclusionsInput) (*WAFRuleExclusionResponse, error)

ListWAFRuleExclusions retrieves all resources.

func (*Client) ListWAFRules

func (c *Client) ListWAFRules(i *ListWAFRulesInput) (*WAFRuleResponse, error)

ListWAFRules retrieves all resources.

func (*Client) ListWAFVersions

func (c *Client) ListWAFVersions(i *ListWAFVersionsInput) (*WAFVersionResponse, error)

ListWAFVersions retrieves all resources.

func (*Client) ListWAFs

func (c *Client) ListWAFs(i *ListWAFsInput) (*WAFResponse, error)

ListWAFs retrieves all resources.

func (*Client) LockVersion

func (c *Client) LockVersion(i *LockVersionInput) (*Version, error)

LockVersion locks the specified version.

func (*Client) LockWAFVersion

func (c *Client) LockWAFVersion(i *LockWAFVersionInput) (*WAFVersion, error)

LockWAFVersion locks a specific WAF version.

func (*Client) NewListACLEntriesPaginator

func (c *Client) NewListACLEntriesPaginator(i *ListACLEntriesInput) PaginatorACLEntries

NewListACLEntriesPaginator returns a new paginator

Example
package main

import (
	"fmt"
	"log"

	"github.com/fastly/go-fastly/v7/fastly"
)

func main() {
	client, err := fastly.NewClient("your_api_token")
	if err != nil {
		log.Fatal(err)
	}

	paginator := client.NewListACLEntriesPaginator(
		&fastly.ListACLEntriesInput{
			ServiceID: "your_service_id",
			ACLID:     "your_acl_id",
			PerPage:   50,
		},
	)

	var es []*fastly.ACLEntry
	for paginator.HasNext() {
		data, err := paginator.GetNext()
		if err != nil {
			break
		}
		es = append(es, data...)
	}

	fmt.Printf("retrieved %d ACL entries\n", len(es))
}
Output:

func (*Client) NewListDictionaryItemsPaginator

func (c *Client) NewListDictionaryItemsPaginator(i *ListDictionaryItemsInput) PaginatorDictionaryItems

NewListDictionaryItemsPaginator returns a new paginator

Example
package main

import (
	"fmt"
	"log"

	"github.com/fastly/go-fastly/v7/fastly"
)

func main() {
	client, err := fastly.NewClient("your_api_token")
	if err != nil {
		log.Fatal(err)
	}

	paginator := client.NewListDictionaryItemsPaginator(
		&fastly.ListDictionaryItemsInput{
			ServiceID:    "your_service_id",
			DictionaryID: "your_dictionary_id",
			PerPage:      50,
		},
	)

	var ds []*fastly.DictionaryItem
	for paginator.HasNext() {
		data, err := paginator.GetNext()
		if err != nil {
			break
		}
		ds = append(ds, data...)
	}

	fmt.Printf("retrieved %d Dictionary items\n", len(ds))
}
Output:

func (*Client) NewListObjectStoreKeysPaginator

func (c *Client) NewListObjectStoreKeysPaginator(i *ListObjectStoreKeysInput) *ListObjectStoreKeysPaginator

NewListObjectStoreKeysPaginator returns a new paginator for the provided LitObjectStoreKeysInput.

func (*Client) NewListObjectStoresPaginator

func (c *Client) NewListObjectStoresPaginator(i *ListObjectStoresInput) *ListObjectStoresPaginator

NewListObjectStoresPaginator creates a new paginator for the given ListObjectStoresInput.

func (*Client) NewListServicesPaginator

func (c *Client) NewListServicesPaginator(i *ListServicesInput) PaginatorServices

NewListServicesPaginator returns a new paginator

Example
package main

import (
	"fmt"
	"log"

	"github.com/fastly/go-fastly/v7/fastly"
)

func main() {
	client, err := fastly.NewClient("your_api_token")
	if err != nil {
		log.Fatal(err)
	}

	paginator := client.NewListServicesPaginator(
		&fastly.ListServicesInput{
			PerPage: 50,
		},
	)

	var ss []*fastly.Service
	for paginator.HasNext() {
		data, err := paginator.GetNext()
		if err != nil {
			break
		}
		ss = append(ss, data...)
	}

	fmt.Printf("retrieved %d services\n", len(ss))
}
Output:

func (*Client) Patch

func (c *Client) Patch(p string, ro *RequestOptions) (*http.Response, error)

Patch issues an HTTP PATCH request.

func (*Client) PatchForm

func (c *Client) PatchForm(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PatchForm issues an HTTP PUT request with the given interface form-encoded.

func (*Client) PatchJSON

func (c *Client) PatchJSON(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PatchJSON issues an HTTP PUT request with the given interface json-encoded.

func (*Client) PatchJSONAPI

func (c *Client) PatchJSONAPI(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PatchJSONAPI issues an HTTP PUT request with the given interface json-encoded.

func (*Client) Post

func (c *Client) Post(p string, ro *RequestOptions) (*http.Response, error)

Post issues an HTTP POST request.

func (*Client) PostForm

func (c *Client) PostForm(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PostForm issues an HTTP POST request with the given interface form-encoded.

func (*Client) PostJSON

func (c *Client) PostJSON(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PostJSON issues an HTTP POST request with the given interface json-encoded.

func (*Client) PostJSONAPI

func (c *Client) PostJSONAPI(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PostJSONAPI issues an HTTP POST request with the given interface json-encoded.

func (*Client) PostJSONAPIBulk

func (c *Client) PostJSONAPIBulk(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PostJSONAPIBulk issues an HTTP POST request with the given interface json-encoded and bulk requests.

func (*Client) Purge

func (c *Client) Purge(i *PurgeInput) (*Purge, error)

Purge instantly purges an individual URL.

func (*Client) PurgeAll

func (c *Client) PurgeAll(i *PurgeAllInput) (*Purge, error)

PurgeAll instantly purges everything from a service.

func (*Client) PurgeKey

func (c *Client) PurgeKey(i *PurgeKeyInput) (*Purge, error)

PurgeKey instantly purges a particular service of items tagged with a key.

func (*Client) PurgeKeys

func (c *Client) PurgeKeys(i *PurgeKeysInput) (map[string]string, error)

PurgeKeys instantly purges a particular service of items tagged with a key.

func (*Client) Put

func (c *Client) Put(p string, ro *RequestOptions) (*http.Response, error)

Put issues an HTTP PUT request.

func (*Client) PutForm

func (c *Client) PutForm(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PutForm issues an HTTP PUT request with the given interface form-encoded.

func (*Client) PutFormFile

func (c *Client) PutFormFile(urlPath string, filePath string, fieldName string, ro *RequestOptions) (*http.Response, error)

PutFormFile issues an HTTP PUT request (multipart/form-encoded) to put a file to an endpoint.

func (*Client) PutFormFileFromReader added in v7.1.0

func (c *Client) PutFormFileFromReader(urlPath string, fileName string, fileBytes io.Reader, fieldName string, ro *RequestOptions) (*http.Response, error)

PutFormFileFromReader issues an HTTP PUT request (multipart/form-encoded) to put a file to an endpoint.

func (*Client) PutJSON

func (c *Client) PutJSON(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PutJSON issues an HTTP PUT request with the given interface json-encoded.

func (*Client) PutJSONAPI

func (c *Client) PutJSONAPI(p string, i interface{}, ro *RequestOptions) (*http.Response, error)

PutJSONAPI issues an HTTP PUT request with the given interface json-encoded.

func (*Client) RateLimitRemaining

func (c *Client) RateLimitRemaining() int

RateLimitRemaining returns the number of non-read requests left before rate limiting causes a 429 Too Many Requests error.

Example
package main

import (
	"fmt"
	"log"

	"github.com/fastly/go-fastly/v7/fastly"
)

func main() {
	token := "your_api_token"
	sid := "your_service_id"
	dictName := "your_dict_name"

	c, err := fastly.NewClient(token)
	if err != nil {
		log.Fatal(err)
	}

	v, err := c.LatestVersion(&fastly.LatestVersionInput{ServiceID: sid})
	if err != nil {
		log.Fatal(err)
	}

	dict, err := c.GetDictionary(&fastly.GetDictionaryInput{
		ServiceID:      sid,
		ServiceVersion: v.Number,
		Name:           dictName,
	})
	if err != nil {
		log.Fatal(err)
	}

	_, err = c.CreateDictionaryItem(&fastly.CreateDictionaryItemInput{
		ServiceID:    sid,
		DictionaryID: dict.ID,
		ItemKey:      "test-dictionary-item",
		ItemValue:    "value",
	})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("Writes remaining before '429 Too Many Requests': %d\n", c.RateLimitRemaining())
	fmt.Printf("Next rate limit reset expected at %v\n", c.RateLimitReset())

	for i := 1; i < 10; i++ {
		_, err := c.UpdateDictionaryItem(&fastly.UpdateDictionaryItemInput{
			ServiceID:    sid,
			DictionaryID: dict.ID,
			ItemKey:      "test-dictionary-item",
			ItemValue:    fmt.Sprintf("value%d", i),
		})
		if err != nil {
			log.Fatal(err)
		}
		fmt.Printf("Writes remaining before '429 Too Many Requests': %d\n", c.RateLimitRemaining())
		fmt.Printf("Next rate limit reset expected at %v\n", c.RateLimitReset())
	}
}
Output:

func (*Client) RateLimitReset

func (c *Client) RateLimitReset() time.Time

RateLimitReset returns the next time the rate limiter's counter will be reset.

func (*Client) RawRequest

func (c *Client) RawRequest(verb, p string, ro *RequestOptions) (*http.Request, error)

RawRequest accepts a verb, URL, and RequestOptions struct and returns the constructed http.Request and any errors that occurred

func (*Client) Request

func (c *Client) Request(verb, p string, ro *RequestOptions) (*http.Response, error)

Request makes an HTTP request against the HTTPClient using the given verb, Path, and request options.

func (*Client) RequestForm

func (c *Client) RequestForm(verb, p string, i interface{}, ro *RequestOptions) (*http.Response, error)

RequestForm makes an HTTP request with the given interface being encoded as form data.

func (*Client) RequestFormFile

func (c *Client) RequestFormFile(verb, urlPath string, filePath string, fieldName string, ro *RequestOptions) (*http.Response, error)

RequestFormFile makes an HTTP request to upload a file to an endpoint.

func (*Client) RequestFormFileFromReader added in v7.1.0

func (c *Client) RequestFormFileFromReader(verb, urlPath string, fileName string, fileBytes io.Reader, fieldName string, ro *RequestOptions) (*http.Response, error)

RequestFormFileFromReader makes an HTTP request to upload a raw reader to an endpoint.

func (*Client) RequestJSON

func (c *Client) RequestJSON(verb, p string, i interface{}, ro *RequestOptions) (*http.Response, error)

RequestJSON constructs JSON HTTP request.

func (*Client) RequestJSONAPI

func (c *Client) RequestJSONAPI(verb, p string, i interface{}, ro *RequestOptions) (*http.Response, error)

RequestJSONAPI constructs JSON API HTTP request.

func (*Client) RequestJSONAPIBulk

func (c *Client) RequestJSONAPIBulk(verb, p string, i interface{}, ro *RequestOptions) (*http.Response, error)

RequestJSONAPIBulk constructs bulk JSON API HTTP request.

func (*Client) ResetUserPassword

func (c *Client) ResetUserPassword(i *ResetUserPasswordInput) error

ResetUserPassword revokes a specific token by its ID.

func (*Client) SearchService

func (c *Client) SearchService(i *SearchServiceInput) (*Service, error)

SearchService retrieves the specified resource.

If no service exists by that name, the API returns a 400 response not a 404.

func (*Client) SimpleGet

func (c *Client) SimpleGet(target string) (*http.Response, error)

SimpleGet combines the RawRequest and Request methods, but doesn't add any parameters or change any encoding in the URL passed to it. It's mostly for calling the URLs given to us directly from Fastly without mangling them.

func (*Client) UpdateACL

func (c *Client) UpdateACL(i *UpdateACLInput) (*ACL, error)

UpdateACL updates the specified resource.

func (*Client) UpdateACLEntry

func (c *Client) UpdateACLEntry(i *UpdateACLEntryInput) (*ACLEntry, error)

UpdateACLEntry updates the specified resource.

func (*Client) UpdateBackend

func (c *Client) UpdateBackend(i *UpdateBackendInput) (*Backend, error)

UpdateBackend updates the specified resource.

func (*Client) UpdateBigQuery

func (c *Client) UpdateBigQuery(i *UpdateBigQueryInput) (*BigQuery, error)

UpdateBigQuery updates the specified resource.

func (*Client) UpdateBlobStorage

func (c *Client) UpdateBlobStorage(i *UpdateBlobStorageInput) (*BlobStorage, error)

UpdateBlobStorage updates the specified resource.

func (*Client) UpdateBulkCertificate

func (c *Client) UpdateBulkCertificate(i *UpdateBulkCertificateInput) (*BulkCertificate, error)

UpdateBulkCertificate updates the specified resource.

By using this endpoint, the original certificate will cease to be used for future TLS handshakes. Thus, only SAN entries that appear in the replacement certificate will become TLS enabled. Any SAN entries that are missing in the replacement certificate will become disabled.

func (*Client) UpdateCacheSetting

func (c *Client) UpdateCacheSetting(i *UpdateCacheSettingInput) (*CacheSetting, error)

UpdateCacheSetting updates the specified resource.

func (*Client) UpdateCloudfiles

func (c *Client) UpdateCloudfiles(i *UpdateCloudfilesInput) (*Cloudfiles, error)

UpdateCloudfiles updates the specified resource.

func (*Client) UpdateCondition

func (c *Client) UpdateCondition(i *UpdateConditionInput) (*Condition, error)

UpdateCondition updates the specified resource.

func (*Client) UpdateConfigStore added in v7.5.0

func (c *Client) UpdateConfigStore(i *UpdateConfigStoreInput) (*ConfigStore, error)

UpdateConfigStore updates a specific config store.

func (*Client) UpdateConfigStoreItem added in v7.5.0

func (c *Client) UpdateConfigStoreItem(i *UpdateConfigStoreItemInput) (*ConfigStoreItem, error)

UpdateConfigStoreItem updates a specific config store item.

func (*Client) UpdateCustomTLSCertificate

func (c *Client) UpdateCustomTLSCertificate(i *UpdateCustomTLSCertificateInput) (*CustomTLSCertificate, error)

UpdateCustomTLSCertificate updates the specified resource.

By using this endpoint, the original certificate will cease to be used for future TLS handshakes. Thus, only SAN entries that appear in the replacement certificate will become TLS enabled. Any SAN entries that are missing in the replacement certificate will become disabled.

func (*Client) UpdateCustomTLSConfiguration

func (c *Client) UpdateCustomTLSConfiguration(i *UpdateCustomTLSConfigurationInput) (*CustomTLSConfiguration, error)

UpdateCustomTLSConfiguration updates the specified resource.

func (*Client) UpdateDatadog

func (c *Client) UpdateDatadog(i *UpdateDatadogInput) (*Datadog, error)

UpdateDatadog updates the specified resource.

func (*Client) UpdateDictionary

func (c *Client) UpdateDictionary(i *UpdateDictionaryInput) (*Dictionary, error)

UpdateDictionary updates the specified resource.

func (*Client) UpdateDictionaryItem

func (c *Client) UpdateDictionaryItem(i *UpdateDictionaryItemInput) (*DictionaryItem, error)

UpdateDictionaryItem updates the specified resource.

func (*Client) UpdateDigitalOcean

func (c *Client) UpdateDigitalOcean(i *UpdateDigitalOceanInput) (*DigitalOcean, error)

UpdateDigitalOcean updates the specified resource.

func (*Client) UpdateDirector

func (c *Client) UpdateDirector(i *UpdateDirectorInput) (*Director, error)

UpdateDirector updates the specified resource.

func (*Client) UpdateDomain

func (c *Client) UpdateDomain(i *UpdateDomainInput) (*Domain, error)

UpdateDomain updates the specified resource.

func (*Client) UpdateDynamicSnippet

func (c *Client) UpdateDynamicSnippet(i *UpdateDynamicSnippetInput) (*DynamicSnippet, error)

UpdateDynamicSnippet updates the specified resource.

func (*Client) UpdateERL

func (c *Client) UpdateERL(i *UpdateERLInput) (*ERL, error)

UpdateERL updates the specified resource.

func (*Client) UpdateElasticsearch

func (c *Client) UpdateElasticsearch(i *UpdateElasticsearchInput) (*Elasticsearch, error)

UpdateElasticsearch updates the specified resource.

func (*Client) UpdateFTP

func (c *Client) UpdateFTP(i *UpdateFTPInput) (*FTP, error)

UpdateFTP updates the specified resource.

func (*Client) UpdateGCS

func (c *Client) UpdateGCS(i *UpdateGCSInput) (*GCS, error)

UpdateGCS updates the specified resource.

func (*Client) UpdateGzip

func (c *Client) UpdateGzip(i *UpdateGzipInput) (*Gzip, error)

UpdateGzip updates the specified resource.

func (*Client) UpdateHTTPS

func (c *Client) UpdateHTTPS(i *UpdateHTTPSInput) (*HTTPS, error)

UpdateHTTPS updates the specified resource.

func (*Client) UpdateHeader

func (c *Client) UpdateHeader(i *UpdateHeaderInput) (*Header, error)

UpdateHeader updates the specified resource.

func (*Client) UpdateHealthCheck

func (c *Client) UpdateHealthCheck(i *UpdateHealthCheckInput) (*HealthCheck, error)

UpdateHealthCheck updates the specified resource.

func (*Client) UpdateHeroku

func (c *Client) UpdateHeroku(i *UpdateHerokuInput) (*Heroku, error)

UpdateHeroku updates the specified resource.

func (*Client) UpdateHoneycomb

func (c *Client) UpdateHoneycomb(i *UpdateHoneycombInput) (*Honeycomb, error)

UpdateHoneycomb updates the specified resource.

func (*Client) UpdateKafka

func (c *Client) UpdateKafka(i *UpdateKafkaInput) (*Kafka, error)

UpdateKafka updates the specified resource.

func (*Client) UpdateKinesis

func (c *Client) UpdateKinesis(i *UpdateKinesisInput) (*Kinesis, error)

UpdateKinesis updates the specified resource.

func (*Client) UpdateLogentries

func (c *Client) UpdateLogentries(i *UpdateLogentriesInput) (*Logentries, error)

UpdateLogentries updates the specified resource.

func (*Client) UpdateLoggly

func (c *Client) UpdateLoggly(i *UpdateLogglyInput) (*Loggly, error)

UpdateLoggly updates the specified resource.

func (*Client) UpdateLogshuttle

func (c *Client) UpdateLogshuttle(i *UpdateLogshuttleInput) (*Logshuttle, error)

UpdateLogshuttle updates the specified resource.

func (*Client) UpdateNewRelic

func (c *Client) UpdateNewRelic(i *UpdateNewRelicInput) (*NewRelic, error)

UpdateNewRelic updates the specified resource.

func (*Client) UpdateOpenstack

func (c *Client) UpdateOpenstack(i *UpdateOpenstackInput) (*Openstack, error)

UpdateOpenstack updates the specified resource.

func (*Client) UpdatePackage

func (c *Client) UpdatePackage(i *UpdatePackageInput) (*Package, error)

UpdatePackage updates the specified resource.

func (*Client) UpdatePapertrail

func (c *Client) UpdatePapertrail(i *UpdatePapertrailInput) (*Papertrail, error)

UpdatePapertrail updates the specified resource.

func (*Client) UpdatePool

func (c *Client) UpdatePool(i *UpdatePoolInput) (*Pool, error)

UpdatePool updates the specified resource.

func (*Client) UpdatePubsub

func (c *Client) UpdatePubsub(i *UpdatePubsubInput) (*Pubsub, error)

UpdatePubsub updates the specified resource.

func (*Client) UpdateRequestSetting

func (c *Client) UpdateRequestSetting(i *UpdateRequestSettingInput) (*RequestSetting, error)

UpdateRequestSetting updates the specified resource.

func (*Client) UpdateResource added in v7.1.0

func (c *Client) UpdateResource(i *UpdateResourceInput) (*Resource, error)

UpdateResource updates the specified resource.

func (*Client) UpdateResponseObject

func (c *Client) UpdateResponseObject(i *UpdateResponseObjectInput) (*ResponseObject, error)

UpdateResponseObject updates the specified resource.

func (*Client) UpdateS3

func (c *Client) UpdateS3(i *UpdateS3Input) (*S3, error)

UpdateS3 updates the specified resource.

func (*Client) UpdateSFTP

func (c *Client) UpdateSFTP(i *UpdateSFTPInput) (*SFTP, error)

UpdateSFTP updates the specified resource.

func (*Client) UpdateScalyr

func (c *Client) UpdateScalyr(i *UpdateScalyrInput) (*Scalyr, error)

UpdateScalyr updates the specified resource.

func (*Client) UpdateServer

func (c *Client) UpdateServer(i *UpdateServerInput) (*Server, error)

UpdateServer updates the specified resource.

func (*Client) UpdateService

func (c *Client) UpdateService(i *UpdateServiceInput) (*Service, error)

UpdateService updates the specified resource.

func (*Client) UpdateServiceAuthorization

func (c *Client) UpdateServiceAuthorization(i *UpdateServiceAuthorizationInput) (*ServiceAuthorization, error)

UpdateServiceAuthorization updates the specified resource.

func (*Client) UpdateSettings

func (c *Client) UpdateSettings(i *UpdateSettingsInput) (*Settings, error)

UpdateSettings updates the specified resource.

func (*Client) UpdateSnippet

func (c *Client) UpdateSnippet(i *UpdateSnippetInput) (*Snippet, error)

UpdateSnippet updates the specified resource.

func (*Client) UpdateSplunk

func (c *Client) UpdateSplunk(i *UpdateSplunkInput) (*Splunk, error)

UpdateSplunk updates the specified resource.

func (*Client) UpdateSumologic

func (c *Client) UpdateSumologic(i *UpdateSumologicInput) (*Sumologic, error)

UpdateSumologic updates the specified resource.

func (*Client) UpdateSyslog

func (c *Client) UpdateSyslog(i *UpdateSyslogInput) (*Syslog, error)

UpdateSyslog updates the specified resource.

func (*Client) UpdateTLSActivation

func (c *Client) UpdateTLSActivation(i *UpdateTLSActivationInput) (*TLSActivation, error)

UpdateTLSActivation updates the specified resource.

func (*Client) UpdateTLSSubscription

func (c *Client) UpdateTLSSubscription(i *UpdateTLSSubscriptionInput) (*TLSSubscription, error)

UpdateTLSSubscription updates the specified resource.

TLS Subscriptions can only be updated in an "issued" state, and when Force=true.

func (*Client) UpdateUser

func (c *Client) UpdateUser(i *UpdateUserInput) (*User, error)

UpdateUser updates the specified resource.

func (*Client) UpdateVCL

func (c *Client) UpdateVCL(i *UpdateVCLInput) (*VCL, error)

UpdateVCL updates the specified resource.

func (*Client) UpdateVersion

func (c *Client) UpdateVersion(i *UpdateVersionInput) (*Version, error)

UpdateVersion updates the specified resource.

func (*Client) UpdateWAF

func (c *Client) UpdateWAF(i *UpdateWAFInput) (*WAF, error)

UpdateWAF updates the specified resource.

func (*Client) UpdateWAFRuleExclusion

func (c *Client) UpdateWAFRuleExclusion(i *UpdateWAFRuleExclusionInput) (*WAFRuleExclusion, error)

UpdateWAFRuleExclusion updates the specified resource.

func (*Client) UpdateWAFVersion

func (c *Client) UpdateWAFVersion(i *UpdateWAFVersionInput) (*WAFVersion, error)

UpdateWAFVersion updates the specified resource.

func (*Client) ValidateAllDomains

func (c *Client) ValidateAllDomains(i *ValidateAllDomainsInput) (results []*DomainValidationResult, err error)

ValidateAllDomains validates the specified resource.

func (*Client) ValidateDomain

func (c *Client) ValidateDomain(i *ValidateDomainInput) (*DomainValidationResult, error)

ValidateDomain validates the specified resource.

func (*Client) ValidateVersion

func (c *Client) ValidateVersion(i *ValidateVersionInput) (bool, string, error)

ValidateVersion validates the specified resource.

type ClientKey added in v7.2.0

type ClientKey struct {
	PublicKey []byte    `json:"public_key"`
	Signature []byte    `json:"signature"`
	ExpiresAt time.Time `json:"expires_at"`
}

ClientKey is an X25519 public key that can be used with golang.org/x/crypto/nacl/box to encrypt secrets locally before uploading them to the Fastly API. A client key is valid only for a short amount of time, and should be used immediately. The key is not valid after the ExpiresAt time.

Client keys are signed, and the attached signature must be validated using the public signing key before it is used. A ValidateSignature method is provided for this purpose.

func (*ClientKey) Encrypt added in v7.2.0

func (ck *ClientKey) Encrypt(plaintext []byte) ([]byte, error)

Encrypt uses the client key to encrypt the provided plaintext using a libsodium-compatible sealed box. https://pkg.go.dev/golang.org/x/crypto/nacl/box#SealAnonymous https://libsodium.gitbook.io/doc/public-key_cryptography/sealed_boxes

func (*ClientKey) ValidateSignature added in v7.2.0

func (ck *ClientKey) ValidateSignature(signingKey ed25519.PublicKey) bool

ValidateSignature reports if the signingKey was used to generate the client key's signature. It must be a valid Ed25519 public key, and it will panic if len(signingKey) is not ed25519.PublicKeySize. https://pkg.go.dev/crypto/ed25519#PublicKeySize

type CloneVersionInput

type CloneVersionInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

CloneVersionInput is the input to the CloneVersion function.

type CloneWAFVersionInput

type CloneWAFVersionInput struct {
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

CloneWAFVersionInput used as input for cloning a WAF version.

type Cloudfiles

type Cloudfiles struct {
	AccessKey         string     `mapstructure:"access_key"`
	BucketName        string     `mapstructure:"bucket_name"`
	CompressionCodec  string     `mapstructure:"compression_codec"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	GzipLevel         int        `mapstructure:"gzip_level"`
	MessageType       string     `mapstructure:"message_type"`
	Name              string     `mapstructure:"name"`
	Path              string     `mapstructure:"path"`
	Period            int        `mapstructure:"period"`
	Placement         string     `mapstructure:"placement"`
	PublicKey         string     `mapstructure:"public_key"`
	Region            string     `mapstructure:"region"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TimestampFormat   string     `mapstructure:"timestamp_format"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	User              string     `mapstructure:"user"`
}

Cloudfiles represents a Cloudfiles response from the Fastly API.

type Compatibool

type Compatibool bool

Compatibool is a boolean value that marshalls to 0/1 instead of true/false for compatibility with Fastly's API.

func CBool

func CBool(b bool) *Compatibool

CBool is a helper function to get a pointer to a bool.

func (Compatibool) EncodeValues

func (b Compatibool) EncodeValues(key string, v *url.Values) error

EncodeValues implements github.com/google/go-querystring/query#Encoder interface.

func (Compatibool) MarshalText

func (b Compatibool) MarshalText() ([]byte, error)

MarshalText implements the encoding.TextMarshaler interface.

func (*Compatibool) UnmarshalText

func (b *Compatibool) UnmarshalText(t []byte) error

UnmarshalText implements the encoding.TextUnmarshaler interface.

type Condition

type Condition struct {
	Comment        string     `mapstructure:"comment"`
	CreatedAt      *time.Time `mapstructure:"created_at"`
	DeletedAt      *time.Time `mapstructure:"deleted_at"`
	Name           string     `mapstructure:"name"`
	Priority       int        `mapstructure:"priority"`
	ServiceID      string     `mapstructure:"service_id"`
	ServiceVersion int        `mapstructure:"version"`
	Statement      string     `mapstructure:"statement"`
	Type           string     `mapstructure:"type"`
	UpdatedAt      *time.Time `mapstructure:"updated_at"`
}

Condition represents a condition response from the Fastly API.

type ConfigStore added in v7.5.0

type ConfigStore struct {
	Name      string     `json:"name"`
	ID        string     `json:"id"`
	CreatedAt *time.Time `json:"created_at"`
	UpdatedAt *time.Time `json:"updated_at"`
	DeletedAt *time.Time `json:"deleted_at"`
}

ConfigStore represents a config store response from the Fastly API.

type ConfigStoreItem added in v7.5.0

type ConfigStoreItem struct {
	StoreID   string     `json:"store_id"`
	Key       string     `json:"item_key"`
	Value     string     `json:"item_value"`
	CreatedAt *time.Time `json:"created_at"`
	UpdatedAt *time.Time `json:"updated_at"`
	DeletedAt *time.Time `json:"deleted_at"`
}

ConfigStoreItem is a config store item response from the Fastly API.

type ConfigStoreMetadata added in v7.5.0

type ConfigStoreMetadata struct {
	// ItemCount is the number of items in a store.
	ItemCount int `json:"item_count"`
}

ConfigStoreMetadata represents a config store metadata response from the Fastly API.

type Coordinates

type Coordinates struct {
	Latitude   float64 `mapstructure:"latitude"`
	Longtitude float64 `mapstructure:"longitude"`
	X          float64 `mapstructure:"x"`
	Y          float64 `mapstructure:"y"`
}

Coordinates represent the location of a datacenter.

type CreateACLEntryInput

type CreateACLEntryInput struct {
	// ACLID is an alphanumeric string identifying a ACL (required).
	ACLID string `url:"-"`
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// IP is an IP address.
	IP *string `url:"ip,omitempty"`
	// Negated is whether to negate the match. Useful primarily when creating individual exceptions to larger subnets.
	Negated *Compatibool `url:"negated,omitempty"`
	// ServiceID is an alphanumeric string identifying the service (required).
	ServiceID string `url:"-"`
	// Subnet is a number of bits for the subnet mask applied to the IP address.
	Subnet *int `url:"subnet,omitempty"`
}

CreateACLEntryInput is the input parameter to the CreateACLEntry function.

type CreateACLInput

type CreateACLInput struct {
	// Name is the name of the ACL to create (required)
	Name *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

CreateACLInput is used as input to the CreateACL function.

type CreateBackendInput

type CreateBackendInput struct {
	// Address is a hostname, IPv4, or IPv6 address for the backend.
	Address *string `url:"address,omitempty"`
	// AutoLoadbalance is whether or not this backend should be automatically load balanced.
	AutoLoadbalance *Compatibool `url:"auto_loadbalance,omitempty"`
	// BetweenBytesTimeout is the maximum duration in milliseconds that Fastly will wait while receiving no data on a download from a backend.
	BetweenBytesTimeout *int `url:"between_bytes_timeout,omitempty"`
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// ConnectTimeout is the maximum duration in milliseconds to wait for a connection to this backend to be established.
	ConnectTimeout *int `url:"connect_timeout,omitempty"`
	// ErrorThreshold is the number of errors to allow before the Backend is marked as down.
	ErrorThreshold *int `url:"error_threshold,omitempty"`
	// FirstByteTimeout is how long to wait for the first bytes in milliseconds.
	FirstByteTimeout *int `url:"first_byte_timeout,omitempty"`
	// HealthCheck is the name of the healthcheck to use with this backend.
	HealthCheck *string `url:"healthcheck,omitempty"`
	// KeepAliveTime is how long in seconds to keep a persistent connection to the backend between requests.
	KeepAliveTime *int `url:"keepalive_time,omitempty"`
	// MaxConn is the maximum number of concurrent connections this backend will accept.
	MaxConn *int `url:"max_conn,omitempty"`
	// MaxTLSVersion is the maximum allowed TLS version on SSL connections to this backend.
	MaxTLSVersion *string `url:"max_tls_version,omitempty"`
	// MinTLSVersion is the minimum allowed TLS version on SSL connections to this backend.
	MinTLSVersion *string `url:"min_tls_version,omitempty"`
	// Name is the name of the backend.
	Name *string `url:"name,omitempty"`
	// OverrideHost is, if set, will replace the client-supplied HTTP Host header on connections to this backend.
	OverrideHost *string `url:"override_host,omitempty"`
	// Port is the port on which the backend server is listening for connections from Fastly.
	Port *int `url:"port,omitempty"`
	// RequestCondition is the name of a Condition, which if satisfied, will select this backend during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// SSLCACert is a CA certificate attached to origin.
	SSLCACert *string `url:"ssl_ca_cert,omitempty"`
	// SSLCertHostname is an overrides ssl_hostname, but only for cert verification.
	SSLCertHostname *string `url:"ssl_cert_hostname,omitempty"`
	// SSLCheckCert forces being strict on checking SSL certs.
	SSLCheckCert *Compatibool `url:"ssl_check_cert,omitempty"`
	// SSLCiphers is a list of OpenSSL ciphers to support for connections to this origin.
	SSLCiphers *string `url:"ssl_ciphers,omitempty"`
	// SSLClientCert is a client certificate attached to origin.
	SSLClientCert *string `url:"ssl_client_cert,omitempty"`
	// SSLClientKey is a client key attached to origin.
	SSLClientKey *string `url:"ssl_client_key,omitempty"`
	// SSLHostname is used for both SNI during the TLS handshake and to validate the cert.
	// Deprecated: Use ssl_cert_hostname and ssl_sni_hostname to configure certificate validation.
	SSLHostname *string `url:"ssl_hostname,omitempty"`
	// SSLSNIHostname overrides ssl_hostname, but only for SNI in the handshake. Does not affect cert validation at all.
	SSLSNIHostname *string `url:"ssl_sni_hostname,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Shield is an identifier of the POP to use as a shield.
	Shield *string `url:"shield,omitempty"`
	// UseSSL indicates whether or not to require TLS for connections to this backend.
	UseSSL *Compatibool `url:"use_ssl,omitempty"`
	// Weight is the weight used to load balance this backend against others.
	Weight *int `url:"weight,omitempty"`
}

CreateBackendInput is used as input to the CreateBackend function.

type CreateBigQueryInput

type CreateBigQueryInput struct {
	// AccountName is the name of the Google Cloud Platform service account associated with the target log collection service.
	AccountName *string `url:"account_name,omitempty"`
	// Dataset is your BigQuery dataset.
	Dataset *string `url:"dataset,omitempty"`
	// Format is a Fastly log format string. Must produce JSON that matches the schema of your BigQuery table.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the BigQuery logging object. Used as a primary key for API access.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ProjectID is your Google Cloud Platform project ID.
	ProjectID *string `url:"project_id,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is your Google Cloud Platform account secret key. The private_key field in your service account authentication JSON. Not required if account_name is specified.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Table is your BigQuery table.
	Table *string `url:"table,omitempty"`
	// Template is a BigQuery table name suffix template.
	Template *string `url:"template_suffix,omitempty"`
	// User is your Google Cloud Platform service account email address. The client_email field in your service account authentication JSON. Not required if account_name is specified.
	User *string `url:"user,omitempty"`
}

CreateBigQueryInput is used as input to the CreateBigQuery function.

type CreateBlobStorageInput

type CreateBlobStorageInput struct {
	// AccountName is the unique Azure Blob Storage namespace in which your data objects are stored.
	AccountName *string `url:"account_name,omitempty"`
	// CompressionCodec is the codec used for compressing your logs (valid values are zstd, snappy, and gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Container is the name of the Azure Blob Storage container in which to store logs.
	Container *string `url:"container,omitempty"`
	// FileMaxBytes is the maximum number of bytes for each uploaded file. A value of 0 can be used to indicate there is no limit on the size of uploaded files, otherwise the minimum value is 1048576 bytes (1 MiB.).
	FileMaxBytes *int `url:"file_max_bytes,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted.
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SASToken is the Azure shared access signature providing write access to the blob service objects.
	SASToken *string `url:"sas_token,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
}

CreateBlobStorageInput is used as input to the CreateBlobStorage function.

type CreateBulkCertificateInput

type CreateBulkCertificateInput struct {
	// AllowUntrusted enables certificates that chain to untrusted roots.
	AllowUntrusted bool `jsonapi:"attr,allow_untrusted_root,omitempty"`
	// CertBlob is the PEM-formatted certificate blob.
	CertBlob string `jsonapi:"attr,cert_blob"`
	// Configurations is a list of TLS configurations.
	Configurations []*TLSConfiguration `jsonapi:"relation,tls_configurations,tls_configuration"`
	// IntermediatesBlob is the PEM-formatted chain of intermediate blobs.
	IntermediatesBlob string `jsonapi:"attr,intermediates_blob"`
}

CreateBulkCertificateInput is used as input to the CreateBulkCertificate function.

type CreateCacheSettingInput

type CreateCacheSettingInput struct {
	// Action determines vcl_fetch behaviour (pass, cache, restart).
	Action *CacheSettingAction `url:"action,omitempty"`
	// CacheCondition is name of the cache condition controlling when this configuration applies.
	CacheCondition *string `url:"cache_condition,omitempty"`
	// Name is the name for the cache settings object.
	Name *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// StaleTTL is the maximum time in seconds to continue to use a stale version of the object if future requests to your backend server fail (also known as 'stale if error').
	StaleTTL *int `url:"stale_ttl,omitempty"`
	// TTL is the maximum time to consider the object fresh in the cache (the cache 'time to live').
	TTL *int `url:"ttl,omitempty"`
}

CreateCacheSettingInput is used as input to the CreateCacheSetting function.

type CreateCloudfilesInput

type CreateCloudfilesInput struct {
	// AccessKey is your Cloud Files account access key.
	AccessKey *string `url:"access_key,omitempty"`
	// BucketName is the name of your Cloud Files container.
	BucketName *string `url:"bucket_name,omitempty"`
	// CompressionCodec is the codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// Region is the region to stream logs to.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// User is the username for your Cloud Files account.
	User *string `url:"user,omitempty"`
}

CreateCloudfilesInput is used as input to the CreateCloudfiles function.

type CreateConditionInput

type CreateConditionInput struct {
	// Name is the name of the condition.
	Name *string `url:"name,omitempty"`
	// Priority is a numeric string. Priority determines execution order. Lower numbers execute first.
	Priority *int `url:"priority,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Statement is a conditional expression in VCL used to determine if the condition is met.
	Statement *string `url:"statement,omitempty"`
	// Type is the type of the condition (REQUEST, CACHE, RESPONSE, PREFETCH).
	Type *string `url:"type,omitempty"`
}

CreateConditionInput is used as input to the CreateCondition function.

type CreateConfigStoreInput added in v7.5.0

type CreateConfigStoreInput struct {
	// Name is the name of the store to create (required).
	Name string `url:"name"`
}

CreateConfigStoreInput is the input to CreateConfigStore.

type CreateConfigStoreItemInput added in v7.5.0

type CreateConfigStoreItemInput struct {
	// StoreID is the ID of the config store (required).
	StoreID string
	// Key is the item's name (required).
	Key string `url:"item_key"`
	// Value is the item's value (required).
	Value string `url:"item_value"`
}

CreateConfigStoreItemInput is the input to the CreateConfigStoreItem.

type CreateCustomTLSCertificateInput

type CreateCustomTLSCertificateInput struct {
	// CertBlob is the PEM-formatted certificate blob.
	CertBlob string `jsonapi:"attr,cert_blob"`
	// ID is an alphanumeric string identifying a TLS certificate.
	ID string `jsonapi:"primary,tls_certificate"` // ID value does not need to be set.
	// Name is a customizable name for your certificate.
	Name string `jsonapi:"attr,name,omitempty"`
}

CreateCustomTLSCertificateInput is used as input to the CreateCustomTLSCertificate function.

type CreateDatadogInput

type CreateDatadogInput struct {
	// Format is a Fastly log format string. Must produce valid JSON that Datadog can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Region is the region that log data will be sent to.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the API key from your Datadog account.
	Token *string `url:"token,omitempty"`
}

CreateDatadogInput is used as input to the CreateDatadog function.

type CreateDictionaryInput

type CreateDictionaryInput struct {
	// Name is the name of the dictionary to create.
	Name *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// WriteOnly determines if items in the dictionary are readable or not.
	WriteOnly *Compatibool `url:"write_only,omitempty"`
}

CreateDictionaryInput is used as input to the CreateDictionary function.

type CreateDictionaryItemInput

type CreateDictionaryItemInput struct {
	// ItemKey is the dictionary item key, maximum 256 characters.
	ItemKey string `url:"item_key,omitempty"`
	// ItemValue is the dictionary item value, maximum 8000 characters.
	ItemValue string `url:"item_value,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// DictionaryID is the ID of the dictionary to retrieve items for (required).
	DictionaryID string `url:"-"`
}

CreateDictionaryItemInput is used as input to the CreateDictionaryItem function.

type CreateDigitalOceanInput

type CreateDigitalOceanInput struct {
	// AccessKey is your DigitalOcean Spaces account access key.
	AccessKey *string `url:"access_key,omitempty"`
	// BucketName is the name of the DigitalOcean Space.
	BucketName *string `url:"bucket_name,omitempty"`
	// CompressionCodec is the codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Domain is the domain of the DigitalOcean Spaces endpoint.
	Domain *string `url:"domain,omitempty"`
	// Format is aFastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is your DigitalOcean Spaces account secret key.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
}

CreateDigitalOceanInput is used as input to the CreateDigitalOcean function.

type CreateDirectorBackendInput

type CreateDirectorBackendInput struct {
	// Backend is the name of the backend (required).
	Backend string
	// Director is the name of the director (required).
	Director string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

CreateDirectorBackendInput is used as input to the CreateDirectorBackend function.

type CreateDirectorInput

type CreateDirectorInput struct {
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// Name is the name for the Director.
	Name *string `url:"name,omitempty"`
	// Quorum is the percentage of capacity that needs to be up for a director to be considered up. 0 to 100.
	Quorum *int `url:"quorum,omitempty"`
	// Retries is how many backends to search if it fails.
	Retries *int `url:"retries,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Shield is selected POP to serve as a shield for the backends.
	Shield *string `url:"shield,omitempty"`
	// Type is what type of load balance group to use (random, hash, client).
	Type *DirectorType `url:"type,omitempty"`
}

CreateDirectorInput is used as input to the CreateDirector function.

type CreateDomainInput

type CreateDomainInput struct {
	// Comment is a personal, freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// Name is the name of the domain that the service will respond to (required).
	Name *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

CreateDomainInput is used as input to the CreateDomain function.

type CreateERLInput

type CreateERLInput struct {
	// Action is the action to take when a rate limiter violation is detected (response, response_object, log_only).
	Action *ERLAction `url:"action,omitempty"`
	// ClientKey is an array of VCL variables used to generate a counter key to identify a client.
	ClientKey *[]string `url:"client_key,brackets,omitempty"`
	// FeatureRevision is the number of the rate limiting feature implementation. Defaults to the most recent revision.
	FeatureRevision *int `url:"feature_revision,omitempty"`
	// HTTPMethods is an array of HTTP methods to apply rate limiting to.
	HTTPMethods *[]string `url:"http_methods,brackets,omitempty"`
	// LoggerType is the name of the type of logging endpoint to be used when `action` is log_only.
	LoggerType *ERLLogger `url:"logger_type,omitempty"`
	// Name is a human readable name for the rate limiting rule.
	Name *string `url:"name,omitempty"`
	// PenaltyBoxDuration is a length of time in minutes that the rate limiter is in effect after the initial violation is detected.
	PenaltyBoxDuration *int `url:"penalty_box_duration,omitempty"`
	// Response is a custom response to be sent when the rate limit is exceeded. Required if action is response.
	Response *ERLResponseType `url:"response,omitempty"`
	// ResponseObjectName is the name of existing response object. Required if action is response_object.
	ResponseObjectName *string `url:"response_object_name,omitempty"`
	// RpsLimit is an upper limit of requests per second allowed by the rate limiter.
	RpsLimit *int `url:"rps_limit,omitempty"`
	// ServiceID is an alphanumeric string identifying the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// URIDictionaryName is the name of an Edge Dictionary containing URIs as keys. If not defined or null, all origin URIs will be rate limited.
	URIDictionaryName *string `url:"uri_dictionary_name,omitempty"`
	// WindowSize is the number of seconds during which the RPS limit must be exceeded in order to trigger a violation (1, 10, 60).
	WindowSize *ERLWindowSize `url:"window_size,omitempty"`
}

CreateERLInput is used as input to the CreateERL function.

type CreateElasticsearchInput

type CreateElasticsearchInput struct {
	// Format is a Fastly log format string. Must produce valid JSON that Elasticsearch can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Index is the name of the Elasticsearch index to send documents (logs) to.
	Index *string `url:"index,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Password is basic Auth password.
	Password *string `url:"password,omitempty"`
	// Pipeline is the ID of the Elasticsearch ingest pipeline to apply pre-process transformations to before indexing.
	Pipeline *string `url:"pipeline,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// RequestMaxBytes is the maximum number of bytes sent in one request.
	RequestMaxBytes *int `url:"request_max_bytes,omitempty"`
	// RequestMaxEntries is the maximum number of logs sent in one request.
	RequestMaxEntries *int `url:"request_max_entries,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// URL is the URL to stream logs to. Must use HTTPS.
	URL *string `url:"url,omitempty"`
	// User is basic Auth username.
	User *string `url:"user,omitempty"`
}

CreateElasticsearchInput is used as input to the CreateElasticsearch function.

type CreateEmptyWAFVersionInput

type CreateEmptyWAFVersionInput struct {
	// WAFID is the Web Application Firewall's ID.
	WAFID string
}

CreateEmptyWAFVersionInput creates a new resource.

type CreateFTPInput

type CreateFTPInput struct {
	// Address is an hostname or IPv4 address.
	Address *string `url:"address,omitempty"`
	// CompressionCodec is the codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Password is the password for the server. For anonymous use an email address.
	Password *string `url:"password,omitempty"`
	// Path is the path to upload log files to. If the path ends in / then it is treated as a directory.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// Username is the username for the server. Can be anonymous.
	Username *string `url:"user,omitempty"`
}

CreateFTPInput is used as input to the CreateFTP function.

type CreateGCSInput

type CreateGCSInput struct {
	// AccountName is the name of the Google Cloud Platform service account associated with the target log collection service. Not required if user and secret_key are provided.
	AccountName *string `url:"account_name,omitempty"`
	// Bucket is the name of the GCS bucket.
	Bucket *string `url:"bucket_name,omitempty"`
	// CompressionCodec is he codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is your Google Cloud Platform account secret key. The private_key field in your service account authentication JSON. Not required if account_name is specified.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// User is your Google Cloud Platform service account email address. The client_email field in your service account authentication JSON. Not required if account_name is specified.
	User *string `url:"user,omitempty"`
}

CreateGCSInput is used as input to the CreateGCS function.

type CreateGzipInput

type CreateGzipInput struct {
	// CacheCondition is the name of the cache condition controlling when this configuration applies.
	CacheCondition *string `url:"cache_condition,omitempty"`
	// ContentTypes is a space-separated list of content types to compress.
	ContentTypes *string `url:"content_types,omitempty"`
	// Extensions is a space-separated list of file extensions to compress.
	Extensions *string `url:"extensions,omitempty"`
	// Name is the name of the gzip configuration.
	Name *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

CreateGzipInput is used as input to the CreateGzip function.

type CreateHTTPSInput

type CreateHTTPSInput struct {
	// ContentType is the content type of the header sent with the request.
	ContentType *string `url:"content_type,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// HeaderName is the name of the custom header sent with the request.
	HeaderName *string `url:"header_name,omitempty"`
	// HeaderValue is the value of the custom header sent with the request.
	HeaderValue *string `url:"header_value,omitempty"`
	// JSONFormat enforces valid JSON formatting for log entries (0: disabled, 1: array of JSON, 2: newline delimited JSON).
	JSONFormat *string `url:"json_format,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Method is the HTTP method used for request (POST, PUT).
	Method *string `url:"method,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// RequestMaxBytes is the maximum number of bytes sent in one request. Defaults 0 (100MB).
	RequestMaxBytes *int `url:"request_max_bytes,omitempty"`
	// RequestMaxEntries is the maximum number of logs sent in one request. Defaults 0 (10k).
	RequestMaxEntries *int `url:"request_max_entries,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// URL is the URL to send logs to. Must use HTTPS
	URL *string `url:"url,omitempty"`
}

CreateHTTPSInput is used as input to the CreateHTTPS function.

type CreateHeaderInput

type CreateHeaderInput struct {
	// Action accepts a string value (set, append, delete, regex, regex_repeat).
	Action *HeaderAction `url:"action,omitempty"`
	// CacheCondition is the name of the cache condition controlling when this configuration applies.
	CacheCondition *string `url:"cache_condition,omitempty"`
	// Destination is the header to set.
	Destination *string `url:"dst,omitempty"`
	// IgnoreIfSet prevents adding the header if it is added already. Only applies to 'set' action.
	IgnoreIfSet *Compatibool `url:"ignore_if_set,omitempty"`
	// Name is a handle to refer to this Header object.
	Name *string `url:"name,omitempty"`
	// Priority determines execution order. Lower numbers execute first.
	Priority *int `url:"priority,omitempty"`
	// Regex is the regular expression to use. Only applies to regex and regex_repeat actions.
	Regex *string `url:"regex,omitempty"`
	// RequestCondition is the condition which, if met, will select this configuration during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// ResponseCondition is an optional name of a response condition to apply.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Source is a variable to be used as a source for the header content. Does not apply to delete action.
	Source *string `url:"src,omitempty"`
	// Substitution is a value to substitute in place of regular expression. Only applies to regex and regex_repeat actions.
	Substitution *string `url:"substitution,omitempty"`
	// Type is a type of header (request, cache, response).
	Type *HeaderType `url:"type,omitempty"`
}

CreateHeaderInput is used as input to the CreateHeader function.

type CreateHealthCheckInput

type CreateHealthCheckInput struct {
	// CheckInterval is how often to run the health check in milliseconds.
	CheckInterval *int `url:"check_interval,omitempty"`
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// ExpectedResponse is the status code expected from the host.
	ExpectedResponse *int `url:"expected_response,omitempty"`
	// HTTPVersion is whether to use version 1.0 or 1.1 HTTP.
	HTTPVersion *string `url:"http_version,omitempty"`
	// Headers is an array of custom headers that will be added to the health check probes.
	Headers *[]string `url:"headers,omitempty"`
	// Host is which host to check.
	Host *string `url:"host,omitempty"`
	// Initial is when loading a config, the initial number of probes to be seen as OK.
	Initial *int `url:"initial,omitempty"`
	// Method is which HTTP method to use.
	Method *string `url:"method,omitempty"`
	// Name is the name of the health check.
	Name *string `url:"name,omitempty"`
	// Path is the path to check.
	Path *string `url:"path,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Threshold is how many health checks must succeed to be considered healthy.
	Threshold *int `url:"threshold,omitempty"`
	// Timeout is timeout in milliseconds.
	Timeout *int `url:"timeout,omitempty"`
	// Window is the number of most recent health check queries to keep for this health check.
	Window *int `url:"window,omitempty"`
}

CreateHealthCheckInput is used as input to the CreateHealthCheck function.

type CreateHerokuInput

type CreateHerokuInput struct {
	// Format is a fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the token to use for authentication.
	Token *string `url:"token,omitempty"`
	// URL is the URL to stream logs to.
	URL *string `url:"url,omitempty"`
}

CreateHerokuInput is used as input to the CreateHeroku function.

type CreateHoneycombInput

type CreateHoneycombInput struct {
	// Dataset is the Honeycomb Dataset you want to log to.
	Dataset *string `url:"dataset,omitempty"`
	// Format is a Fastly log format string. Must produce valid JSON that Honeycomb can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the Write Key from the Account page of your Honeycomb account.
	Token *string `url:"token,omitempty"`
}

CreateHoneycombInput is used as input to the CreateHoneycomb function.

type CreateKafkaInput

type CreateKafkaInput struct {
	// AuthMethod is the SASL authentication method (plain, scram-sha-256, scram-sha-512).
	AuthMethod *string `url:"auth_method,omitempty"`
	// Brokers is a comma-separated list of IP addresses or hostnames of Kafka brokers.
	Brokers *string `url:"brokers,omitempty"`
	// CompressionCodec is the codec used for compression of your logs (gzip, snappy, lz4, null).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// ParseLogKeyvals enables parsing of key=value tuples from the beginning of a logline, turning them into record headers.
	ParseLogKeyvals *Compatibool `url:"parse_log_keyvals,omitempty"`
	// Password is the SASL password.
	Password *string `url:"password,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// RequestMaxBytes is the maximum number of bytes sent in one request. Defaults 0 (no limit).
	RequestMaxBytes *int `url:"request_max_bytes,omitempty"`
	// RequiredACKs is the number of acknowledgements a leader must receive before a write is considered successful.
	RequiredACKs *string `url:"required_acks,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// Topic is the Kafka topic to send logs to.
	Topic *string `url:"topic,omitempty"`
	// UseTLS is whether to use TLS (0: do not use, 1: use).
	UseTLS *Compatibool `url:"use_tls,omitempty"`
	// User is the SASL user.
	User *string `url:"user,omitempty"`
}

CreateKafkaInput is used as input to the CreateKafka function.

type CreateKinesisInput

type CreateKinesisInput struct {
	// AccessKey is the access key associated with the target Amazon Kinesis stream. Not required if iam_role is specified.
	AccessKey *string `url:"access_key,omitempty"`
	// Format is a Fastly log format string. Must produce valid JSON that Kinesis can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// IAMRole is the ARN for an IAM role granting Fastly access to the target Amazon Kinesis stream.
	IAMRole *string `url:"iam_role,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Region is a named set of AWS resources that's in the same geographical area.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is the secret key associated with the target Amazon Kinesis stream. Not required if iam_role is specified.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// StreamName is the Amazon Kinesis stream to send logs to.
	StreamName *string `url:"topic,omitempty"`
}

CreateKinesisInput is used as input to the CreateKinesis function.

type CreateLogentriesInput

type CreateLogentriesInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// Region is the region to which to stream logs.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is token based authentication
	Token *string `url:"token,omitempty"`
	// UseTLS is whether to use TLS (0: do not use, 1: use).
	UseTLS *Compatibool `url:"use_tls,omitempty"`
}

CreateLogentriesInput is used as input to the CreateLogentries function.

type CreateLogglyInput

type CreateLogglyInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the token to use for authentication.
	Token *string `url:"token,omitempty"`
}

CreateLogglyInput is used as input to the CreateLoggly function.

type CreateLogshuttleInput

type CreateLogshuttleInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the data authentication token associated with this endpoint.
	Token *string `url:"token,omitempty"`
	// URL is the URL to stream logs to.
	URL *string `url:"url,omitempty"`
}

CreateLogshuttleInput is used as input to the CreateLogshuttle function.

type CreateManagedLoggingInput

type CreateManagedLoggingInput struct {
	// Kind is the kind of managed logging we are creating (required).
	Kind ManagedLoggingKind
	// ServiceID is the ID of the service (required).
	ServiceID string
}

CreateManagedLoggingInput is used as input to the CreateManagedLogging function.

type CreateNewRelicInput

type CreateNewRelicInput struct {
	// Format is a Fastly log format string. Must produce valid JSON that New Relic Logs can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Region is the region to which to stream logs.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the Insert API key from the Account page of your New Relic account.
	Token *string `url:"token,omitempty"`
}

CreateNewRelicInput is used as input to the CreateNewRelic function.

type CreateObjectStoreInput

type CreateObjectStoreInput struct {
	// Name is the name of the store to create (required).
	Name string `json:"name"`
}

CreateObjectStoreInput is used as an input to the CreateObjectStore function.

type CreateOpenstackInput

type CreateOpenstackInput struct {
	// AccessKey is your OpenStack account access key.
	AccessKey *string `url:"access_key,omitempty"`
	// BucketName is the name of your OpenStack container.
	BucketName *string `url:"bucket_name,omitempty"`
	// CompressionCodec is he codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// URL is your OpenStack auth url.
	URL *string `url:"url,omitempty"`
	// User is the username for your OpenStack account.
	User *string `url:"user,omitempty"`
}

CreateOpenstackInput is used as input to the CreateOpenstack function.

type CreatePapertrailInput

type CreatePapertrailInput struct {
	// Address is a hostname or IPv4 address.
	Address *string `url:"address,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

CreatePapertrailInput is used as input to the CreatePapertrail function.

type CreatePoolInput

type CreatePoolInput struct {
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// ConnectTimeout is how long to wait for a timeout in milliseconds.
	ConnectTimeout *int `url:"connect_timeout,omitempty"`
	// FirstByteTimeout is how long to wait for the first byte in milliseconds.
	FirstByteTimeout *int `url:"first_byte_timeout,omitempty"`
	// Healthcheck is the name of the healthcheck to use with this pool.
	Healthcheck *string `url:"healthcheck,omitempty"`
	// MaxConnDefault is the maximum number of connections.
	MaxConnDefault *int `url:"max_conn_default,omitempty"`
	// MaxTLSVersion is the maximum allowed TLS version on connections to this server.
	MaxTLSVersion *string `url:"max_tls_version,omitempty"`
	// MinTLSVersion is the minimum allowed TLS version on connections to this server.
	MinTLSVersion *string `url:"min_tls_version,omitempty"`
	// Name is the name of the pool to create (required).
	Name *string `url:"name,omitempty"`
	// OverrideHost is the hostname to override the Host header.
	OverrideHost *string `url:"override_host,omitempty"`
	// Quorum is the percentage of capacity (0-100) that needs to be operationally available for a pool to be considered up.
	Quorum *int `url:"quorum,omitempty"`
	// RequestCondition is the condition which, if met, will select this configuration during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Shield is the selected POP to serve as a shield for the servers.
	Shield *string `url:"shield,omitempty"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSCertHostname is the hostname used to verify a server's certificate.
	TLSCertHostname *string `url:"tls_cert_hostname,omitempty"`
	// TLSCheckCert forces strict checking of TLS certs.
	TLSCheckCert *Compatibool `url:"tls_check_cert,omitempty"`
	// TLSCiphers is a list of OpenSSL ciphers (see the openssl.org manpages for details).
	TLSCiphers *string `url:"tls_ciphers,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSSNIHostname is the SNI hostname.
	TLSSNIHostname *string `url:"tls_sni_hostname,omitempty"`
	// Type is what type of load balance group to use (random, hash, client).
	Type *PoolType `url:"type,omitempty"`
	// UseTLS indicates whether to use TLS.
	UseTLS *Compatibool `url:"use_tls,omitempty"`
}

CreatePoolInput is used as input to the CreatePool function.

type CreatePrivateKeyInput

type CreatePrivateKeyInput struct {
	// Key is the contents of the private key. Must be a PEM-formatted key.
	Key string `jsonapi:"attr,key,omitempty"`
	// Name is a customizable name for your private key.
	Name string `jsonapi:"attr,name,omitempty"`
}

CreatePrivateKeyInput is used as input to the CreatePrivateKey function.

type CreatePubsubInput

type CreatePubsubInput struct {
	// AccountName is the name of the Google Cloud Platform service account associated with the target log collection service. Not required if user and secret_key are provided.
	AccountName *string `url:"account_name,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ProjectID is your Google Cloud Platform project ID. Required.
	ProjectID *string `url:"project_id,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is your Google Cloud Platform account secret key. The private_key field in your service account authentication JSON. Not required if account_name is specified.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Topic is the Google Cloud Pub/Sub topic to which logs will be published.
	Topic *string `url:"topic,omitempty"`
	// User is your Google Cloud Platform service account email address. The client_email field in your service account authentication JSON. Not required if account_name is specified.
	User *string `url:"user,omitempty"`
}

CreatePubsubInput is used as input to the CreatePubsub function.

type CreateRequestSettingInput

type CreateRequestSettingInput struct {
	// Action allows you to terminate request handling and immediately perform an action.
	Action *RequestSettingAction `url:"action,omitempty"`
	// BypassBusyWait disables collapsed forwarding, so you don't wait for other objects to origin.
	BypassBusyWait *Compatibool `url:"bypass_busy_wait,omitempty"`
	// DefaultHost sets the host header.
	DefaultHost *string `url:"default_host,omitempty"`
	// ForceMiss allows you to force a cache miss for the request. Replaces the item in the cache if the content is cacheable.
	ForceMiss *Compatibool `url:"force_miss,omitempty"`
	// ForceSSL forces the request use SSL (redirects a non-SSL to SSL).
	ForceSSL *Compatibool `url:"force_ssl,omitempty"`
	// GeoHeaders injects Fastly-Geo-Country, Fastly-Geo-City, and Fastly-Geo-Region into the request headers.
	GeoHeaders *Compatibool `url:"geo_headers,omitempty"`
	// HashKeys is a comma separated list of varnish request object fields that should be in the hash key.
	HashKeys *string `url:"hash_keys,omitempty"`
	// MaxStaleAge is how old an object is allowed to be to serve stale-if-error or stale-while-revalidate.
	MaxStaleAge *int `url:"max_stale_age,omitempty"`
	// Name is the name for the request settings.
	Name *string `url:"name,omitempty"`
	// RequestCondition is the condition which, if met, will select this configuration during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimerSupport injects the X-Timer info into the request for viewing origin fetch durations.
	TimerSupport *Compatibool `url:"timer_support,omitempty"`
	// XForwardedFor determines header value (clear, leave, append, append_all, overwrite)
	XForwardedFor *RequestSettingXFF `url:"xff,omitempty"`
}

CreateRequestSettingInput is used as input to the CreateRequestSetting function.

type CreateResourceInput added in v7.1.0

type CreateResourceInput struct {
	// Name is the name of the resource being linked to (e.g. an object store).
	//
	// NOTE: This doesn't have to match the actual resource name, i.e. the name
	// of the Object Store. Rather, this is an opportunity for you to use an
	// 'alias' for your Object Store. So your service will now refer to the
	// Object Store using this name.
	Name *string `url:"name,omitempty"`
	// ResourceID is the ID of the linked resource.
	ResourceID *string `url:"resource_id,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

CreateResourceInput is used as input to the CreateResource function.

type CreateResponseObjectInput

type CreateResponseObjectInput struct {
	// CacheCondition is the name of the cache condition controlling when this configuration applies.
	CacheCondition *string `url:"cache_condition,omitempty"`
	// Content is the content to deliver for the response object, can be empty.
	Content *string `url:"content,omitempty"`
	// ContentType is the MIME type of the content, can be empty.
	ContentType *string `url:"content_type,omitempty"`
	// Name is the name for the request settings.
	Name *string `url:"name,omitempty"`
	// RequestCondition is the condition which, if met, will select this configuration during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// Response is the HTTP response.
	Response *string `url:"response,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Status is the HTTP status code.
	Status *int `url:"status,omitempty"`
}

CreateResponseObjectInput is used as input to the CreateResponseObject function.

type CreateS3Input

type CreateS3Input struct {
	// ACL is the access control list (ACL) specific request header.
	ACL *S3AccessControlList `url:"acl,omitempty"`
	//  AccessKey is the access key for your S3 account. Not required if iam_role is provided.
	AccessKey *string `url:"access_key,omitempty"`
	// BucketName is the bucket name for S3 account.
	BucketName *string `url:"bucket_name,omitempty"`
	// CompressionCodec is the codec used for compressing your logs. Valid values are zstd, snappy, and gzip.
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Domain is the domain of the Amazon S3 endpoint.
	Domain *string `url:"domain,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// IAMRole is the Amazon Resource Name (ARN) for the IAM role granting Fastly access to S3. Not required if access_key and secret_key are provided.
	IAMRole *string `url:"iam_role,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the SFTP to update (required).
	Name *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// Redundancy is the S3 redundancy level.
	Redundancy *S3Redundancy `url:"redundancy,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is the secret key for your S3 account. Not required if iam_role is provided.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServerSideEncryption should be set to AES256 or aws:kms to enable S3 Server Side Encryption.
	ServerSideEncryption *S3ServerSideEncryption `url:"server_side_encryption,omitempty"`
	// ServerSideEncryptionKMSKeyID is an optional server-side KMS Key ID. Must be set if ServerSideEncryption is set to aws:kms or AES256.
	ServerSideEncryptionKMSKeyID *string `url:"server_side_encryption_kms_key_id,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
}

CreateS3Input is used as input to the CreateS3 function.

type CreateSFTPInput

type CreateSFTPInput struct {
	// Address is a hostname or IPv4 address.
	Address *string `url:"address,omitempty"`
	// CompressionCodec is the codec used for compressing your logs. Valid values are zstd, snappy, and gzip.
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the loggly to update.
	Name *string `url:"name,omitempty"`
	// Password is the password for the server.
	Password *string `url:"password,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SSHKnownHosts is a list of host keys for all hosts we can connect to over SFTP.
	SSHKnownHosts *string `url:"ssh_known_hosts,omitempty"`
	// SecretKey is the SSH private key for the server.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// User is the username for the server.
	User *string `url:"user,omitempty"`
}

CreateSFTPInput is used as input to the CreateSFTP function.

type CreateScalyrInput

type CreateScalyrInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Region is the region that log data will be sent to.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the token to use for authentication
	Token *string `url:"token,omitempty"`
}

CreateScalyrInput is used as input to the CreateScalyr function.

type CreateSecretInput

type CreateSecretInput struct {
	// ID of the Secret Store (required).
	ID string
	// Name of the Secret (required).
	Name string
	// Secret is the plaintext secret to be stored (required).
	// The value will be base64-encoded when delivered to the API, which is the
	// required format.
	Secret []byte
	// ClientKey is the public key used to encrypt the secret with (optional).
	ClientKey []byte
}

CreateSecretInput is used as input to the CreateSecret function.

type CreateSecretStoreInput

type CreateSecretStoreInput struct {
	// Name of the Secret Store (required).
	Name string
}

CreateSecretStoreInput is used as input to the CreateSecretStore function.

type CreateServerInput

type CreateServerInput struct {
	// Address is the hostname or IP of the origin server (required).
	Address *string `url:"address,omitempty"`
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// Disabled allows servers to be enabled and disabled in a pool.
	Disabled *bool `url:"disabled,omitempty"`
	// MaxConn is the maximum number of connections. If the value is 0, it inherits the value from pool's max_conn_default.
	MaxConn *int `url:"max_conn,omitempty"`
	// OverrideHost is the hostname to override the Host header.
	OverrideHost *string `url:"override_host,omitempty"`
	// PoolID is the ID of the pool (required).
	PoolID string `url:"-"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// Weight is the weight (1-100) used to load balance this server against others.
	Weight *int `url:"weight,omitempty"`
}

CreateServerInput is used as input to the CreateServer function.

type CreateServiceAuthorizationInput

type CreateServiceAuthorizationInput struct {
	// ID value is ignored and should not be set, needed to make JSONAPI work correctly.
	ID string `jsonapi:"primary,service_authorization"`

	// Permission is the level of permissions to grant the user to the service. Valid values are "full", "read_only", "purge_select" or "purge_all".
	Permission string `jsonapi:"attr,permission,omitempty"`

	// Service is the ID of the service to grant permissions for.
	Service *SAService `jsonapi:"relation,service,omitempty"`

	// UserID is the ID of the user which should have its permissions set.
	User *SAUser `jsonapi:"relation,user,omitempty"`
}

CreateServiceAuthorizationInput is used as input to the CreateServiceAuthorization function.

type CreateServiceInput

type CreateServiceInput struct {
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// Name is the name of the service.
	Name *string `url:"name,omitempty"`
	// Type is the type of this service (vcl, wasm).
	Type *string `url:"type,omitempty"`
}

CreateServiceInput is used as input to the CreateService function.

type CreateSnippetInput

type CreateSnippetInput struct {
	// Content is the VCL code that specifies exactly what the snippet does.
	Content *string `url:"content,omitempty"`
	// Dynamic sets the snippet version to regular (0) or dynamic (1).
	Dynamic *int `url:"dynamic,omitempty"`
	// Name is the name for the snippet (required).
	Name *string `url:"name,omitempty"`
	// Priority determines the ordering for multiple snippets. Lower numbers execute first.
	Priority *int `url:"priority,omitempty"`
	// ServiceID is the ID of the service to add the snippet to (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the editable configuration version (required).
	ServiceVersion int `url:"-"`
	// Type is the location in generated VCL where the snippet should be placed.
	Type *SnippetType `url:"type,omitempty"`
}

CreateSnippetInput is the input for CreateSnippet

type CreateSplunkInput

type CreateSplunkInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// RequestMaxBytes is the maximum number of bytes sent in one request. Defaults 0 for unbounded.
	RequestMaxBytes *int `url:"request_max_bytes,omitempty"`
	// RequestMaxEntries is the maximum number of logs sent in one request. Defaults 0 for unbounded.
	RequestMaxEntries *int `url:"request_max_entries,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// Token is a Splunk token for use in posting logs over HTTP to your collector.
	Token *string `url:"token,omitempty"`
	// URL is the URL to post logs to.
	URL *string `url:"url,omitempty"`
	// UseTLS is whether to use TLS (0: do not use, 1: use).
	UseTLS *Compatibool `url:"use_tls,omitempty"`
}

CreateSplunkInput is used as input to the CreateSplunk function.

type CreateSumologicInput

type CreateSumologicInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// URL is the URL to post logs to.
	URL *string `url:"url,omitempty"`
}

CreateSumologicInput is used as input to the CreateSumologic function.

type CreateSyslogInput

type CreateSyslogInput struct {
	// Address is a hostname or IPv4 address.
	Address *string `url:"address,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Hostname is the hostname used for the syslog endpoint.
	Hostname *string `url:"hostname,omitempty"`
	// IPV4 is the IPv4 address used for the syslog endpoint.
	IPV4 *string `url:"ipv4,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name for the real-time logging configuration.
	Name *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// Token is whether to prepend each message with a specific token.
	Token *string `url:"token,omitempty"`
	// UseTLS is whether to use TLS (0: do not use, 1: use).
	UseTLS *Compatibool `url:"use_tls,omitempty"`
}

CreateSyslogInput is used as input to the CreateSyslog function.

type CreateTLSActivationInput

type CreateTLSActivationInput struct {
	// Certificate is an alphanumeric string identifying a TLS certificate.
	Certificate *CustomTLSCertificate `jsonapi:"relation,tls_certificate"` // Only ID of CustomTLSCertificate needs to be set.
	// Configuration is an alphanumeric string identifying a TLS configuration.
	Configuration *TLSConfiguration `jsonapi:"relation,tls_configuration,omitempty"`
	// Domain is the domain name.
	Domain *TLSDomain `jsonapi:"relation,tls_domain"`
	// ID is an aphanumeric string identifying a TLS activation.
	ID string `jsonapi:"primary,tls_activation"` // ID value does not need to be set.
}

CreateTLSActivationInput is used as input to the CreateTLSActivation function.

type CreateTLSSubscriptionInput

type CreateTLSSubscriptionInput struct {
	// CertificateAuthority is the entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt or globalsign.
	CertificateAuthority string `jsonapi:"attr,certificate_authority,omitempty"`
	// CommonName is the common name associated with the subscription generated by Fastly TLS. Must be included in Domains. Only the ID fields of each one need to be set.
	CommonName *TLSDomain `jsonapi:"relation,common_name,omitempty"`
	// Configuration options that apply to the enabled domains on this subscription. Only ID needs to be populated
	Configuration *TLSConfiguration `jsonapi:"relation,tls_configuration,omitempty"`
	// Domains list to enable TLS for. Only the ID fields of each one need to be set.
	Domains []*TLSDomain `jsonapi:"relation,tls_domain"`
	// ID value is ignored and should not be set, needed to make JSONAPI work correctly.
	ID string `jsonapi:"primary,tls_subscription"`
}

CreateTLSSubscriptionInput is used as input to the CreateTLSSubscription function

type CreateTokenInput

type CreateTokenInput struct {
	// ExpiresAt is a time-stamp (UTC) of when the token will expire
	ExpiresAt *time.Time `url:"expires_at,omitempty"`
	// Name is the name of the token.
	Name string `url:"name,omitempty"`
	// Password is the token password.
	Password string `url:"password,omitempty"`
	// Scope is a space-delimited list of authorization scope (global, purge_select, purge_all, global).
	Scope TokenScope `url:"scope,omitempty"`
	// Services is a list of alphanumeric strings identifying services. If no services are specified, the token will have access to all services on the account.
	Services []string `url:"services,brackets,omitempty"`
	// Username is the email of the user the token is assigned to.
	Username string `url:"username,omitempty"`
}

CreateTokenInput is used as input to the Token function.

type CreateUserInput

type CreateUserInput struct {
	// Login is the login associated with the user (typically, an email address).
	Login *string `url:"login,omitempty"`
	// Name is the real life name of the user.
	Name *string `url:"name,omitempty"`
	// Role is the permissions role assigned to the user. Can be user, billing, engineer, or superuser.
	Role *string `url:"role,omitempty"`
}

CreateUserInput is used as input to the CreateUser function.

type CreateVCLInput

type CreateVCLInput struct {
	// Content is the VCL code to be included.
	Content *string `url:"content,omitempty"`
	// Main is set to true when this is the main VCL, otherwise false.
	Main *bool `url:"main,omitempty"`
	// Name is the name of this VCL.
	Name *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

CreateVCLInput is used as input to the CreateVCL function.

type CreateVersionInput

type CreateVersionInput struct {
	// Comment is a personal freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
}

CreateVersionInput is the input to the CreateVersion function.

type CreateWAFActiveRulesInput

type CreateWAFActiveRulesInput struct {
	// Rules is the list of WAF active rules (ModSecID, Status and Revision are required).
	Rules []*WAFActiveRule
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

CreateWAFActiveRulesInput creates a new resource.

type CreateWAFInput

type CreateWAFInput struct {
	// ID is an alphanumeric string identifying a WAF Firewall.
	ID string `jsonapi:"primary,waf_firewall"`
	// PrefetchCondition is the name of the corresponding condition object.
	PrefetchCondition string `jsonapi:"attr,prefetch_condition"`
	// Response is the name of the corresponding response object.
	Response string `jsonapi:"attr,response"`
	// ServiceID is the ID of the service (required).
	ServiceID string `jsonapi:"attr,service_id"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `jsonapi:"attr,service_version_number"`
}

CreateWAFInput is used as input to the CreateWAF function.

type CreateWAFRuleExclusionInput

type CreateWAFRuleExclusionInput struct {
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFRuleExclusion is the Web Application Firewall's exclusion
	WAFRuleExclusion *WAFRuleExclusion
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

CreateWAFRuleExclusionInput creates a new resource.

type CustomTLSCertificate

type CustomTLSCertificate struct {
	CreatedAt          *time.Time   `jsonapi:"attr,created_at,iso8601"`
	Domains            []*TLSDomain `jsonapi:"relation,tls_domains"`
	ID                 string       `jsonapi:"primary,tls_certificate"`
	IssuedTo           string       `jsonapi:"attr,issued_to"`
	Issuer             string       `jsonapi:"attr,issuer"`
	Name               string       `jsonapi:"attr,name"`
	NotAfter           *time.Time   `jsonapi:"attr,not_after,iso8601"`
	NotBefore          *time.Time   `jsonapi:"attr,not_before,iso8601"`
	Replace            bool         `jsonapi:"attr,replace"`
	SerialNumber       string       `jsonapi:"attr,serial_number"`
	SignatureAlgorithm string       `jsonapi:"attr,signature_algorithm"`
	UpdatedAt          *time.Time   `jsonapi:"attr,updated_at,iso8601"`
}

CustomTLSCertificate represents a custom certificate. Uses common TLSDomain type from BulkCertificate.

type CustomTLSConfiguration

type CustomTLSConfiguration struct {
	Bulk          bool         `jsonapi:"attr,bulk"`
	CreatedAt     *time.Time   `jsonapi:"attr,created_at,iso8601"`
	DNSRecords    []*DNSRecord `jsonapi:"relation,dns_records"`
	Default       bool         `jsonapi:"attr,default"`
	HTTPProtocols []string     `jsonapi:"attr,http_protocols"`
	ID            string       `jsonapi:"primary,tls_configuration"`
	Name          string       `jsonapi:"attr,name"`
	TLSProtocols  []string     `jsonapi:"attr,tls_protocols"`
	UpdatedAt     *time.Time   `jsonapi:"attr,updated_at,iso8601"`
}

CustomTLSConfiguration represents a TLS configuration response from the Fastly API.

type DNSRecord

type DNSRecord struct {
	ID         string `jsonapi:"primary,dns_record"`
	RecordType string `jsonapi:"attr,record_type"`
	Region     string `jsonapi:"attr,region"`
}

DNSRecord is a child of CustomTLSConfiguration

type Datacenter

type Datacenter struct {
	Code        string      `mapstructure:"code"`
	Coordinates Coordinates `mapstructure:"coordinates"`
	Group       string      `mapstructure:"group"`
	Name        string      `mapstructure:"name"`
	Shield      string      `mapstructure:"shield"`
}

Datacenter is a list of Datacenters returned by the Fastly API.

type Datadog

type Datadog struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	Region            string     `mapstructure:"region"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Token             string     `mapstructure:"token"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

Datadog represents a Datadog response from the Fastly API.

type DeactivateVersionInput

type DeactivateVersionInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeactivateVersionInput is the input to the DeactivateVersion function.

type DeleteACLEntryInput

type DeleteACLEntryInput struct {
	// ACLID is an alphanumeric string identifying a ACL (required).
	ACLID string
	// ID is an alphanumeric string identifying an ACL Entry (required).
	ID string
	// ServiceID is an alphanumeric string identifying the service (required).
	ServiceID string
}

DeleteACLEntryInput the input parameter to DeleteACLEntry function.

type DeleteACLInput

type DeleteACLInput struct {
	// Name is the name of the ACL to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteACLInput is the input parameter to DeleteACL function.

type DeleteBackendInput

type DeleteBackendInput struct {
	// Name is the name of the backend to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteBackendInput is the input parameter to DeleteBackend.

type DeleteBigQueryInput

type DeleteBigQueryInput struct {
	// Name is the name of the BigQuery to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteBigQueryInput is the input parameter to DeleteBigQuery.

type DeleteBlobStorageInput

type DeleteBlobStorageInput struct {
	// Name is the name of the blob storage to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteBlobStorageInput is the input parameter to DeleteBlobStorage.

type DeleteBulkCertificateInput

type DeleteBulkCertificateInput struct {
	// ID is an alphanumeric string identifying a TLS bulk certificate.
	ID string
}

DeleteBulkCertificateInput used for deleting a certificate.

type DeleteCacheSettingInput

type DeleteCacheSettingInput struct {
	// Name is the name of the cache setting to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteCacheSettingInput is the input parameter to DeleteCacheSetting.

type DeleteCloudfilesInput

type DeleteCloudfilesInput struct {
	// Name is the name of the Cloudfiles to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteCloudfilesInput is the input parameter to DeleteCloudfiles.

type DeleteConditionInput

type DeleteConditionInput struct {
	// Name is the name of the condition to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteConditionInput is the input parameter to DeleteCondition.

type DeleteConfigStoreInput added in v7.5.0

type DeleteConfigStoreInput struct {
	// ID is the ID of the config store to delete (required).
	ID string
}

DeleteConfigStoreInput is the input parameter to DeleteConfigStore.

type DeleteConfigStoreItemInput added in v7.5.0

type DeleteConfigStoreItemInput struct {
	// StoreID is the ID of the item's config store (required).
	StoreID string
	// Key is the name of the config store item to delete (required).
	Key string
}

DeleteConfigStoreItemInput is the input to DeleteConfigStoreItem.

type DeleteCustomTLSCertificateInput

type DeleteCustomTLSCertificateInput struct {
	// ID is an alphanumeric string identifying a TLS certificate.
	ID string
}

DeleteCustomTLSCertificateInput used for deleting a certificate.

type DeleteDatadogInput

type DeleteDatadogInput struct {
	// Name is the name of the Datadog to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteDatadogInput is the input parameter to DeleteDatadog.

type DeleteDictionaryInput

type DeleteDictionaryInput struct {
	// Name is the name of the dictionary to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteDictionaryInput is the input parameter to DeleteDictionary.

type DeleteDictionaryItemInput

type DeleteDictionaryItemInput struct {
	// DictionaryID is the ID of the dictionary to retrieve items for (required).
	DictionaryID string
	// ItemKey is the name of the dictionary item to delete (required).
	ItemKey string
	// ServiceID is the ID of the service (required).
	ServiceID string
}

DeleteDictionaryItemInput is the input parameter to DeleteDictionaryItem.

type DeleteDigitalOceanInput

type DeleteDigitalOceanInput struct {
	// Name is the name of the DigitalOcean to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteDigitalOceanInput is the input parameter to DeleteDigitalOcean.

type DeleteDirectorBackendInput

type DeleteDirectorBackendInput struct {
	// Backend is the name of the backend (required).
	Backend string
	// Director is the name of the director (required).
	Director string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteDirectorBackendInput is the input parameter to DeleteDirectorBackend.

type DeleteDirectorInput

type DeleteDirectorInput struct {
	// Name is the name of the director to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteDirectorInput is the input parameter to DeleteDirector.

type DeleteDomainInput

type DeleteDomainInput struct {
	// Name is the name of the domain that the service will respond to (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteDomainInput is used as input to the DeleteDomain function.

type DeleteERLInput

type DeleteERLInput struct {
	// ERLID is an alphanumeric string identifying the rate limiter (required).
	ERLID string
}

DeleteERLInput is used as input to the DeleteERL function.

type DeleteElasticsearchInput

type DeleteElasticsearchInput struct {
	// Name is the name of the Elasticsearch endpoint to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteElasticsearchInput is the input parameter to the DeleteElasticsearch function.

type DeleteFTPInput

type DeleteFTPInput struct {
	// Name is the name of the FTP to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteFTPInput is the input parameter to DeleteFTP.

type DeleteGCSInput

type DeleteGCSInput struct {
	// Name is the name of the GCS to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteGCSInput is the input parameter to DeleteGCS.

type DeleteGzipInput

type DeleteGzipInput struct {
	// Name is the name of the Gzip to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteGzipInput is the input parameter to DeleteGzip.

type DeleteHTTPSInput

type DeleteHTTPSInput struct {
	// Name is the name of the HTTPS endpoint to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteHTTPSInput is the input parameter to the DeleteHTTPS function.

type DeleteHeaderInput

type DeleteHeaderInput struct {
	// Name is the name of the header to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteHeaderInput is the input parameter to DeleteHeader.

type DeleteHealthCheckInput

type DeleteHealthCheckInput struct {
	// Name is the name of the health check to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteHealthCheckInput is the input parameter to DeleteHealthCheck.

type DeleteHerokuInput

type DeleteHerokuInput struct {
	// Name is the name of the heroku to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteHerokuInput is the input parameter to DeleteHeroku.

type DeleteHoneycombInput

type DeleteHoneycombInput struct {
	// Name is the name of the honeycomb to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteHoneycombInput is the input parameter to DeleteHoneycomb.

type DeleteKafkaInput

type DeleteKafkaInput struct {
	// Name is the name of the kafka to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteKafkaInput is the input parameter to DeleteKafka.

type DeleteKinesisInput

type DeleteKinesisInput struct {
	// Name is the name of the Kinesis logging object to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteKinesisInput is the input parameter to DeleteKinesis.

type DeleteLogentriesInput

type DeleteLogentriesInput struct {
	// Name is the name of the logentries to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteLogentriesInput is the input parameter to DeleteLogentries.

type DeleteLogglyInput

type DeleteLogglyInput struct {
	// Name is the name of the loggly to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteLogglyInput is the input parameter to DeleteLoggly.

type DeleteLogshuttleInput

type DeleteLogshuttleInput struct {
	// Name is the name of the logshuttle to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteLogshuttleInput is the input parameter to DeleteLogshuttle.

type DeleteManagedLoggingInput

type DeleteManagedLoggingInput struct {
	// Kind is the kind of managed logging we are removing (required).
	Kind ManagedLoggingKind
	// ServiceID is the ID of the service (required).
	ServiceID string
}

DeleteManagedLoggingInput is used as input to the DeleteManagedLogging function.

type DeleteNewRelicInput

type DeleteNewRelicInput struct {
	// Name is the name of the newrelic to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteNewRelicInput is the input parameter to DeleteNewRelic.

type DeleteObjectStoreInput

type DeleteObjectStoreInput struct {
	// ID is the ID of the object store to delete (required).
	ID string
}

DeleteObjectStoreInput is the input to the DeleteObjectStore function.

type DeleteObjectStoreKeyInput

type DeleteObjectStoreKeyInput struct {
	// ID is the ID of the object store (required).
	ID string
	// Key is the key to delete (required).
	Key string
}

DeleteObjectStoreKeyInput is the input to the DeleteObjectStoreKey function.

type DeleteOpenstackInput

type DeleteOpenstackInput struct {
	// Name is the name of the Openstack to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteOpenstackInput is the input parameter to DeleteOpenstack.

type DeletePapertrailInput

type DeletePapertrailInput struct {
	// Name is the name of the papertrail to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeletePapertrailInput is the input parameter to DeletePapertrail.

type DeletePoolInput

type DeletePoolInput struct {
	// Name is the name of the pool to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeletePoolInput is used as input to the DeletePool function.

type DeletePrivateKeyInput

type DeletePrivateKeyInput struct {
	// ID is an alphanumeric string identifying a private Key.
	ID string
}

DeletePrivateKeyInput used for deleting a private key.

type DeletePubsubInput

type DeletePubsubInput struct {
	// Name is the name of the Pubsub to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeletePubsubInput is the input parameter to DeletePubsub.

type DeleteRequestSettingInput

type DeleteRequestSettingInput struct {
	// Name is the name of the request settings to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteRequestSettingInput is the input parameter to DeleteRequestSetting.

type DeleteResourceInput added in v7.1.0

type DeleteResourceInput struct {
	// ID is an alphanumeric string identifying the resource link (required).
	ID string `url:"-"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

DeleteResourceInput is the input parameter to DeleteResource.

type DeleteResponseObjectInput

type DeleteResponseObjectInput struct {
	// Name is the name of the response object to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteResponseObjectInput is the input parameter to DeleteResponseObject.

type DeleteS3Input

type DeleteS3Input struct {
	// Name is the name of the S3 to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteS3Input is the input parameter to DeleteS3.

type DeleteSFTPInput

type DeleteSFTPInput struct {
	// Name is the name of the SFTP to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteSFTPInput is the input parameter to DeleteSFTP.

type DeleteScalyrInput

type DeleteScalyrInput struct {
	// Name is the name of the scalyr to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteScalyrInput is the input parameter to DeleteScalyr.

type DeleteSecretInput

type DeleteSecretInput struct {
	// ID of the Secret Store (required).
	ID string
	// Name of the secret (required).
	Name string
}

DeleteSecretInput is used as input to the DeleteSecret function.

type DeleteSecretStoreInput

type DeleteSecretStoreInput struct {
	// ID of the Secret Store (required).
	ID string
}

DeleteSecretStoreInput is used as input to the DeleteSecretStore function.

type DeleteServerInput

type DeleteServerInput struct {
	// PoolID is the ID of the pool (required).
	PoolID string
	// Server is an alphanumeric string identifying a Server (required).
	Server string
	// ServiceID is the ID of the service (required).
	ServiceID string
}

DeleteServerInput is used as input to the DeleteServer function.

type DeleteServiceAuthorizationInput

type DeleteServiceAuthorizationInput struct {
	// ID of the service authorization to delete (required).
	ID string
}

DeleteServiceAuthorizationInput is used as input to the DeleteServiceAuthorization function.

type DeleteServiceInput

type DeleteServiceInput struct {
	// ID is an alphanumeric string identifying the service (required).
	ID string
}

DeleteServiceInput is used as input to the DeleteService function.

type DeleteSnippetInput

type DeleteSnippetInput struct {
	// Name is the Name of the Snippet to Delete (required).
	Name string
	// ServiceID is the ID of the Service to add the snippet to (required).
	ServiceID string
	// ServiceVersion is the editable configuration version (required).
	ServiceVersion int
}

DeleteSnippetInput is the input parameter to the DeleteSnippet function.

type DeleteSplunkInput

type DeleteSplunkInput struct {
	// Name is the name of the splunk to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteSplunkInput is the input parameter to DeleteSplunk.

type DeleteSumologicInput

type DeleteSumologicInput struct {
	// Name is the name of the sumologic to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteSumologicInput is the input parameter to DeleteSumologic.

type DeleteSyslogInput

type DeleteSyslogInput struct {
	// Name is the name of the syslog to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteSyslogInput is the input parameter to DeleteSyslog.

type DeleteTLSActivationInput

type DeleteTLSActivationInput struct {
	// ID is an alphanumeric string identifying a TLS activation.
	ID string
}

DeleteTLSActivationInput used for deleting a certificate.

type DeleteTLSSubscriptionInput

type DeleteTLSSubscriptionInput struct {
	// Force the subscription to be deleted, even if domains are active. Warning: can disable production traffic.
	Force bool
	// ID of the TLS subscription to delete.
	ID string
}

DeleteTLSSubscriptionInput is used as input to the DeleteTLSSubscription function

type DeleteTokenInput

type DeleteTokenInput struct {
	// TokenID is an alphanumeric string identifying a token (required).
	TokenID string
}

DeleteTokenInput is used as input to the DeleteToken function.

type DeleteUserInput

type DeleteUserInput struct {
	// ID is an alphanumeric string identifying the user (required).
	ID string
}

DeleteUserInput is used as input to the DeleteUser function.

type DeleteVCLInput

type DeleteVCLInput struct {
	// Name is the name of the VCL to delete (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DeleteVCLInput is the input parameter to DeleteVCL.

type DeleteWAFActiveRulesInput

type DeleteWAFActiveRulesInput struct {
	// Rules is the list of WAF active rules (ModSecID is required).
	Rules []*WAFActiveRule
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

DeleteWAFActiveRulesInput used as input for removing rules from a WAF.

type DeleteWAFInput

type DeleteWAFInput struct {
	// This is the WAF ID.
	ID string `jsonapi:"primary,waf_firewall"`
	// The service version.
	ServiceVersion int `jsonapi:"attr,service_version_number"`
}

DeleteWAFInput is used as input to the DeleteWAFInput function.

type DeleteWAFRuleExclusionInput

type DeleteWAFRuleExclusionInput struct {
	// Number is the rule exclusion number.
	Number int
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

DeleteWAFRuleExclusionInput used as input for removing WAF rule exclusions.

type DeployWAFVersionInput

type DeployWAFVersionInput struct {
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

DeployWAFVersionInput used as input for deploying a WAF version.

type Dictionary

type Dictionary struct {
	CreatedAt      *time.Time `mapstructure:"created_at"`
	DeletedAt      *time.Time `mapstructure:"deleted_at"`
	ID             string     `mapstructure:"id"`
	Name           string     `mapstructure:"name"`
	ServiceID      string     `mapstructure:"service_id"`
	ServiceVersion int        `mapstructure:"version"`
	UpdatedAt      *time.Time `mapstructure:"updated_at"`
	WriteOnly      bool       `mapstructure:"write_only"`
}

Dictionary represents a dictionary response from the Fastly API.

type DictionaryInfo

type DictionaryInfo struct {
	// Digest is the hash of the dictionary content.
	Digest string `mapstructure:"digest"`
	// ItemCount is the number of items belonging to the dictionary.
	ItemCount int `mapstructure:"item_count"`
	// LastUpdated is the Time-stamp (GMT) when the dictionary was last updated.
	LastUpdated *time.Time `mapstructure:"last_updated"`
}

DictionaryInfo represents a dictionary metadata response from the Fastly API.

type DictionaryItem

type DictionaryItem struct {
	CreatedAt    *time.Time `mapstructure:"created_at"`
	DeletedAt    *time.Time `mapstructure:"deleted_at"`
	DictionaryID string     `mapstructure:"dictionary_id"`
	ItemKey      string     `mapstructure:"item_key"`
	ItemValue    string     `mapstructure:"item_value"`
	ServiceID    string     `mapstructure:"service_id"`
	UpdatedAt    *time.Time `mapstructure:"updated_at"`
}

DictionaryItem represents a dictionary item response from the Fastly API.

type Diff

type Diff struct {
	Diff   string `mapstructure:"diff"`
	Format string `mapstructure:"format"`
	From   int    `mapstructure:"from"`
	To     int    `mapstructure:"to"`
}

Diff represents a diff of two versions as a response from the Fastly API.

type DigitalOcean

type DigitalOcean struct {
	AccessKey         string     `mapstructure:"access_key"`
	BucketName        string     `mapstructure:"bucket_name"`
	CompressionCodec  string     `mapstructure:"compression_codec"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Domain            string     `mapstructure:"domain"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	GzipLevel         int        `mapstructure:"gzip_level"`
	MessageType       string     `mapstructure:"message_type"`
	Name              string     `mapstructure:"name"`
	Path              string     `mapstructure:"path"`
	Period            int        `mapstructure:"period"`
	Placement         string     `mapstructure:"placement"`
	PublicKey         string     `mapstructure:"public_key"`
	ResponseCondition string     `mapstructure:"response_condition"`
	SecretKey         string     `mapstructure:"secret_key"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TimestampFormat   string     `mapstructure:"timestamp_format"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

DigitalOcean represents a DigitalOcean response from the Fastly API.

type Director

type Director struct {
	Backends       []string     `mapstructure:"backends"`
	Capacity       int          `mapstructure:"capacity"`
	Comment        string       `mapstructure:"comment"`
	CreatedAt      *time.Time   `mapstructure:"created_at"`
	DeletedAt      *time.Time   `mapstructure:"deleted_at"`
	Name           string       `mapstructure:"name"`
	Quorum         int          `mapstructure:"quorum"`
	Retries        int          `mapstructure:"retries"`
	ServiceID      string       `mapstructure:"service_id"`
	ServiceVersion int          `mapstructure:"version"`
	Shield         string       `mapstructure:"shield"`
	Type           DirectorType `mapstructure:"type"`
	UpdatedAt      *time.Time   `mapstructure:"updated_at"`
}

Director represents a director response from the Fastly API.

type DirectorBackend

type DirectorBackend struct {
	Backend        string     `mapstructure:"backend_name"`
	CreatedAt      *time.Time `mapstructure:"created_at"`
	DeletedAt      *time.Time `mapstructure:"deleted_at"`
	Director       string     `mapstructure:"director_name"`
	ServiceID      string     `mapstructure:"service_id"`
	ServiceVersion int        `mapstructure:"version"`
	UpdatedAt      *time.Time `mapstructure:"updated_at"`
}

DirectorBackend is the relationship between a director and a backend in the Fastly API.

type DirectorType

type DirectorType int

DirectorType is a type of director.

const (
	// DirectorTypeRandom is a director that does random direction.
	DirectorTypeRandom DirectorType = 1

	// DirectorTypeRoundRobin is a director that does round-robin direction.
	DirectorTypeRoundRobin DirectorType = 2

	// DirectorTypeHash is a director that does hash direction.
	DirectorTypeHash DirectorType = 3

	// DirectorTypeClient is a director that does client direction.
	DirectorTypeClient DirectorType = 4
)

func DirectorTypePtr

func DirectorTypePtr(t DirectorType) *DirectorType

DirectorTypePtr returns pointer to DirectorType.

type DisableHTTP3Input added in v7.2.0

type DisableHTTP3Input struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

DisableHTTP3Input is the input parameter to the DisableHTTP3 function.

type Domain

type Domain struct {
	Comment        string     `mapstructure:"comment"`
	CreatedAt      *time.Time `mapstructure:"created_at"`
	DeletedAt      *time.Time `mapstructure:"deleted_at"`
	Name           string     `mapstructure:"name"`
	ServiceID      string     `mapstructure:"service_id"`
	ServiceVersion int        `mapstructure:"version"`
	UpdatedAt      *time.Time `mapstructure:"updated_at"`
}

Domain represents the the domain name Fastly will serve content for.

type DomainMetadata

type DomainMetadata struct {
	Comment        string     `json:"comment"`
	CreatedAt      *time.Time `json:"created_at"`
	DeletedAt      *time.Time `json:"deleted_at"`
	Name           string     `json:"name"`
	ServiceID      string     `json:"service_id"`
	ServiceVersion int        `json:"version"`
	UpdatedAt      *time.Time `json:"updated_at"`
}

DomainMetadata represents a domain name configured for a Fastly service.

type DomainValidationResult

type DomainValidationResult struct {
	CName    string
	Metadata DomainMetadata
	Valid    bool
}

DomainValidationResult defines an idiomatic representation of the API response.

func (*DomainValidationResult) UnmarshalJSON

func (d *DomainValidationResult) UnmarshalJSON(data []byte) error

UnmarshalJSON works around the badly designed API response by coercing the raw data into a more appropriate data structure.

type DynamicSnippet

type DynamicSnippet struct {
	Content   string     `mapstructure:"content"`
	CreatedAt *time.Time `mapstructure:"created_at"`
	ID        string     `mapstructure:"snippet_id"`
	ServiceID string     `mapstructure:"service_id"`
	UpdatedAt *time.Time `mapstructure:"updated_at"`
}

DynamicSnippet is the object returned when updating or retrieving a Dynamic Snippet

type ERL

type ERL struct {
	Action             ERLAction     `mapstructure:"action"`
	ClientKey          []string      `mapstructure:"client_key"`
	CreatedAt          *time.Time    `mapstructure:"created_at"`
	DeletedAt          *time.Time    `mapstructure:"deleted_at"`
	FeatureRevision    int           `mapstructure:"feature_revision"` // 1..
	HTTPMethods        []string      `mapstructure:"http_methods"`
	ID                 string        `mapstructure:"id"`
	LoggerType         ERLLogger     `mapstructure:"logger_type"`
	Name               string        `mapstructure:"name"`
	PenaltyBoxDuration int           `mapstructure:"penalty_box_duration"` // 1..60
	Response           *ERLResponse  `mapstructure:"response"`             // required if Action != Log
	ResponseObjectName string        `mapstructure:"response_object_name"`
	RpsLimit           int           `mapstructure:"rps_limit"` // 10..10000
	ServiceID          string        `mapstructure:"service_id"`
	UpdatedAt          *time.Time    `mapstructure:"updated_at"`
	URIDictionaryName  string        `mapstructure:"uri_dictionary_name"`
	Version            int           `mapstructure:"version"` // 1..
	WindowSize         ERLWindowSize `mapstructure:"window_size"`
}

ERL models the response from the Fastly API.

type ERLAction

type ERLAction string

ERLAction represents the action variants for when a rate limiter violation is detected.

const (
	// ERLActionLogOnly represents an action variant.
	ERLActionLogOnly ERLAction = "log_only"
	// ERLActionResponse represents an action variant.
	ERLActionResponse ERLAction = "response"
	// ERLActionResponseObject represents an action variant.
	ERLActionResponseObject ERLAction = "response_object"
)

func ERLActionPtr

func ERLActionPtr(v ERLAction) *ERLAction

ERLActionPtr is a helper that returns a pointer to the type passed in.

type ERLLogger

type ERLLogger string

ERLLogger represents the supported log provider variants.

const (
	// ERLLogAzureBlob represents a log provider variant.
	ERLLogAzureBlob ERLLogger = "azureblob"
	// ERLLogBigQuery represents a log provider variant.
	ERLLogBigQuery ERLLogger = "bigquery"
	// ERLLogCloudFiles represents a log provider variant.
	ERLLogCloudFiles ERLLogger = "cloudfiles"
	// ERLLogDataDog represents a log provider variant.
	ERLLogDataDog ERLLogger = "datadog"
	// ERLLogDigitalOcean represents a log provider variant.
	ERLLogDigitalOcean ERLLogger = "digitalocean"
	// ERLLogElasticSearch represents a log provider variant.
	ERLLogElasticSearch ERLLogger = "elasticsearch"
	// ERLLogFtp represents a log provider variant.
	ERLLogFtp ERLLogger = "ftp"
	// ERLLogGcs represents a log provider variant.
	ERLLogGcs ERLLogger = "gcs"
	// ERLLogGoogleAnalytics represents a log provider variant.
	ERLLogGoogleAnalytics ERLLogger = "googleanalytics"
	// ERLLogHeroku represents a log provider variant.
	ERLLogHeroku ERLLogger = "heroku"
	// ERLLogHoneycomb represents a log provider variant.
	ERLLogHoneycomb ERLLogger = "honeycomb"
	// ERLLogHTTP represents a log provider variant.
	ERLLogHTTP ERLLogger = "http"
	// ERLLogHTTPS represents a log provider variant.
	ERLLogHTTPS ERLLogger = "https"
	// ERLLogKafta represents a log provider variant.
	ERLLogKafta ERLLogger = "kafka"
	// ERLLogKinesis represents a log provider variant.
	ERLLogKinesis ERLLogger = "kinesis"
	// ERLLogLogEntries represents a log provider variant.
	ERLLogLogEntries ERLLogger = "logentries"
	// ERLLogLoggly represents a log provider variant.
	ERLLogLoggly ERLLogger = "loggly"
	// ERLLogLogShuttle represents a log provider variant.
	ERLLogLogShuttle ERLLogger = "logshuttle"
	// ERLLogNewRelic represents a log provider variant.
	ERLLogNewRelic ERLLogger = "newrelic"
	// ERLLogOpenStack represents a log provider variant.
	ERLLogOpenStack ERLLogger = "openstack"
	// ERLLogPaperTrail represents a log provider variant.
	ERLLogPaperTrail ERLLogger = "papertrail"
	// ERLLogPubSub represents a log provider variant.
	ERLLogPubSub ERLLogger = "pubsub"
	// ERLLogS3 represents a log provider variant.
	ERLLogS3 ERLLogger = "s3"
	// ERLLogScalyr represents a log provider variant.
	ERLLogScalyr ERLLogger = "scalyr"
	// ERLLogSftp represents a log provider variant.
	ERLLogSftp ERLLogger = "sftp"
	// ERLLogSplunk represents a log provider variant.
	ERLLogSplunk ERLLogger = "splunk"
	// ERLLogStackDriver represents a log provider variant.
	ERLLogStackDriver ERLLogger = "stackdriver"
	// ERLLogSumoLogic represents a log provider variant.
	ERLLogSumoLogic ERLLogger = "sumologic"
	// ERLLogSysLog represents a log provider variant.
	ERLLogSysLog ERLLogger = "syslog"
)

func ERLLoggerPtr added in v7.5.1

func ERLLoggerPtr(v ERLLogger) *ERLLogger

ERLLoggerPtr is a helper that returns a pointer to the type passed in.

type ERLResponse added in v7.5.4

type ERLResponse struct {
	ERLContent     string `mapstructure:"content,omitempty"`
	ERLContentType string `mapstructure:"content_type,omitempty"`
	ERLStatus      int    `mapstructure:"status,omitempty"`
}

ERLResponse models the response from the Fastly API.

type ERLResponseType

type ERLResponseType struct {
	ERLContent     string `url:"content,omitempty"`
	ERLContentType string `url:"content_type,omitempty"`
	ERLStatus      int    `url:"status,omitempty"`
}

ERLResponseType models the input to the Fastly API.

type ERLWindowSize

type ERLWindowSize int

ERLWindowSize represents the duration variants for when the RPS limit is exceeded.

const (
	// ERLSize1 represents a duration variant.
	ERLSize1 ERLWindowSize = 1
	// ERLSize10 represents a duration variant.
	ERLSize10 ERLWindowSize = 10
	// ERLSize60 represents a duration variant.
	ERLSize60 ERLWindowSize = 60
)

func ERLWindowSizePtr

func ERLWindowSizePtr(v ERLWindowSize) *ERLWindowSize

ERLWindowSizePtr is a helper that returns a pointer to the type passed in.

type ERLsByName

type ERLsByName []*ERL

ERLsByName is a sortable list of ERLs

func (ERLsByName) Len

func (s ERLsByName) Len() int

Len implement the sortable interface.

func (ERLsByName) Less

func (s ERLsByName) Less(i, j int) bool

Less implement the sortable interface.

func (ERLsByName) Swap

func (s ERLsByName) Swap(i, j int)

Swap implement the sortable interface.

type EdgeCheck

type EdgeCheck struct {
	Hash         string             `mapstructure:"hash"`
	Request      *EdgeCheckRequest  `mapstructure:"request"`
	Response     *EdgeCheckResponse `mapstructure:"response"`
	ResponseTime float64            `mapstructure:"response_time"`
	Server       string             `mapstructure:"server"`
}

EdgeCheck represents an edge check response from the Fastly API.

type EdgeCheckInput

type EdgeCheckInput struct {
	// URL is the full URL (host and path) to check on all nodes. if protocol is omitted, http will be assumed.
	URL string `url:"url,omitempty"`
}

EdgeCheckInput is used as input to the EdgeCheck function.

type EdgeCheckRequest

type EdgeCheckRequest struct {
	Headers *http.Header `mapstructure:"headers"`
	Method  string       `mapstructure:"method"`
	URL     string       `mapstructure:"url"`
}

EdgeCheckRequest is the request part of an EdgeCheck response.

type EdgeCheckResponse

type EdgeCheckResponse struct {
	Headers *http.Header `mapstructure:"headers"`
	Status  uint         `mapstructure:"status"`
}

EdgeCheckResponse is the response part of an EdgeCheck response.

type Elasticsearch

type Elasticsearch struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Index             string     `mapstructure:"index"`
	Name              string     `mapstructure:"name"`
	Password          string     `mapstructure:"password"`
	Pipeline          string     `mapstructure:"pipeline"`
	Placement         string     `mapstructure:"placement"`
	RequestMaxBytes   int        `mapstructure:"request_max_bytes"`
	RequestMaxEntries int        `mapstructure:"request_max_entries"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TLSCACert         string     `mapstructure:"tls_ca_cert"`
	TLSClientCert     string     `mapstructure:"tls_client_cert"`
	TLSClientKey      string     `mapstructure:"tls_client_key"`
	TLSHostname       string     `mapstructure:"tls_hostname"`
	URL               string     `mapstructure:"url"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	User              string     `mapstructure:"user"`
}

Elasticsearch represents an Elasticsearch Logging response from the Fastly API.

type EnableHTTP3Input added in v7.2.0

type EnableHTTP3Input struct {
	// FeatureRevision is the revision number of the HTTP/3 feature implementation.
	FeatureRevision *int `url:"feature_revision,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

EnableHTTP3Input is used as input to the EnableHTTP3 function.

type ErrorObject

type ErrorObject struct {
	Code   string                  `mapstructure:"code"`
	Detail string                  `mapstructure:"detail"`
	ID     string                  `mapstructure:"id"`
	Meta   *map[string]interface{} `mapstructure:"meta"`
	Status string                  `mapstructure:"status"`
	Title  string                  `mapstructure:"title"`
}

ErrorObject is a single error.

type Event

type Event struct {
	Admin       bool                   `jsonapi:"attr,admin"`
	CreatedAt   *time.Time             `jsonapi:"attr,created_at,iso8601"`
	CustomerID  string                 `jsonapi:"attr,customer_id"`
	Description string                 `jsonapi:"attr,description"`
	EventType   string                 `jsonapi:"attr,event_type"`
	ID          string                 `jsonapi:"primary,event"`
	IP          string                 `jsonapi:"attr,ip"`
	Metadata    map[string]interface{} `jsonapi:"attr,metadata,omitempty"`
	ServiceID   string                 `jsonapi:"attr,service_id"`
	UserID      string                 `jsonapi:"attr,user_id"`
}

Event represents an event_logs item response from the Fastly API.

type EventsPaginationInfo

type EventsPaginationInfo struct {
	First string `json:"first,omitempty"`
	Last  string `json:"last,omitempty"`
	Next  string `json:"next,omitempty"`
}

EventsPaginationInfo stores links to searches related to the current one, showing any information about additional results being stored on another page

type FTP

type FTP struct {
	Address           string     `mapstructure:"address"`
	CompressionCodec  string     `mapstructure:"compression_codec"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	GzipLevel         int        `mapstructure:"gzip_level"`
	MessageType       string     `mapstructure:"message_type"`
	Name              string     `mapstructure:"name"`
	Password          string     `mapstructure:"password"`
	Path              string     `mapstructure:"path"`
	Period            int        `mapstructure:"period"`
	Placement         string     `mapstructure:"placement"`
	Port              int        `mapstructure:"port"`
	PublicKey         string     `mapstructure:"public_key"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TimestampFormat   string     `mapstructure:"timestamp_format"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	Username          string     `mapstructure:"user"`
}

FTP represents an FTP logging response from the Fastly API.

type FieldError

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

FieldError represents a custom error type for API data fields.

func NewFieldError

func NewFieldError(kind string) *FieldError

NewFieldError returns an error that formats as the given text.

func (*FieldError) Error

func (e *FieldError) Error() string

Error fulfills the error interface.

NOTE: some fields are optional but still need to present an error depending on the API they are associated with. For example, when updating a service the 'name' and 'comment' fields are both optional, but at least one of them needs to be provided for the API call to have any purpose (otherwise the API backend will just reject the call, thus being a waste of network resources).

Because of this we allow modifying the error message to reflect whether the field was either missing or some other type of error occurred.

func (*FieldError) Message

func (e *FieldError) Message(msg string) *FieldError

Message prints the error message.

type GCS

type GCS struct {
	AccountName       string     `mapstructure:"account_name"`
	Bucket            string     `mapstructure:"bucket_name"`
	CompressionCodec  string     `mapstructure:"compression_codec"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	GzipLevel         int        `mapstructure:"gzip_level"`
	MessageType       string     `mapstructure:"message_type"`
	Name              string     `mapstructure:"name"`
	Path              string     `mapstructure:"path"`
	Period            int        `mapstructure:"period"`
	Placement         string     `mapstructure:"placement"`
	ResponseCondition string     `mapstructure:"response_condition"`
	SecretKey         string     `mapstructure:"secret_key"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TimestampFormat   string     `mapstructure:"timestamp_format"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	User              string     `mapstructure:"user"`
}

GCS represents an GCS logging response from the Fastly API.

type GetACLEntryInput

type GetACLEntryInput struct {
	// ACLID is an alphanumeric string identifying an ACL Entry (required).
	ACLID string
	// ID is an alphanumeric string identifying an ACL Entry (required).
	ID string
	// ServiceID is an alphanumeric string identifying the service (required).
	ServiceID string
}

GetACLEntryInput is the input parameter to GetACLEntry function.

type GetACLInput

type GetACLInput struct {
	// Name is the name of the ACL to get (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetACLInput is the input parameter to GetACL function.

type GetAPIEventInput

type GetAPIEventInput struct {
	// EventID is the ID of the event and is required.
	EventID string
}

GetAPIEventInput is used as input to the GetAPIEvent function.

type GetAPIEventsFilterInput

type GetAPIEventsFilterInput struct {
	// CustomerID to Limit the returned events to a specific customer.
	CustomerID string
	// EventType to limit the returned events to a specific event type. See above for event codes.
	EventType string
	// MaxResults is the number of items to return on each paginated page.
	MaxResults int
	// PageNumber is the pagination page number.
	PageNumber int
	// ServiceID to limit the returned events to a specific service.
	ServiceID string
	// UserID to limit the returned events to a specific user.
	UserID string
}

GetAPIEventsFilterInput is used as input to the GetAPIEvents function.

type GetAPIEventsResponse

type GetAPIEventsResponse struct {
	Events []*Event
	Links  EventsPaginationInfo `json:"links"`
}

GetAPIEventsResponse is the data returned to the user from a GetAPIEvents call

type GetBackendInput

type GetBackendInput struct {
	// Name is the name of the backend to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetBackendInput is used as input to the GetBackend function.

type GetBigQueryInput

type GetBigQueryInput struct {
	// Name is the name of the BigQuery to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetBigQueryInput is used as input to the GetBigQuery function.

type GetBillingInput

type GetBillingInput struct {
	// Month is a 2-digit month.
	Month uint8
	// Year is a 4-digit year.
	Year uint16
}

GetBillingInput is used as input to the GetBilling function.

type GetBlobStorageInput

type GetBlobStorageInput struct {
	// Name is the name of the blob storage to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetBlobStorageInput is used as input to the GetBlobStorage function.

type GetBulkCertificateInput

type GetBulkCertificateInput struct {
	// ID is an alphanumeric string identifying a TLS bulk certificate.
	ID string
}

GetBulkCertificateInput is used as input to the GetBulkCertificate function.

type GetCacheSettingInput

type GetCacheSettingInput struct {
	// Name is the name of the cache setting to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetCacheSettingInput is used as input to the GetCacheSetting function.

type GetCloudfilesInput

type GetCloudfilesInput struct {
	// Name is the name of the Cloudfiles to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetCloudfilesInput is used as input to the GetCloudfiles function.

type GetConditionInput

type GetConditionInput struct {
	// Name is the name of the condition to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetConditionInput is used as input to the GetCondition function.

type GetConfigStoreInput added in v7.5.0

type GetConfigStoreInput struct {
	// ID is the ID of the config store (required).
	ID string
}

GetConfigStoreInput is the input to GetConfigStore.

type GetConfigStoreItemInput added in v7.5.0

type GetConfigStoreItemInput struct {
	// StoreID is the ID of the item's config store (required).
	StoreID string
	// Key is the name of the config store item to fetch (required).
	Key string
}

GetConfigStoreItemInput is the input to the GetConfigStoreItem.

type GetConfigStoreMetadataInput added in v7.5.0

type GetConfigStoreMetadataInput struct {
	// ID is the ID of the config store (required).
	ID string
}

GetConfigStoreMetadataInput is the input to GetConfigStoreMetadata.

type GetCustomTLSCertificateInput

type GetCustomTLSCertificateInput struct {
	// ID is an alphanumeric string identifying a TLS certificate.
	ID string
}

GetCustomTLSCertificateInput is used as input to the GetCustomTLSCertificate function.

type GetCustomTLSConfigurationInput

type GetCustomTLSConfigurationInput struct {
	// ID is an alphanumeric string identifying a TLS configuration.
	ID string
	// Include captures related objects. Optional, comma-separated values. Permitted values: dns_records.
	Include string
}

GetCustomTLSConfigurationInput is used as input to the GetCustomTLSConfiguration function.

type GetDatadogInput

type GetDatadogInput struct {
	// Name is the name of the Datadog to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetDatadogInput is used as input to the GetDatadog function.

type GetDictionaryInfoInput

type GetDictionaryInfoInput struct {
	// ID is the alphanumeric string identifying a dictionary.
	ID string
	// ServiceID is the ID of the service Dictionary belongs to (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetDictionaryInfoInput is used as input to the GetDictionary function.

type GetDictionaryInput

type GetDictionaryInput struct {
	// Name is the name of the dictionary to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetDictionaryInput is used as input to the GetDictionary function.

type GetDictionaryItemInput

type GetDictionaryItemInput struct {
	// DictionaryID is the ID of the dictionary to retrieve items for (required).
	DictionaryID string
	// ItemKey is the name of the dictionary item to fetch (required).
	ItemKey string
	// ServiceID is the ID of the service (required).
	ServiceID string
}

GetDictionaryItemInput is used as input to the GetDictionaryItem function.

type GetDiffInput

type GetDiffInput struct {
	// Format is an optional field to specify the format with which the diff will
	// be returned. Acceptable values are "text" (default), "html", or
	// "html_simple".
	Format string
	// From is the version to diff from. This can either be a string indicating a
	// positive number (e.g. "1") or a negative number from "-1" down ("-1" is the
	// latest version).
	From int
	// ServiceID is the ID of the service (required).
	ServiceID string
	// To is the version to diff up to. The same rules for From apply.
	To int
}

GetDiffInput is used as input to the GetDiff function.

type GetDigitalOceanInput

type GetDigitalOceanInput struct {
	// Name is the name of the DigitalOcean to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetDigitalOceanInput is used as input to the GetDigitalOcean function.

type GetDirectorBackendInput

type GetDirectorBackendInput struct {
	// Backend is the name of the backend (required).
	Backend string
	// Director is the name of the director (required).
	Director string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetDirectorBackendInput is used as input to the GetDirectorBackend function.

type GetDirectorInput

type GetDirectorInput struct {
	// Name is the name of the director to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetDirectorInput is used as input to the GetDirector function.

type GetDomainInput

type GetDomainInput struct {
	// Name is the name of the domain to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetDomainInput is used as input to the GetDomain function.

type GetDynamicSnippetInput

type GetDynamicSnippetInput struct {
	// ID is the ID of the Snippet to fetch (required).
	ID string
	// ServiceID is the ID of the service (required).
	ServiceID string
}

GetDynamicSnippetInput is used as input to the GetDynamicSnippet function.

type GetERLInput

type GetERLInput struct {
	// ERLID is an alphanumeric string identifying the rate limiter (required).
	ERLID string
}

GetERLInput is used as input to the GetERL function.

type GetElasticsearchInput

type GetElasticsearchInput struct {
	// Name is the name of the Elasticsearch endpoint to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetElasticsearchInput is used as input to the GetElasticsearch function.

type GetFTPInput

type GetFTPInput struct {
	// Name is the name of the FTP to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetFTPInput is used as input to the GetFTP function.

type GetGCSInput

type GetGCSInput struct {
	// Name is the name of the GCS to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetGCSInput is used as input to the GetGCS function.

type GetGeneratedVCLInput

type GetGeneratedVCLInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetGeneratedVCLInput is used as input to the GetGeneratedVCL function.

type GetGzipInput

type GetGzipInput struct {
	// Name is the name of the Gzip to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetGzipInput is used as input to the GetGzip function.

type GetHTTP3Input added in v7.2.0

type GetHTTP3Input struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetHTTP3Input is used as input to the GetHTTP3 function.

type GetHTTPSInput

type GetHTTPSInput struct {
	// Name is the name of the HTTPS endpoint to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetHTTPSInput is used as input to the GetHTTPS function.

type GetHeaderInput

type GetHeaderInput struct {
	// Name is the name of the header to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetHeaderInput is used as input to the GetHeader function.

type GetHealthCheckInput

type GetHealthCheckInput struct {
	// Name is the name of the health check to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetHealthCheckInput is used as input to the GetHealthCheck function.

type GetHerokuInput

type GetHerokuInput struct {
	// Name is the name of the heroku to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetHerokuInput is used as input to the GetHeroku function.

type GetHoneycombInput

type GetHoneycombInput struct {
	// Name is the name for the real-time logging configuration (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetHoneycombInput is used as input to the GetHoneycomb function.

type GetKafkaInput

type GetKafkaInput struct {
	// Name is the name of the kafka to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetKafkaInput is used as input to the GetKafka function.

type GetKinesisInput

type GetKinesisInput struct {
	// Name is the name of the Kinesis logging object to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetKinesisInput is used as input to the GetKinesis function.

type GetLogentriesInput

type GetLogentriesInput struct {
	// Name is the name of the logentries to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetLogentriesInput is used as input to the GetLogentries function.

type GetLogglyInput

type GetLogglyInput struct {
	// Name is the name of the loggly to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetLogglyInput is used as input to the GetLoggly function.

type GetLogshuttleInput

type GetLogshuttleInput struct {
	// Name is the name of the logshuttle to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetLogshuttleInput is used as input to the GetLogshuttle function.

type GetNewRelicInput

type GetNewRelicInput struct {
	// Name is the name of the newrelic to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetNewRelicInput is used as input to the GetNewRelic function.

type GetObjectStoreInput

type GetObjectStoreInput struct {
	// ID is the ID of the store to fetch (required).
	ID string
}

GetObjectStoreInput is the input to the GetObjectStore function.

type GetObjectStoreKeyInput

type GetObjectStoreKeyInput struct {
	// ID is the ID of the object store (required).
	ID string
	// Key is the key to fetch (required).
	Key string
}

GetObjectStoreKeyInput is the input to the GetObjectStoreKey function.

type GetOpenstackInput

type GetOpenstackInput struct {
	// Name is the name of the Openstack to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetOpenstackInput is used as input to the GetOpenstack function.

type GetOriginMetricsInput

type GetOriginMetricsInput struct {
	// Cursor is the value from a previous response to retrieve the next page. To request the first page, this should be empty.
	Cursor string
	// Datacenters limits query to one or more specific POPs.
	Datacenters []string
	// Downsample is the duration of sample windows.
	Downsample string
	// End is a valid ISO-8601-formatted date and time, or UNIX timestamp, indicating the exclusive end of the query time range. If not provided, a default is chosen based on the provided downsample value.
	End time.Time
	// GroupBy is the dimensions to return in the query.
	GroupBy []string
	// Hosts limits query to one or more specific origin hosts.
	Hosts []string
	// Metrics is the metric to retrieve. Up to ten metrics are accepted.
	Metrics []string
	// Regions limits query to one or more specific geographic regions.
	Regions []string
	// ServiceID is an alphanumeric string identifying the service.
	ServiceID string
	// Start is a valid ISO-8601-formatted date and time, or UNIX timestamp, indicating the inclusive start of the query time range. If not provided, a default is chosen based on the provided downsample value.
	Start time.Time
}

GetOriginMetricsInput is the input to an OriginMetrics request.

type GetPackageInput

type GetPackageInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string `mapstructure:"service_id"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `mapstructure:"version"`
}

GetPackageInput is used as input to the GetPackage function.

type GetPapertrailInput

type GetPapertrailInput struct {
	// Name is the name of the papertrail to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetPapertrailInput is used as input to the GetPapertrail function.

type GetPoolInput

type GetPoolInput struct {
	// Name is the name of the pool of interest (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetPoolInput is used as input to the GetPool function.

type GetPrivateKeyInput

type GetPrivateKeyInput struct {
	// ID is an alphanumeric string identifying a private Key.
	ID string
}

GetPrivateKeyInput is an input to the GetPrivateKey function. Allowed values for the fields are described at https://developer.fastly.com/reference/api/tls/platform/.

type GetPubsubInput

type GetPubsubInput struct {
	// Name is the name of the Pubsub to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetPubsubInput is used as input to the GetPubsub function.

type GetRealtimeStatsInput

type GetRealtimeStatsInput struct {
	Limit uint32
	// ServiceID is the ID of the service.
	ServiceID string
	// Timestamp is a value to use for subsequent requests.
	Timestamp uint64
}

GetRealtimeStatsInput is an input parameter to GetRealtimeStats function

type GetRequestSettingInput

type GetRequestSettingInput struct {
	// Name is the name of the request settings to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetRequestSettingInput is used as input to the GetRequestSetting function.

type GetResourceInput added in v7.1.0

type GetResourceInput struct {
	// ID is an alphanumeric string identifying the resource link (required).
	ID string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetResourceInput is used as input to the GetResource function.

type GetResponseObjectInput

type GetResponseObjectInput struct {
	// Name is the name of the response object to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetResponseObjectInput is used as input to the GetResponseObject function.

type GetS3Input

type GetS3Input struct {
	// Name is the name of the S3 to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetS3Input is used as input to the GetS3 function.

type GetSFTPInput

type GetSFTPInput struct {
	// Name is the name of the SFTP to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetSFTPInput is used as input to the GetSFTP function.

type GetScalyrInput

type GetScalyrInput struct {
	// Name is the name of the scalyr to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetScalyrInput is used as input to the GetScalyr function.

type GetSecretInput

type GetSecretInput struct {
	// ID of the Secret Store (required).
	ID string
	// Name of the Secret (required).
	Name string
}

GetSecretInput is used as input to the GetSecret function.

type GetSecretStoreInput

type GetSecretStoreInput struct {
	// ID of the Secret Store (required).
	ID string
}

GetSecretStoreInput is used as input to the GetSecretStore function.

type GetServerInput

type GetServerInput struct {
	// PoolID is the ID of the pool (required).
	PoolID string
	// Server is an alphanumeric string identifying a Server (required).
	Server string
	// ServiceID is the ID of the service (required).
	ServiceID string
}

GetServerInput is used as input to the GetServer function.

type GetServiceAuthorizationInput

type GetServiceAuthorizationInput struct {
	// ID of the service authorization to retrieve (required).
	ID string
}

GetServiceAuthorizationInput is used as input to the GetServiceAuthorization function.

type GetServiceInput

type GetServiceInput struct {
	// ID is an alphanumeric string identifying the service (required).
	ID string
}

GetServiceInput is used as input to the GetService function.

type GetSettingsInput

type GetSettingsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetSettingsInput is used as input to the GetSettings function.

type GetSnippetInput

type GetSnippetInput struct {
	// Name is the name of the Snippet to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetSnippetInput is used as input to the GetSnippet function.

type GetSplunkInput

type GetSplunkInput struct {
	// Name is the name of the splunk to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetSplunkInput is used as input to the GetSplunk function.

type GetStatsInput

type GetStatsInput struct {
	// By is the duration of sample windows.
	By string
	// Field is the name of the stats field.
	Field string
	// From is the timestamp that defines the start of the window for which to fetch statistics, including the timestamp itself.
	From string
	// Region limits query to a specific geographic region.
	Region string
	// Service is the ID of the service.
	Service string
	// To is the timestamp that defines the end of the window for which to fetch statistics.
	To string
}

GetStatsInput is an input to the GetStats function. Stats can be filtered by a Service ID, an individual stats field, time range (From and To), sampling rate (By) and/or Fastly region (Region) Allowed values for the fields are described at https://developer.fastly.com/reference/api/metrics-stats/

type GetSumologicInput

type GetSumologicInput struct {
	// Name is the name of the sumologic to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetSumologicInput is used as input to the GetSumologic function.

type GetSyslogInput

type GetSyslogInput struct {
	// Name is the name of the syslog to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetSyslogInput is used as input to the GetSyslog function.

type GetTLSActivationInput

type GetTLSActivationInput struct {
	// ID is an alphanumeric string identifying a TLS activation.
	ID string
	// Include related objects. Optional, comma-separated values. Permitted values: tls_certificate, tls_configuration, and tls_domain.
	Include *string
}

GetTLSActivationInput is used as input to the GetTLSActivation function.

type GetTLSSubscriptionInput

type GetTLSSubscriptionInput struct {
	// ID of the TLS subscription to fetch.
	ID string
	// Include related objects. Optional, comma-separated values. Permitted values: tls_authorizations.
	Include *string
}

GetTLSSubscriptionInput is used as input to the GetTLSSubscription function

type GetUsageInput

type GetUsageInput struct {
	// By is the duration of sample windows.
	By string
	// From is the timestamp that defines the start of the window for which to fetch statistics, including the timestamp itself.
	From string
	// Region limits query to a specific geographic region.
	Region string
	// To is the timestamp that defines the end of the window for which to fetch statistics.
	To string
}

GetUsageInput is used as an input to the GetUsage function Value for the input are described at https://developer.fastly.com/reference/api/metrics-stats/

type GetUserInput

type GetUserInput struct {
	// ID is an alphanumeric string identifying the user (required).
	ID string
}

GetUserInput is used as input to the GetUser function.

type GetVCLInput

type GetVCLInput struct {
	// Name is the name of the VCL to fetch (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetVCLInput is used as input to the GetVCL function.

type GetVersionInput

type GetVersionInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the version number to fetch (required).
	ServiceVersion int
}

GetVersionInput is the input to the GetVersion function.

type GetWAFInput

type GetWAFInput struct {
	// ID is the WAF's ID.
	ID string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

GetWAFInput is used as input to the GetWAF function.

type GetWAFVersionInput

type GetWAFVersionInput struct {
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

GetWAFVersionInput used as input for GetWAFVersion function.

type Gzip

type Gzip struct {
	CacheCondition string     `mapstructure:"cache_condition"`
	ContentTypes   string     `mapstructure:"content_types"`
	CreatedAt      *time.Time `mapstructure:"created_at"`
	DeletedAt      *time.Time `mapstructure:"deleted_at"`
	Extensions     string     `mapstructure:"extensions"`
	Name           string     `mapstructure:"name"`
	ServiceID      string     `mapstructure:"service_id"`
	ServiceVersion int        `mapstructure:"version"`
	UpdatedAt      *time.Time `mapstructure:"updated_at"`
}

Gzip represents an Gzip logging response from the Fastly API.

type HTTP3 added in v7.2.0

type HTTP3 struct {
	CreatedAt       *time.Time `mapstructure:"created_at" json:"created_at"`
	DeletedAt       *time.Time `mapstructure:"deleted_at" json:"deleted_at"`
	FeatureRevision int        `mapstructure:"feature_revision" json:"feature_revision"`
	ServiceID       string     `mapstructure:"service_id" json:"service_id"`
	ServiceVersion  int        `mapstructure:"version" json:"version"`
	UpdatedAt       *time.Time `mapstructure:"updated_at" json:"updated_at"`
}

HTTP3 represents a response from the Fastly API.

type HTTPError

type HTTPError struct {
	Errors []*ErrorObject `mapstructure:"errors"`
	// StatusCode is the HTTP status code (2xx-5xx).
	StatusCode int
}

HTTPError is a custom error type that wraps an HTTP status code with some helper functions.

func NewHTTPError

func NewHTTPError(resp *http.Response) *HTTPError

NewHTTPError creates a new HTTP error from the given code.

func (*HTTPError) Error

func (e *HTTPError) Error() string

Error implements the error interface and returns the string representing the error text that includes the status code and the corresponding status text.

func (*HTTPError) IsNotFound

func (e *HTTPError) IsNotFound() bool

IsNotFound returns true if the HTTP error code is a 404, false otherwise.

func (*HTTPError) String

func (e *HTTPError) String() string

String implements the stringer interface and returns the string representing the string text that includes the status code and corresponding status text.

type HTTPS

type HTTPS struct {
	ContentType       string     `mapstructure:"content_type"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	HeaderName        string     `mapstructure:"header_name"`
	HeaderValue       string     `mapstructure:"header_value"`
	JSONFormat        string     `mapstructure:"json_format"`
	MessageType       string     `mapstructure:"message_type"`
	Method            string     `mapstructure:"method"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	RequestMaxBytes   int        `mapstructure:"request_max_bytes"`
	RequestMaxEntries int        `mapstructure:"request_max_entries"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TLSCACert         string     `mapstructure:"tls_ca_cert"`
	TLSClientCert     string     `mapstructure:"tls_client_cert"`
	TLSClientKey      string     `mapstructure:"tls_client_key"`
	TLSHostname       string     `mapstructure:"tls_hostname"`
	URL               string     `mapstructure:"url"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

HTTPS represents an HTTPS Logging response from the Fastly API.

type Header struct {
	Action            HeaderAction `mapstructure:"action"`
	CacheCondition    string       `mapstructure:"cache_condition"`
	CreatedAt         *time.Time   `mapstructure:"created_at"`
	DeletedAt         *time.Time   `mapstructure:"deleted_at"`
	Destination       string       `mapstructure:"dst"`
	IgnoreIfSet       bool         `mapstructure:"ignore_if_set"`
	Name              string       `mapstructure:"name"`
	Priority          int          `mapstructure:"priority"`
	Regex             string       `mapstructure:"regex"`
	RequestCondition  string       `mapstructure:"request_condition"`
	ResponseCondition string       `mapstructure:"response_condition"`
	ServiceID         string       `mapstructure:"service_id"`
	ServiceVersion    int          `mapstructure:"version"`
	Source            string       `mapstructure:"src"`
	Substitution      string       `mapstructure:"substitution"`
	Type              HeaderType   `mapstructure:"type"`
	UpdatedAt         *time.Time   `mapstructure:"updated_at"`
}

Header represents a header response from the Fastly API.

type HeaderAction

type HeaderAction string

HeaderAction is a type of header action.

const (
	// HeaderActionSet is a header action that sets or resets a header.
	HeaderActionSet HeaderAction = "set"

	// HeaderActionAppend is a header action that appends to an existing header.
	HeaderActionAppend HeaderAction = "append"

	// HeaderActionDelete is a header action that deletes a header.
	HeaderActionDelete HeaderAction = "delete"

	// HeaderActionRegex is a header action that performs a single regex
	// replacement on a header.
	HeaderActionRegex HeaderAction = "regex"

	// HeaderActionRegexRepeat is a header action that performs a global regex
	// replacement on a header.
	HeaderActionRegexRepeat HeaderAction = "regex_repeat"
)

func HeaderActionPtr

func HeaderActionPtr(t HeaderAction) *HeaderAction

HeaderActionPtr returns pointer to HeaderAction.

type HeaderType

type HeaderType string

HeaderType is a type of header.

const (
	// HeaderTypeRequest is a header type that performs on the request before
	// lookups.
	HeaderTypeRequest HeaderType = "request"

	// HeaderTypeFetch is a header type that performs on the request to the origin
	// server.
	HeaderTypeFetch HeaderType = "fetch"

	// HeaderTypeCache is a header type that performs on the response before it's
	// store in the cache.
	HeaderTypeCache HeaderType = "cache"

	// HeaderTypeResponse is a header type that performs on the response before
	// delivering to the client.
	HeaderTypeResponse HeaderType = "response"
)

func HeaderTypePtr

func HeaderTypePtr(t HeaderType) *HeaderType

HeaderTypePtr returns pointer to HeaderType.

type HealthCheck

type HealthCheck struct {
	CheckInterval    int        `mapstructure:"check_interval"`
	Comment          string     `mapstructure:"comment"`
	CreatedAt        *time.Time `mapstructure:"created_at"`
	DeletedAt        *time.Time `mapstructure:"deleted_at"`
	ExpectedResponse int        `mapstructure:"expected_response"`
	HTTPVersion      string     `mapstructure:"http_version"`
	Headers          []string   `mapstructure:"headers"`
	Host             string     `mapstructure:"host"`
	Initial          int        `mapstructure:"initial"`
	Method           string     `mapstructure:"method"`
	Name             string     `mapstructure:"name"`
	Path             string     `mapstructure:"path"`
	ServiceID        string     `mapstructure:"service_id"`
	ServiceVersion   int        `mapstructure:"version"`
	Threshold        int        `mapstructure:"threshold"`
	Timeout          int        `mapstructure:"timeout"`
	UpdatedAt        *time.Time `mapstructure:"updated_at"`
	Window           int        `mapstructure:"window"`
}

HealthCheck represents a health check response from the Fastly API.

type Heroku

type Heroku struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Token             string     `mapstructure:"token"`
	URL               string     `mapstructure:"url"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

Heroku represents a heroku response from the Fastly API.

type Honeycomb

type Honeycomb struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	Dataset           string     `mapstructure:"dataset"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Token             string     `mapstructure:"token"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

Honeycomb represents a honeycomb response from the Fastly API.

type IPAddrs

type IPAddrs []string

IPAddrs is a sortable list of IP addresses returned by the Fastly API.

type InsertObjectStoreKeyInput

type InsertObjectStoreKeyInput struct {
	// ID is the ID of the object store (required).
	ID string
	// Key is the key to add (required).
	Key string
	// Value is the value to insert (required).
	Value string
}

InsertObjectStoreKeyInput is the input to the InsertObjectStoreKey function.

type Kafka

type Kafka struct {
	AuthMethod        string     `mapstructure:"auth_method"`
	Brokers           string     `mapstructure:"brokers"`
	CompressionCodec  string     `mapstructure:"compression_codec"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	ParseLogKeyvals   bool       `mapstructure:"parse_log_keyvals"`
	Password          string     `mapstructure:"password"`
	Placement         string     `mapstructure:"placement"`
	RequestMaxBytes   int        `mapstructure:"request_max_bytes"`
	RequiredACKs      string     `mapstructure:"required_acks"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TLSCACert         string     `mapstructure:"tls_ca_cert"`
	TLSClientCert     string     `mapstructure:"tls_client_cert"`
	TLSClientKey      string     `mapstructure:"tls_client_key"`
	TLSHostname       string     `mapstructure:"tls_hostname"`
	Topic             string     `mapstructure:"topic"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	UseTLS            bool       `mapstructure:"use_tls"`
	User              string     `mapstructure:"user"`
}

Kafka represents a kafka response from the Fastly API.

type Kinesis

type Kinesis struct {
	AccessKey         string     `mapstructure:"access_key"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	IAMRole           string     `mapstructure:"iam_role"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	Region            string     `mapstructure:"region"`
	ResponseCondition string     `mapstructure:"response_condition"`
	SecretKey         string     `mapstructure:"secret_key"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	StreamName        string     `mapstructure:"topic"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

Kinesis represents a Kinesis response from the Fastly API.

type LatestVersionInput

type LatestVersionInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
}

LatestVersionInput is the input to the LatestVersion function.

type ListACLEntriesInput

type ListACLEntriesInput struct {
	// ACLID is an alphanumeric string identifying a ACL (required).
	ACLID string
	// Direction is the direction in which to sort results.
	Direction string
	// Page is the current page.
	Page int
	// PerPage is the number of records per page.
	PerPage int
	// ServiceID is an alphanumeric string identifying the service (required).
	ServiceID string
	// Sort is the field on which to sort.
	Sort string
}

ListACLEntriesInput is the input parameter to ListACLEntries function.

type ListACLEntriesPaginator

type ListACLEntriesPaginator struct {
	CurrentPage int
	LastPage    int
	NextPage    int
	// contains filtered or unexported fields
}

ListACLEntriesPaginator implements the PaginatorACLEntries interface.

func (*ListACLEntriesPaginator) GetNext

func (p *ListACLEntriesPaginator) GetNext() ([]*ACLEntry, error)

GetNext retrieves data in the next page

func (*ListACLEntriesPaginator) HasNext

func (p *ListACLEntriesPaginator) HasNext() bool

HasNext returns a boolean indicating whether more pages are available

func (*ListACLEntriesPaginator) Remaining

func (p *ListACLEntriesPaginator) Remaining() int

Remaining returns the remaining page count

type ListACLsInput

type ListACLsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListACLsInput is used as input to the ListACLs function.

type ListAllWAFActiveRulesInput

type ListAllWAFActiveRulesInput struct {
	// FilterMessage limits results to active rules with the specified message.
	FilterMessage string
	// FilterModSedID limits results to active rules that represent the specified ModSecurity modsec_rule_id.
	FilterModSedID string
	// FilterStatus limits results to active rules with the specified status.
	FilterStatus string
	// Include captures relationships. Optional, comma-separated values. Permitted values: waf_rule_revision and waf_firewall_version.
	Include string
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

ListAllWAFActiveRulesInput used as input for listing all WAF active rules.

type ListAllWAFRuleExclusionsInput

type ListAllWAFRuleExclusionsInput struct {
	// FilterExclusionType limits results to exclusions with the specified exclusions type.
	FilterExclusionType *string
	// FilterModSedID limits results to exclusions that represent the specified ModSecurity modsec_rule_id.
	FilterModSedID *string
	// FilterName limits results to exclusions with the specified exclusion name.
	FilterName *string
	// Include captures relationships. Optional. Permitted values: waf_rules.
	Include []string
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

ListAllWAFRuleExclusionsInput used as input for listing all WAF rule exclusions.

type ListAllWAFRulesInput

type ListAllWAFRulesInput struct {
	// ExcludeMocSecIDs excludes individual rules by modsecurity rule IDs.
	ExcludeMocSecIDs []int
	// FilterModSecIDs limits the returned rules to a set by modsecurity rule IDs.
	FilterModSecIDs []int
	// FilterPublishers limits the returned rules to a set by publishers.
	FilterPublishers []string
	// FilterTagNames limits the returned rules to a set linked to a tag by name.
	FilterTagNames []string
	// Include captures relationships. Optional, comma-separated values. Permitted values: waf_tags and waf_rule_revisions.
	Include string
}

ListAllWAFRulesInput used as input for listing all WAF rules.

type ListAllWAFVersionsInput

type ListAllWAFVersionsInput struct {
	// Include captures relationships. Optional, comma-separated values. Permitted values: waf_firewall_versions.
	Include string
	// WAFID is the Web Application Firewall's ID.
	WAFID string
}

ListAllWAFVersionsInput used as input for listing all WAF versions.

type ListBackendsInput

type ListBackendsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListBackendsInput is used as input to the ListBackends function.

type ListBigQueriesInput

type ListBigQueriesInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListBigQueriesInput is used as input to the ListBigQueries function.

type ListBlobStoragesInput

type ListBlobStoragesInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListBlobStoragesInput is used as input to the ListBlobStorages function.

type ListBulkCertificatesInput

type ListBulkCertificatesInput struct {
	// FilterTLSDomainsIDMatch filters certificates by their matching, fully-qualified domain name. Returns all partial matches. Must provide a value longer than 3 characters.
	FilterTLSDomainsIDMatch string
	// PageNumber is the page index for pagination.
	PageNumber int
	// PageSize is the number of keys per page.
	PageSize int
	// Sort is the order in which to list certificates. Valid values are created_at, not_before, not_after. May precede any value with a - for descending.
	Sort string
}

ListBulkCertificatesInput is used as input to the ListBulkCertificates function.

type ListCacheSettingsInput

type ListCacheSettingsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListCacheSettingsInput is used as input to the ListCacheSettings function.

type ListCloudfilesInput

type ListCloudfilesInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListCloudfilesInput is used as input to the ListCloudfiles function.

type ListConditionsInput

type ListConditionsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListConditionsInput is used as input to the ListConditions function.

type ListConfigStoreItemsInput added in v7.5.0

type ListConfigStoreItemsInput struct {
	// StoreID is the ID of the config store to retrieve items for (required).
	StoreID string
}

ListConfigStoreItemsInput is the input to ListConfigStoreItems.

type ListConfigStoreServicesInput added in v7.5.0

type ListConfigStoreServicesInput struct {
	// ID is the ID of the config store (required).
	ID string
}

ListConfigStoreServicesInput is the input to ListConfigStoreServices.

type ListCustomTLSCertificatesInput

type ListCustomTLSCertificatesInput struct {
	// FilterNotAfter limits the returned certificates to those that expire prior to the specified date in UTC. Accepts parameters: lte (e.g., filter[not_after][lte]=2020-05-05).
	FilterNotAfter string
	// FilterTLSDomainsID limits the returned certificates to those that include the specific domain.
	FilterTLSDomainsID string
	// Include captures related objects. Optional, comma-separated values. Permitted values: tls_activations.
	Include string
	// PageNumber is the page index for pagination.
	PageNumber int
	// PageSize is the number of keys per page.
	PageSize int
	// Sort is the order in which to list certificates. Valid values are created_at, not_before, not_after. May precede any value with a - for descending.
	Sort string
}

ListCustomTLSCertificatesInput is used as input to the Client.ListCustomTLSCertificates function.

type ListCustomTLSConfigurationsInput

type ListCustomTLSConfigurationsInput struct {
	// FilterBulk is whether or not to only include bulk=true configurations
	FilterBulk bool
	// Include captures related objects. Optional, comma-separated values. Permitted values: dns_records.
	Include string
	// PageNumber is the page index for pagination.
	PageNumber int
	// PageSize is the number of keys per page.
	PageSize int
}

ListCustomTLSConfigurationsInput is used as input to the ListCustomTLSConfigurationsInput function.

type ListCustomerTokensInput

type ListCustomerTokensInput struct {
	// CustomerID is an alphanumeric string identifying the customer (required).
	CustomerID string
}

ListCustomerTokensInput is used as input to the ListCustomerTokens function.

type ListCustomerUsersInput

type ListCustomerUsersInput struct {
	// CustomerID is an alphanumeric string identifying the customer (required).
	CustomerID string
}

ListCustomerUsersInput is used as input to the ListCustomerUsers function.

type ListDatadogInput

type ListDatadogInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string

	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListDatadogInput is used as input to the ListDatadog function.

type ListDictionariesInput

type ListDictionariesInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListDictionariesInput is used as input to the ListDictionaries function.

type ListDictionaryItemsInput

type ListDictionaryItemsInput struct {
	// DictionaryID is the ID of the dictionary to retrieve items for (required).
	DictionaryID string
	// Direction is the direction in which to sort results.
	Direction string
	// Page is the current page.
	Page int
	// PerPage is the number of records per page.
	PerPage int
	// ServiceID is the ID of the service (required).
	ServiceID string
	// Sort is the field on which to sort.
	Sort string
}

ListDictionaryItemsInput is used as input to the ListDictionaryItems function.

type ListDictionaryItemsPaginator

type ListDictionaryItemsPaginator struct {
	CurrentPage int
	LastPage    int
	NextPage    int
	// contains filtered or unexported fields
}

ListDictionaryItemsPaginator implements the PaginatorDictionaryItems interface.

func (*ListDictionaryItemsPaginator) GetNext

GetNext retrieves data in the next page

func (*ListDictionaryItemsPaginator) HasNext

func (p *ListDictionaryItemsPaginator) HasNext() bool

HasNext returns a boolean indicating whether more pages are available

func (*ListDictionaryItemsPaginator) Remaining

func (p *ListDictionaryItemsPaginator) Remaining() int

Remaining returns the remaining page count

type ListDigitalOceansInput

type ListDigitalOceansInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListDigitalOceansInput is used as input to the ListDigitalOceans function.

type ListDirectorsInput

type ListDirectorsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListDirectorsInput is used as input to the ListDirectors function.

type ListDomainsInput

type ListDomainsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListDomainsInput is used as input to the ListDomains function.

type ListERLsInput

type ListERLsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the version number to fetch (required).
	ServiceVersion int
}

ListERLsInput is used as input to the ListERLs function.

type ListElasticsearchInput

type ListElasticsearchInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListElasticsearchInput is used as input to the ListElasticsearch function.

type ListFTPsInput

type ListFTPsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListFTPsInput is used as input to the ListFTPs function.

type ListGCSsInput

type ListGCSsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListGCSsInput is used as input to the ListGCSs function.

type ListGzipsInput

type ListGzipsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListGzipsInput is used as input to the ListGzips function.

type ListHTTPSInput

type ListHTTPSInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListHTTPSInput is used as input to the ListHTTPS function.

type ListHeadersInput

type ListHeadersInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListHeadersInput is used as input to the ListHeaders function.

type ListHealthChecksInput

type ListHealthChecksInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListHealthChecksInput is used as input to the ListHealthChecks function.

type ListHerokusInput

type ListHerokusInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListHerokusInput is used as input to the ListHerokus function.

type ListHoneycombsInput

type ListHoneycombsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListHoneycombsInput is used as input to the ListHoneycombs function.

type ListKafkasInput

type ListKafkasInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListKafkasInput is used as input to the ListKafkas function.

type ListKinesisInput

type ListKinesisInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListKinesisInput is used as input to the ListKinesis function.

type ListLogentriesInput

type ListLogentriesInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListLogentriesInput is used as input to the ListLogentries function.

type ListLogglyInput

type ListLogglyInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListLogglyInput is used as input to the ListLoggly function.

type ListLogshuttlesInput

type ListLogshuttlesInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListLogshuttlesInput is used as input to the ListLogshuttles function.

type ListNewRelicInput

type ListNewRelicInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListNewRelicInput is used as input to the ListNewRelic function.

type ListObjectStoreKeysInput

type ListObjectStoreKeysInput struct {
	// Cursor is used for paginating through results.
	Cursor string
	// ID is the ID of the object store to list keys for (required).
	ID string
	// Limit is the maximum number of items included the response.
	Limit int
}

ListObjectStoreKeysInput is the input to the ListObjectStoreKeys function.

type ListObjectStoreKeysPaginator

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

ListObjectStoreKeysPaginator is the opaque type for a ListObjectStoreKeys calls with pagination.

func (*ListObjectStoreKeysPaginator) Err

Err returns any error from the paginator.

func (*ListObjectStoreKeysPaginator) Keys

Keys returns the current set of keys retrieved by the paginator.

func (*ListObjectStoreKeysPaginator) Next

Next advanced the paginator.

type ListObjectStoreKeysResponse

type ListObjectStoreKeysResponse struct {
	// Data is the list of keys
	Data []string
	// Meta is the information for pagination
	Meta map[string]string
}

ListObjectStoreKeysResponse retrieves all resources.

type ListObjectStoresInput

type ListObjectStoresInput struct {
	// Cursor is used for paginating through results.
	Cursor string
	// Limit is the maximum number of items included the response.
	Limit int
}

ListObjectStoresInput is used as an input to the ListObjectStores function.

type ListObjectStoresPaginator

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

ListObjectStoresPaginator is the opaque type for a ListObjectStores call with pagination.

func (*ListObjectStoresPaginator) Err

Err returns any error from the pagination.

func (*ListObjectStoresPaginator) Next

func (l *ListObjectStoresPaginator) Next() bool

Next advances the paginator and fetches the next set of object stores.

func (*ListObjectStoresPaginator) Stores

func (l *ListObjectStoresPaginator) Stores() []ObjectStore

Stores returns the current partial list of object stores.

type ListObjectStoresResponse

type ListObjectStoresResponse struct {
	// Data is the list of returned object stores
	Data []ObjectStore
	// Meta is the information for pagination
	Meta map[string]string
}

ListObjectStoresResponse retrieves all resources.

type ListOpenstackInput

type ListOpenstackInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListOpenstackInput is used as input to the ListOpenstack function.

type ListPapertrailsInput

type ListPapertrailsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListPapertrailsInput is used as input to the ListPapertrails function.

type ListPoolsInput

type ListPoolsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListPoolsInput is used as input to the ListPools function.

type ListPrivateKeysInput

type ListPrivateKeysInput struct {
	// FilterInUse is the returned keys to those without any matching TLS certificates.
	FilterInUse string
	// PageNumber is the page index for pagination.
	PageNumber int
	// PageSize is the number of keys per page.
	PageSize int
}

ListPrivateKeysInput is used as input to the ListPrivateKeys function.

type ListPubsubsInput

type ListPubsubsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListPubsubsInput is used as input to the ListPubsubs function.

type ListRequestSettingsInput

type ListRequestSettingsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListRequestSettingsInput is used as input to the ListRequestSettings function.

type ListResourcesInput added in v7.1.0

type ListResourcesInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListResourcesInput is used as input to the ListResources function.

type ListResponseObjectsInput

type ListResponseObjectsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListResponseObjectsInput is used as input to the ListResponseObjects function.

type ListS3sInput

type ListS3sInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListS3sInput is used as input to the ListS3s function.

type ListSFTPsInput

type ListSFTPsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListSFTPsInput is used as input to the ListSFTPs function.

type ListScalyrsInput

type ListScalyrsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListScalyrsInput is used as input to the ListScalyrs function.

type ListSecretStoresInput

type ListSecretStoresInput struct {
	// Cursor is the pagination cursor (optional).
	Cursor string
	// Limit is the desired number of Secret Stores (optional).
	Limit int
}

ListSecretStoresInput is used as input to the ListSecretStores function.

type ListSecretsInput

type ListSecretsInput struct {
	// Cursor is the pagination cursor (optional).
	Cursor string
	// ID of the Secret Store (required).
	ID string
	// Limit is the desired number of Secrets (optional).
	Limit int
}

ListSecretsInput is used as input to the ListSecrets function.

type ListServersInput

type ListServersInput struct {
	// PoolID is the ID of the pool (required).
	PoolID string
	// ServiceID is the ID of the service (required).
	ServiceID string
}

ListServersInput is used as input to the ListServers function.

type ListServiceAuthorizationsInput

type ListServiceAuthorizationsInput struct {
	// PageNumber requests a specific page of service authorizations.
	PageNumber int
	// PageSize limits the number of returned service authorizations.
	PageSize int
}

ListServiceAuthorizationsInput is used as input to the ListServiceAuthorizations function.

type ListServiceDomainInput

type ListServiceDomainInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
}

ListServiceDomainInput is the input parameter to the ListServiceDomains function.

type ListServicesInput

type ListServicesInput struct {
	// Direction is the direction in which to sort results.
	Direction string
	// Page is the current page.
	Page int
	// PerPage is the number of records per page.
	PerPage int
	// Sort is the field on which to sort.
	Sort string
}

ListServicesInput is used as input to the ListServices function.

type ListServicesPaginator

type ListServicesPaginator struct {
	CurrentPage int
	LastPage    int
	NextPage    int
	// contains filtered or unexported fields
}

ListServicesPaginator implements the PaginatorServices interface.

func (*ListServicesPaginator) GetNext

func (p *ListServicesPaginator) GetNext() ([]*Service, error)

GetNext retrieves data in the next page

func (*ListServicesPaginator) HasNext

func (p *ListServicesPaginator) HasNext() bool

HasNext returns a boolean indicating whether more pages are available

func (*ListServicesPaginator) Remaining

func (p *ListServicesPaginator) Remaining() int

Remaining returns the remaining page count

type ListSnippetsInput

type ListSnippetsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListSnippetsInput is used as input to the ListSnippets function.

type ListSplunksInput

type ListSplunksInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListSplunksInput is used as input to the ListSplunks function.

type ListSumologicsInput

type ListSumologicsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListSumologicsInput is used as input to the ListSumologics function.

type ListSyslogsInput

type ListSyslogsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListSyslogsInput is used as input to the ListSyslogs function.

type ListTLSActivationsInput

type ListTLSActivationsInput struct {
	// FilterTLSCertificateID limits the returned activations to a specific certificate.
	FilterTLSCertificateID string
	// FilterTLSConfigurationID limits the returned activations to a specific TLS configuration.
	FilterTLSConfigurationID string
	// FilterTLSDomainID limits the returned rules to a specific domain name.
	FilterTLSDomainID string
	// Include captures related objects. Optional, comma-separated values. Permitted values: tls_certificate, tls_configuration, and tls_domain.
	Include string
	// PageNumber is the page index for pagination.
	PageNumber int
	// PageSize is the number of activations per page.
	PageSize int
}

ListTLSActivationsInput is used as input to the ListTLSActivations function.

type ListTLSDomainsInput

type ListTLSDomainsInput struct {
	// FilterInUse limits the returned domains to those currently using Fastly to terminate TLS with SNI (that is, domains considered "in use")
	FilterInUse *bool
	// FilterTLSCertificateID Limits the returned domains to those listed in the given TLS certificate's SAN list
	FilterTLSCertificateID string
	// FilterTLSSubscriptionID limits the returned domains to those for a given TLS subscription
	FilterTLSSubscriptionID string
	// Include captures related objects
	Include string
	// PageNumber is the current page.
	PageNumber int
	// PageSize is the number of records per page
	PageSize int
	// Sort is the order in which to list the results by creation date
	Sort string
}

ListTLSDomainsInput is used as input to Client.ListTLSDomains.

type ListTLSSubscriptionsInput

type ListTLSSubscriptionsInput struct {
	// Limit the returned subscriptions to those that have currently active orders. Permitted values: true.
	FilterActiveOrders bool
	// Limit the returned subscriptions by state. Valid values are pending, processing, issued, and renewing. Accepts parameters: not (e.g., filter[state][not]=renewing).
	FilterState string
	// Limit the returned subscriptions to those that include the specific domain.
	FilterTLSDomainsID string
	// Include related objects. Optional, comma-separated values. Permitted values: tls_authorizations.
	Include string
	// Current page.
	PageNumber int
	// Number of records per page.
	PageSize int
	// The order in which to list the results by creation date. Accepts created_at (ascending sort order) or -created_at (descending).
	Sort string
}

ListTLSSubscriptionsInput is used as input to the ListTLSSubscriptions function

type ListVCLsInput

type ListVCLsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListVCLsInput is used as input to the ListVCLs function.

type ListVersionsInput

type ListVersionsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
}

ListVersionsInput is the input to the ListVersions function.

type ListWAFActiveRulesInput

type ListWAFActiveRulesInput struct {
	// FilterMessage limits results to active rules with the specified message.
	FilterMessage string
	// FilterModSedID limits results to active rules that represent the specified ModSecurity modsec_rule_id.
	FilterModSedID string
	// FilterStatus limits results to active rules with the specified status.
	FilterStatus string
	// Include captures relationships. Optional, comma-separated values. Permitted values: waf_rule_revision and waf_firewall_version.
	Include string
	// PageNumber requests a specific page of active rules.
	PageNumber int
	// PageSize limits the number of returned pages.
	PageSize int
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

ListWAFActiveRulesInput used as input for listing a WAF's active rules.

type ListWAFRuleExclusionsInput

type ListWAFRuleExclusionsInput struct {
	// FilterExclusionType limits results to exclusions with the specified exclusions type.
	FilterExclusionType *string
	// FilterModSedID limits results to exclusions that represent the specified ModSecurity modsec_rule_id.
	FilterModSedID *string
	// FilterName limits results to exclusions with the specified exclusion name.
	FilterName *string
	// Include captures relationships. Optional. Permitted values: waf_rules.
	Include []string
	// PageNumber requests a specific page of exclusions.
	PageNumber *int
	// PageSize limits the number of returned pages.
	PageSize *int
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

ListWAFRuleExclusionsInput used as input for listing a WAF's rule exclusions.

type ListWAFRulesInput

type ListWAFRulesInput struct {
	// ExcludeModSecIDs excludes individual rules by modsecurity rule IDs.
	ExcludeModSecIDs []int
	// FilterModSecIDs limits the returned rules to a set by modsecurity rule IDs.
	FilterModSecIDs []int
	// FilterPublishers limits the returned rules to a set by publishers.
	FilterPublishers []string
	// FilterTagNames limits the returned rules to a set linked to list of tags by name.
	FilterTagNames []string
	// Include captures relationships. Optional, comma-separated values. Permitted values: waf_tags and waf_rule_revisions.
	Include string
	// PageNumber requests a specific page of rules.
	PageNumber int
	// PageSize limits the number of returned rules.
	PageSize int
}

ListWAFRulesInput used as input for listing WAF rules.

type ListWAFVersionsInput

type ListWAFVersionsInput struct {
	// Include captures relationships. Optional, comma-separated values. Permitted values: waf_firewall_versions.
	Include string
	// PageNumber requests a specific page of WAFs.
	PageNumber int
	// PageSize limits the number records returned.
	PageSize int
	// WAFID is the Web Application Firewall's ID.
	WAFID string
}

ListWAFVersionsInput used as input for listing WAF versions.

type ListWAFsInput

type ListWAFsInput struct {
	// FilterService specifies the service ID of the returned firewalls.
	FilterService string
	// FilterVersion specifies the version of the service for the firewalls.
	FilterVersion int
	// Include captures relationships. Optional, comma-separated values. Permitted values: waf_firewall_versions.
	Include string
	// PageNumber requests a specific page of firewalls.
	PageNumber int
	// PageSize limits the number of returned firewalls.
	PageSize int
}

ListWAFsInput is used as input to the ListWAFs function.

type LockVersionInput

type LockVersionInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

LockVersionInput is the input to the LockVersion function.

type LockWAFVersionInput

type LockWAFVersionInput struct {
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

LockWAFVersionInput used as input for locking a WAF version.

type Logentries

type Logentries struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	Port              int        `mapstructure:"port"`
	Region            string     `mapstructure:"region"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Token             string     `mapstructure:"token"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	UseTLS            bool       `mapstructure:"use_tls"`
}

Logentries represents a logentries response from the Fastly API.

type Loggly

type Loggly struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Token             string     `mapstructure:"token"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

Loggly represents a loggly response from the Fastly API.

type Logshuttle

type Logshuttle struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Token             string     `mapstructure:"token"`
	URL               string     `mapstructure:"url"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

Logshuttle represents a logshuttle response from the Fastly API.

type ManagedLogging

type ManagedLogging struct {
	ServiceID string `mapstructure:"service_id"`
}

ManagedLogging represents a managed logging endpoint for a service.

type ManagedLoggingKind

type ManagedLoggingKind uint

ManagedLoggingKind type represents multiple kinds of log streams the managed logging feature will support.

const (
	// ManagedLoggingUnset is a log stream variant.
	ManagedLoggingUnset ManagedLoggingKind = iota
	// ManagedLoggingInstanceOutput is a log stream variant.
	ManagedLoggingInstanceOutput
)

type NewRelic

type NewRelic struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	Region            string     `mapstructure:"region"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Token             string     `mapstructure:"token"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

NewRelic represents a newrelic response from the Fastly API.

type ObjectStore

type ObjectStore struct {
	CreatedAt *time.Time `mapstructure:"created_at"`
	ID        string     `mapstructure:"id"`
	Name      string     `mapstructure:"name"`
	UpdatedAt *time.Time `mapstructure:"updated_at"`
}

ObjectStore represents an Object Store response from the Fastly API.

type Openstack

type Openstack struct {
	AccessKey         string     `mapstructure:"access_key"`
	BucketName        string     `mapstructure:"bucket_name"`
	CompressionCodec  string     `mapstructure:"compression_codec"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	GzipLevel         int        `mapstructure:"gzip_level"`
	MessageType       string     `mapstructure:"message_type"`
	Name              string     `mapstructure:"name"`
	Path              string     `mapstructure:"path"`
	Period            int        `mapstructure:"period"`
	Placement         string     `mapstructure:"placement"`
	PublicKey         string     `mapstructure:"public_key"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TimestampFormat   string     `mapstructure:"timestamp_format"`
	URL               string     `mapstructure:"url"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	User              string     `mapstructure:"user"`
}

Openstack represents a Openstack response from the Fastly API.

type OriginData

type OriginData struct {
	Dimensions map[string]string `mapstructure:"dimensions"`
	Values     []OriginMetrics   `mapstructure:"values"`
}

OriginData represents the series of values over time for a single dimension combination.

type OriginInspector

type OriginInspector struct {
	Data   []OriginData `mapstructure:"data"`
	Meta   OriginMeta   `mapstructure:"meta"`
	Status string       `mapstructure:"status"`
}

OriginInspector represents the response format returned for a request to the historical Origin Inspector metrics endpoint.

type OriginMeta

type OriginMeta struct {
	Downsample string            `mapstructure:"downsample"`
	End        string            `mapstructure:"end"`
	Filters    map[string]string `mapstructure:"filters"`
	GroupBy    string            `mapstructure:"group_by"`
	Limit      int               `mapstructure:"limit"`
	Metric     string            `mapstructure:"metric"`
	NextCursor string            `mapstructure:"next_cursor"`
	Sort       string            `mapstructure:"sort"`
	Start      string            `mapstructure:"start"`
}

OriginMeta is the meta section returned for /metrics/origins responses

type OriginMetrics

type OriginMetrics struct {
	Latency0to1ms         uint64 `mapstructure:"latency_0_to_1ms"`
	Latency10000to60000ms uint64 `mapstructure:"latency_10000_to_60000ms"`
	Latency1000to5000ms   uint64 `mapstructure:"latency_1000_to_5000ms"`
	Latency100to250ms     uint64 `mapstructure:"latency_100_to_250ms"`
	Latency10to50ms       uint64 `mapstructure:"latency_10_to_50ms"`
	Latency1to5ms         uint64 `mapstructure:"latency_1_to_5ms"`
	Latency250to500ms     uint64 `mapstructure:"latency_250_to_500ms"`
	Latency5000to10000ms  uint64 `mapstructure:"latency_5000_to_10000ms"`
	Latency500to1000ms    uint64 `mapstructure:"latency_500_to_1000ms"`
	Latency50to100ms      uint64 `mapstructure:"latency_50_to_100ms"`
	Latency5to10ms        uint64 `mapstructure:"latency_5_to_10ms"`
	Latency60000ms        uint64 `mapstructure:"latency_60000ms"`
	RespBodyBytes         uint64 `mapstructure:"resp_body_bytes"`
	RespHeaderBytes       uint64 `mapstructure:"resp_header_bytes"`
	Responses             uint64 `mapstructure:"responses"`
	Status1xx             uint64 `mapstructure:"status_1xx"`
	Status200             uint64 `mapstructure:"status_200"`
	Status204             uint64 `mapstructure:"status_204"`
	Status206             uint64 `mapstructure:"status_206"`
	Status2xx             uint64 `mapstructure:"status_2xx"`
	Status301             uint64 `mapstructure:"status_301"`
	Status302             uint64 `mapstructure:"status_302"`
	Status304             uint64 `mapstructure:"status_304"`
	Status3xx             uint64 `mapstructure:"status_3xx"`
	Status400             uint64 `mapstructure:"status_400"`
	Status401             uint64 `mapstructure:"status_401"`
	Status403             uint64 `mapstructure:"status_403"`
	Status404             uint64 `mapstructure:"status_404"`
	Status416             uint64 `mapstructure:"status_416"`
	Status429             uint64 `mapstructure:"status_429"`
	Status4xx             uint64 `mapstructure:"status_4xx"`
	Status500             uint64 `mapstructure:"status_500"`
	Status501             uint64 `mapstructure:"status_501"`
	Status502             uint64 `mapstructure:"status_502"`
	Status503             uint64 `mapstructure:"status_503"`
	Status504             uint64 `mapstructure:"status_504"`
	Status505             uint64 `mapstructure:"status_505"`
	Status5xx             uint64 `mapstructure:"status_5xx"`
	Timestamp             uint64 `mapstructure:"timestamp"`
}

OriginMetrics represents the possible metrics that can be returned by a call to the Origin Inspector endpoints.

type Package

type Package struct {
	CreatedAt      *time.Time `mapstructure:"created_at"`
	DeletedAt      *time.Time `mapstructure:"deleted_at"`
	ID             string
	Metadata       PackageMetadata
	ServiceID      string     `mapstructure:"service_id"`
	ServiceVersion int        `mapstructure:"version"`
	UpdatedAt      *time.Time `mapstructure:"updated_at"`
}

Package is a container for data returned about a package.

func PopulatePackage

func PopulatePackage(body io.ReadCloser) (*Package, error)

PopulatePackage encapsulates the decoding of returned package data.

type PackageMetadata

type PackageMetadata struct {
	Authors     []string
	Description string
	HashSum     string
	Language    string
	Name        string
	Size        int64
}

PackageMetadata is a container for metadata returned about a package. It is a separate struct to allow correct serialisation by mapstructure - the raw data is returned as a json sub-block.

type PaginatorACLEntries

type PaginatorACLEntries interface {
	HasNext() bool
	Remaining() int
	GetNext() ([]*ACLEntry, error)
}

PaginatorACLEntries represents a paginator.

type PaginatorDictionaryItems

type PaginatorDictionaryItems interface {
	HasNext() bool
	Remaining() int
	GetNext() ([]*DictionaryItem, error)
}

PaginatorDictionaryItems represents a paginator.

type PaginatorServices

type PaginatorServices interface {
	HasNext() bool
	Remaining() int
	GetNext() ([]*Service, error)
}

PaginatorServices represents a paginator.

type Papertrail

type Papertrail struct {
	Address           string     `mapstructure:"address"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	Port              int        `mapstructure:"port"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

Papertrail represents a papertrail response from the Fastly API.

type Pool

type Pool struct {
	Comment          string     `mapstructure:"comment"`
	ConnectTimeout   int        `mapstructure:"connect_timeout"`
	CreatedAt        *time.Time `mapstructure:"created_at"`
	DeletedAt        *time.Time `mapstructure:"deleted_at"`
	FirstByteTimeout int        `mapstructure:"first_byte_timeout"`
	Healthcheck      string     `mapstructure:"healthcheck"`
	ID               string     `mapstructure:"id"`
	MaxConnDefault   int        `mapstructure:"max_conn_default"`
	MaxTLSVersion    string     `mapstructure:"max_tls_version"`
	MinTLSVersion    string     `mapstructure:"min_tls_version"`
	Name             string     `mapstructure:"name"`
	OverrideHost     string     `mapstructure:"override_host"`
	Quorum           int        `mapstructure:"quorum"`
	RequestCondition string     `mapstructure:"request_condition"`
	ServiceID        string     `mapstructure:"service_id"`
	ServiceVersion   int        `mapstructure:"version"`
	Shield           string     `mapstructure:"shield"`
	TLSCACert        string     `mapstructure:"tls_ca_cert"`
	TLSCertHostname  string     `mapstructure:"tls_cert_hostname"`
	TLSCheckCert     bool       `mapstructure:"tls_check_cert"`
	TLSCiphers       string     `mapstructure:"tls_ciphers"`
	TLSClientCert    string     `mapstructure:"tls_client_cert"`
	TLSClientKey     string     `mapstructure:"tls_client_key"`
	TLSSNIHostname   string     `mapstructure:"tls_sni_hostname"`
	Type             PoolType   `mapstructure:"type"`
	UpdatedAt        *time.Time `mapstructure:"updated_at"`
	UseTLS           bool       `mapstructure:"use_tls"`
}

Pool represents a pool response from the Fastly API.

type PoolType

type PoolType string

PoolType is a type of pool.

const (
	// PoolTypeRandom is a pool that does random direction.
	PoolTypeRandom PoolType = "random"

	// PoolTypeHash is a pool that does hash direction.
	PoolTypeHash PoolType = "hash"

	// PoolTypeClient ins a pool that does client direction.
	PoolTypeClient PoolType = "client"
)

func PoolTypePtr

func PoolTypePtr(t PoolType) *PoolType

PoolTypePtr returns pointer to PoolType.

type PrivateKey

type PrivateKey struct {
	CreatedAt     *time.Time `jsonapi:"attr,created_at,iso8601"`
	ID            string     `jsonapi:"primary,tls_private_key"`
	KeyLength     int        `jsonapi:"attr,key_length"`
	KeyType       string     `jsonapi:"attr,key_type"`
	Name          string     `jsonapi:"attr,name"`
	PublicKeySHA1 string     `jsonapi:"attr,public_key_sha1"`
	Replace       bool       `jsonapi:"attr,replace"`
}

PrivateKey represents a private key is used to sign a Certificate.

type Product added in v7.3.0

type Product int64

Product is a base for the different product variants.

const (
	ProductUndefined Product = iota
	ProductBrotliCompression
	ProductDomainInspector
	ProductFanout
	ProductImageOptimizer
	ProductOriginInspector
	ProductWebSockets
)

func (Product) String added in v7.3.0

func (p Product) String() string

type ProductEnablement added in v7.3.0

type ProductEnablement struct {
	Product ProductEnablementNested `mapstructure:"product"`
	Service ProductEnablementNested `mapstructure:"service"`
}

ProductEnablement represents a response from the Fastly API.

type ProductEnablementInput added in v7.3.0

type ProductEnablementInput struct {
	// ProductID is the ID of the product and is constrained by the Product type (required).
	ProductID Product
	// ServiceID is the ID of the service (required).
	ServiceID string
}

ProductEnablementInput is used as input to the various product API functions.

type ProductEnablementNested added in v7.3.0

type ProductEnablementNested struct {
	ID     string `mapstructure:"id,omitempty"`
	Object string `mapstructure:"object,omitempty"`
}

type Pubsub

type Pubsub struct {
	AccountName       string     `mapstructure:"account_name"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	ProjectID         string     `mapstructure:"project_id"`
	ResponseCondition string     `mapstructure:"response_condition"`
	SecretKey         string     `mapstructure:"secret_key"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Topic             string     `mapstructure:"topic"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	User              string     `mapstructure:"user"`
}

Pubsub represents an Pubsub logging response from the Fastly API.

type Purge

type Purge struct {
	// ID is the unique ID of the purge request.
	ID string `mapstructure:"id"`
	// Status is the status of the purge, usually "ok".
	Status string `mapstructure:"status"`
}

Purge is a response from a purge request.

type PurgeAllInput

type PurgeAllInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
}

PurgeAllInput is used as input to the Purge function.

type PurgeInput

type PurgeInput struct {
	// Soft performs a soft purge.
	Soft bool
	// URL is the URL to purge (required).
	URL string
}

PurgeInput is used as input to the Purge function.

type PurgeKeyInput

type PurgeKeyInput struct {
	// Key is the key to purge (required).
	Key string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// Soft performs a soft purge.
	Soft bool
}

PurgeKeyInput is used as input to the PurgeKey function.

type PurgeKeysInput

type PurgeKeysInput struct {
	// Keys are the keys to purge (required).
	Keys []string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// Soft performs a soft purge.
	Soft bool
}

PurgeKeysInput is used as input to the PurgeKeys function.

type RTSClient

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

RTSClient is the entrypoint to the Fastly's Realtime Stats API.

func NewRealtimeStatsClient

func NewRealtimeStatsClient() *RTSClient

NewRealtimeStatsClient instantiates a new Fastly API client for the realtime stats. This function requires the environment variable `FASTLY_API_KEY` is set and contains a valid API key to authenticate with Fastly.

func NewRealtimeStatsClientForEndpoint

func NewRealtimeStatsClientForEndpoint(token, endpoint string) (*RTSClient, error)

NewRealtimeStatsClientForEndpoint creates an RTSClient from a token and endpoint url. `token` is a Fastly API token and `endpoint` is RealtimeStatsEndpoint for the production realtime stats API.

func (*RTSClient) GetRealtimeStats

func (c *RTSClient) GetRealtimeStats(i *GetRealtimeStatsInput) (*RealtimeStatsResponse, error)

GetRealtimeStats returns realtime stats for a service based on the GetRealtimeStatsInput parameter. The realtime stats work in a rolling fashion where first request will return a timestamp which should be passed to the next call and so on. More details at https://developer.fastly.com/reference/api/metrics-stats/realtime/

func (*RTSClient) GetRealtimeStatsJSON

func (c *RTSClient) GetRealtimeStatsJSON(i *GetRealtimeStatsInput, dst interface{}) error

GetRealtimeStatsJSON fetches stats and decodes the response directly to the JSON struct dst.

type RealtimeData

type RealtimeData struct {
	// Aggregated aggregates measurements across all Fastly POPs.
	Aggregated *Stats `mapstructure:"aggregated"`
	// Datacenter groups measurements by POP.
	Datacenter map[string]*Stats `mapstructure:"datacenter"`
	// Recorded is the Unix timestamp at which this record's data was generated.
	Recorded uint64 `mapstructure:"recorded"`
}

RealtimeData represents combined stats for all Fastly's POPs and aggregate of them. It also includes a timestamp of when the stats were recorded

type RealtimeStatsResponse

type RealtimeStatsResponse struct {
	// AggregateDelay is how long the system will wait before aggregating messages for each second.
	AggregateDelay uint32 `mapstructure:"AggregateDelay"`
	// Data is a list of records, each representing one second of time.
	Data  []*RealtimeData `mapstructure:"Data"`
	Error string          `mapstructure:"Error"`
	// Timestamp is a value to use for subsequent requests.
	Timestamp uint64 `mapstructure:"Timestamp"`
}

RealtimeStatsResponse is a response from Fastly's real-time analytics endpoint

type RegionsResponse

type RegionsResponse struct {
	Data    []string          `mapstructure:"data"`
	Message string            `mapstructure:"msg"`
	Meta    map[string]string `mapstructure:"meta"`
	Status  string            `mapstructure:"status"`
}

RegionsResponse is a response from Fastly regions API endpoint

type RegionsUsage

type RegionsUsage map[string]*Usage

RegionsUsage is a list of aggregated usage data by Fastly's region

type RequestOptions

type RequestOptions struct {
	// Body is an io.Reader object that will be streamed or uploaded with the
	// Request.
	Body io.Reader
	// BodyLength is the final size of the Body.
	BodyLength int64
	// Headers is a map of key-value pairs that will be added to the Request.
	Headers map[string]string
	// HealthCheckHeaders indicates if there is any special parsing required to
	// support the health check API endpoint (refer to client.RequestForm).
	//
	// TODO: Lookout for this when it comes to the future code-generated API
	// client world, as this special case might get omitted accidentally.
	HealthCheckHeaders bool
	// Can this request run in parallel
	Parallel bool
	// Params is a map of key-value pairs that will be added to the Request.
	Params map[string]string
}

RequestOptions is the list of options to pass to the request.

type RequestSetting

type RequestSetting struct {
	Action           RequestSettingAction `mapstructure:"action"`
	BypassBusyWait   bool                 `mapstructure:"bypass_busy_wait"`
	CreatedAt        *time.Time           `mapstructure:"created_at"`
	DefaultHost      string               `mapstructure:"default_host"`
	DeletedAt        *time.Time           `mapstructure:"deleted_at"`
	ForceMiss        bool                 `mapstructure:"force_miss"`
	ForceSSL         bool                 `mapstructure:"force_ssl"`
	GeoHeaders       bool                 `mapstructure:"geo_headers"`
	HashKeys         string               `mapstructure:"hash_keys"`
	MaxStaleAge      int                  `mapstructure:"max_stale_age"`
	Name             string               `mapstructure:"name"`
	RequestCondition string               `mapstructure:"request_condition"`
	ServiceID        string               `mapstructure:"service_id"`
	ServiceVersion   int                  `mapstructure:"version"`
	TimerSupport     bool                 `mapstructure:"timer_support"`
	UpdatedAt        *time.Time           `mapstructure:"updated_at"`
	XForwardedFor    RequestSettingXFF    `mapstructure:"xff"`
}

RequestSetting represents a request setting response from the Fastly API.

type RequestSettingAction

type RequestSettingAction string

RequestSettingAction is a type of request setting action.

const (
	// RequestSettingActionLookup sets request handling to lookup via the cache.
	RequestSettingActionLookup RequestSettingAction = "lookup"

	// RequestSettingActionPass sets request handling to pass the cache.
	RequestSettingActionPass RequestSettingAction = "pass"
)

func RequestSettingActionPtr

func RequestSettingActionPtr(v RequestSettingAction) *RequestSettingAction

RequestSettingActionPtr returns a pointer to a RequestSettingAction.

type RequestSettingXFF

type RequestSettingXFF string

RequestSettingXFF is a type of X-Forwarded-For value to set.

const (
	// RequestSettingXFFClear clears any X-Forwarded-For headers.
	RequestSettingXFFClear RequestSettingXFF = "clear"

	// RequestSettingXFFLeave leaves any X-Forwarded-For headers untouched.
	RequestSettingXFFLeave RequestSettingXFF = "leave"

	// RequestSettingXFFAppend adds Fastly X-Forwarded-For headers.
	RequestSettingXFFAppend RequestSettingXFF = "append"

	// RequestSettingXFFAppendAll appends all Fastly X-Forwarded-For headers.
	RequestSettingXFFAppendAll RequestSettingXFF = "append_all"

	// RequestSettingXFFOverwrite clears any X-Forwarded-For headers and replaces
	// with Fastly ones.
	RequestSettingXFFOverwrite RequestSettingXFF = "overwrite"
)

func RequestSettingXFFPtr

func RequestSettingXFFPtr(v RequestSettingXFF) *RequestSettingXFF

RequestSettingXFFPtr returns a pointer to a RequestSettingXFF.

type ResetUserPasswordInput

type ResetUserPasswordInput struct {
	// Login is the login associated with the user and is typically an email address (required).
	Login string
}

ResetUserPasswordInput is used as input to the ResetUserPassword function.

type Resource added in v7.1.0

type Resource struct {
	// CreatedAt is the date and time in ISO 8601 format.
	CreatedAt *time.Time `mapstructure:"created_at" json:"created_at"`
	// CreatedAt is the date and time in ISO 8601 format.
	DeletedAt *time.Time `mapstructure:"deleted_at" json:"deleted_at"`
	// HREF is the path to the resource.
	HREF string `mapstructure:"href" json:"href"`
	// ID is an alphanumeric string identifying the resource link.
	ID string `mapstructure:"id" json:"id"`
	// Name is the name of the resource being linked to.
	Name string `mapstructure:"name" json:"name"`
	// ResourceID is the ID of the linked resource.
	ResourceID string `mapstructure:"resource_id" json:"resource_id"`
	// ResourceType is the type of the linked resource.
	ResourceType string `mapstructure:"resource_type" json:"resource_type"`
	// ServiceID is an alphanumeric string identifying the service.
	ServiceID string `mapstructure:"service_id" json:"service_id"`
	// ServiceVersion is an integer identifying a service version.
	ServiceVersion string `mapstructure:"version" json:"version"`
	// UpdatedAt is the date and time in ISO 8601 format.
	UpdatedAt *time.Time `mapstructure:"updated_at" json:"updated_at"`
}

Resource represents a response from the Fastly API.

type ResponseObject

type ResponseObject struct {
	CacheCondition   string     `mapstructure:"cache_condition"`
	Content          string     `mapstructure:"content"`
	ContentType      string     `mapstructure:"content_type"`
	CreatedAt        *time.Time `mapstructure:"created_at"`
	DeletedAt        *time.Time `mapstructure:"deleted_at"`
	Name             string     `mapstructure:"name"`
	RequestCondition string     `mapstructure:"request_condition"`
	Response         string     `mapstructure:"response"`
	ServiceID        string     `mapstructure:"service_id"`
	ServiceVersion   int        `mapstructure:"version"`
	Status           int        `mapstructure:"status"`
	UpdatedAt        *time.Time `mapstructure:"updated_at"`
}

ResponseObject represents a response object response from the Fastly API.

type S3

type S3 struct {
	ACL                          S3AccessControlList    `mapstructure:"acl"`
	AccessKey                    string                 `mapstructure:"access_key"`
	BucketName                   string                 `mapstructure:"bucket_name"`
	CompressionCodec             string                 `mapstructure:"compression_codec"`
	CreatedAt                    *time.Time             `mapstructure:"created_at"`
	DeletedAt                    *time.Time             `mapstructure:"deleted_at"`
	Domain                       string                 `mapstructure:"domain"`
	Format                       string                 `mapstructure:"format"`
	FormatVersion                int                    `mapstructure:"format_version"`
	GzipLevel                    int                    `mapstructure:"gzip_level"`
	IAMRole                      string                 `mapstructure:"iam_role"`
	MessageType                  string                 `mapstructure:"message_type"`
	Name                         string                 `mapstructure:"name"`
	Path                         string                 `mapstructure:"path"`
	Period                       int                    `mapstructure:"period"`
	Placement                    string                 `mapstructure:"placement"`
	PublicKey                    string                 `mapstructure:"public_key"`
	Redundancy                   S3Redundancy           `mapstructure:"redundancy"`
	ResponseCondition            string                 `mapstructure:"response_condition"`
	SecretKey                    string                 `mapstructure:"secret_key"`
	ServerSideEncryption         S3ServerSideEncryption `mapstructure:"server_side_encryption"`
	ServerSideEncryptionKMSKeyID string                 `mapstructure:"server_side_encryption_kms_key_id"`
	ServiceID                    string                 `mapstructure:"service_id"`
	ServiceVersion               int                    `mapstructure:"version"`
	TimestampFormat              string                 `mapstructure:"timestamp_format"`
	UpdatedAt                    *time.Time             `mapstructure:"updated_at"`
}

S3 represents a S3 response from the Fastly API.

type S3AccessControlList

type S3AccessControlList string

S3AccessControlList represents the control list variants for S3.

func S3AccessControlListPtr

func S3AccessControlListPtr(v S3AccessControlList) *S3AccessControlList

S3AccessControlListPtr returns a pointer to a S3AccessControlList.

type S3Redundancy

type S3Redundancy string

S3Redundancy represents the redundancy variants for S3.

func S3RedundancyPtr

func S3RedundancyPtr(v S3Redundancy) *S3Redundancy

S3RedundancyPtr returns a pointer to a S3Redundancy.

type S3ServerSideEncryption

type S3ServerSideEncryption string

S3ServerSideEncryption represents the encryption variants for S3.

func S3ServerSideEncryptionPtr

func S3ServerSideEncryptionPtr(v S3ServerSideEncryption) *S3ServerSideEncryption

S3ServerSideEncryptionPtr returns a pointer to a S3ServerSideEncryption.

type SAService

type SAService struct {
	ID string `jsonapi:"primary,service"`
}

SAService represents a service.

type SAUser

type SAUser struct {
	ID string `jsonapi:"primary,user"`
}

SAUser represents a service user account.

type SFTP

type SFTP struct {
	Address           string     `mapstructure:"address"`
	CompressionCodec  string     `mapstructure:"compression_codec"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	GzipLevel         int        `mapstructure:"gzip_level"`
	MessageType       string     `mapstructure:"message_type"`
	Name              string     `mapstructure:"name"`
	Password          string     `mapstructure:"password"`
	Path              string     `mapstructure:"path"`
	Period            int        `mapstructure:"period"`
	Placement         string     `mapstructure:"placement"`
	Port              int        `mapstructure:"port"`
	PublicKey         string     `mapstructure:"public_key"`
	ResponseCondition string     `mapstructure:"response_condition"`
	SSHKnownHosts     string     `mapstructure:"ssh_known_hosts"`
	SecretKey         string     `mapstructure:"secret_key"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TimestampFormat   string     `mapstructure:"timestamp_format"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	User              string     `mapstructure:"user"`
}

SFTP represents an SFTP logging response from the Fastly API.

type Scalyr

type Scalyr struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	Region            string     `mapstructure:"region"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	Token             string     `mapstructure:"token"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

Scalyr represents a scalyr response from the Fastly API.

type SearchServiceInput

type SearchServiceInput struct {
	// Name is the name of the service (required).
	Name string
}

SearchServiceInput is used as input to the SearchService function.

type Secret

type Secret struct {
	Name      string    `json:"name"`
	Digest    []byte    `json:"digest"` // Digest is an opaque hash of the secret.
	CreatedAt time.Time `json:"created_at"`
}

Secret is a Secret Store secret.

type SecretStore

type SecretStore struct {
	ID        string    `json:"id"`
	Name      string    `json:"name"`
	CreatedAt time.Time `json:"created_at"`
}

SecretStore represents a Secret Store response from the Fastly API.

type SecretStoreMeta

type SecretStoreMeta struct {
	// Limit is the limit of results returned.
	Limit int `json:"limit"`
	// NextCursor can be used on a subsequent request to fetch the next page of data.
	NextCursor string `json:"next_cursor,omitempty"`
}

SecretStoreMeta is the metadata returned from Secret Store paginated responses.

type SecretStores

type SecretStores struct {
	// Data is a list of Secret Stores.
	Data []SecretStore `json:"data"`
	// Meta contains response pagination data.
	Meta SecretStoreMeta `json:"meta"`
}

SecretStores represents a list of Secret Stores from the Fastly API.

type Secrets

type Secrets struct {
	// Data is a list of Secrets.
	Data []Secret `json:"data"`
	// Meta contains pagination data.
	Meta SecretStoreMeta `json:"meta"`
}

Secrets represents a list of Secrets from the Fastly API.

type Server

type Server struct {
	Address      string     `mapstructure:"address"`
	Comment      string     `mapstructure:"comment"`
	CreatedAt    *time.Time `mapstructure:"created_at"`
	DeletedAt    *time.Time `mapstructure:"deleted_at"`
	Disabled     bool       `mapstructure:"disabled"`
	ID           string     `mapstructure:"id"`
	MaxConn      int        `mapstructure:"max_conn"`
	OverrideHost string     `mapstructure:"override_host"`
	PoolID       string     `mapstructure:"pool_id"`
	Port         int        `mapstructure:"port"`
	ServiceID    string     `mapstructure:"service_id"`
	UpdatedAt    *time.Time `mapstructure:"updated_at"`
	Weight       int        `mapstructure:"weight"`
}

Server represents a server response from the Fastly API.

type Service

type Service struct {
	ActiveVersion int        `mapstructure:"version"`
	Comment       string     `mapstructure:"comment"`
	CreatedAt     *time.Time `mapstructure:"created_at"`
	CustomerID    string     `mapstructure:"customer_id"`
	DeletedAt     *time.Time `mapstructure:"deleted_at"`
	ID            string     `mapstructure:"id"`
	Name          string     `mapstructure:"name"`
	Type          string     `mapstructure:"type"`
	UpdatedAt     *time.Time `mapstructure:"updated_at"`
	Versions      []*Version `mapstructure:"versions"`
}

Service represents a server response from the Fastly API.

type ServiceAuthorization

type ServiceAuthorization struct {
	CreatedAt  *time.Time `jsonapi:"attr,created_at,iso8601"`
	DeletedAt  *time.Time `jsonapi:"attr,deleted_at,iso8601"`
	ID         string     `jsonapi:"primary,service_authorization"`
	Permission string     `jsonapi:"attr,permission,omitempty"`
	Service    *SAService `jsonapi:"relation,service,omitempty"`
	UpdatedAt  *time.Time `jsonapi:"attr,updated_at,iso8601"`
	User       *SAUser    `jsonapi:"relation,user,omitempty"`
}

ServiceAuthorization is the API response model.

type ServiceAuthorizations

type ServiceAuthorizations struct {
	Info  infoResponse
	Items []*ServiceAuthorization
}

ServiceAuthorizations is an object containing the list of ServiceAuthorization results.

type ServiceDetail

type ServiceDetail struct {
	ActiveVersion Version    `mapstructure:"active_version"`
	Comment       string     `mapstructure:"comment"`
	CreatedAt     *time.Time `mapstructure:"created_at"`
	CustomerID    string     `mapstructure:"customer_id"`
	DeletedAt     *time.Time `mapstructure:"deleted_at"`
	ID            string     `mapstructure:"id"`
	Name          string     `mapstructure:"name"`
	Type          string     `mapstructure:"type"`
	UpdatedAt     *time.Time `mapstructure:"updated_at"`
	Version       Version    `mapstructure:"version"`
	Versions      []*Version `mapstructure:"versions"`
}

ServiceDetail represents a server response from the Fastly API.

type ServiceDomain

type ServiceDomain struct {
	Comment        string     `mapstructure:"comment"`
	CreatedAt      *time.Time `mapstructure:"created_at"`
	DeletedAt      *time.Time `mapstructure:"deleted_at"`
	Locked         bool       `mapstructure:"locked"`
	Name           string     `mapstructure:"name"`
	ServiceID      string     `mapstructure:"service_id"`
	ServiceVersion int64      `mapstructure:"version"`
	UpdatedAt      *time.Time `mapstructure:"updated_at"`
}

ServiceDomain represents a server response from the Fastly API.

type ServiceDomainsList

type ServiceDomainsList []*ServiceDomain

ServiceDomainsList represents a list of service domains.

type ServicesByRegionsUsage

type ServicesByRegionsUsage map[string]*ServicesUsage

ServicesByRegionsUsage is a list of ServicesUsage by Fastly's region

type ServicesUsage

type ServicesUsage map[string]*Usage

ServicesUsage is a list of usage data by a service

type Settings

type Settings struct {
	DefaultHost     string `mapstructure:"general.default_host"`
	DefaultTTL      uint   `mapstructure:"general.default_ttl"`
	ServiceID       string `mapstructure:"service_id"`
	ServiceVersion  int    `mapstructure:"version"`
	StaleIfError    bool   `mapstructure:"general.stale_if_error"`
	StaleIfErrorTTL uint   `mapstructure:"general.stale_if_error_ttl"`
}

Settings represents a backend response from the Fastly API.

type Snippet

type Snippet struct {
	Content        string      `mapstructure:"content"`
	CreatedAt      *time.Time  `mapstructure:"created_at"`
	DeletedAt      *time.Time  `mapstructure:"deleted_at"`
	Dynamic        int         `mapstructure:"dynamic"`
	ID             string      `mapstructure:"id"`
	Name           string      `mapstructure:"name"`
	Priority       int         `mapstructure:"priority"`
	ServiceID      string      `mapstructure:"service_id"`
	ServiceVersion int         `mapstructure:"version"`
	Type           SnippetType `mapstructure:"type"`
	UpdatedAt      *time.Time  `mapstructure:"updated_at"`
}

Snippet is the Fastly Snippet object

type SnippetType

type SnippetType string

SnippetType is the type of VCL Snippet

const (
	// SnippetTypeInit sets the type to init
	SnippetTypeInit SnippetType = "init"

	// SnippetTypeRecv sets the type to recv
	SnippetTypeRecv SnippetType = "recv"

	// SnippetTypeHash sets the type to hash
	SnippetTypeHash SnippetType = "hash"

	// SnippetTypeHit sets the type to hit
	SnippetTypeHit SnippetType = "hit"

	// SnippetTypeMiss sets the type to miss
	SnippetTypeMiss SnippetType = "miss"

	// SnippetTypePass sets the type to pass
	SnippetTypePass SnippetType = "pass"

	// SnippetTypeFetch sets the type to fetch
	SnippetTypeFetch SnippetType = "fetch"

	// SnippetTypeError sets the type to error
	SnippetTypeError SnippetType = "error"

	// SnippetTypeDeliver sets the type to deliver
	SnippetTypeDeliver SnippetType = "deliver"

	// SnippetTypeLog sets the type to log
	SnippetTypeLog SnippetType = "log"

	// SnippetTypeNone sets the type to none
	SnippetTypeNone SnippetType = "none"
)

func SnippetTypePtr

func SnippetTypePtr(b SnippetType) *SnippetType

SnippetTypePtr is a helper function to get a pointer to string

type Splunk

type Splunk struct {
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	RequestMaxBytes   int        `mapstructure:"request_max_bytes"`
	RequestMaxEntries int        `mapstructure:"request_max_entries"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TLSCACert         string     `mapstructure:"tls_ca_cert"`
	TLSClientCert     string     `mapstructure:"tls_client_cert"`
	TLSClientKey      string     `mapstructure:"tls_client_key"`
	TLSHostname       string     `mapstructure:"tls_hostname"`
	Token             string     `mapstructure:"token"`
	URL               string     `mapstructure:"url"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	UseTLS            bool       `mapstructure:"use_tls"`
}

Splunk represents a splunk response from the Fastly API.

type Stats

type Stats struct {
	AttackRequestHeaderBytes  uint64      `mapstructure:"attack_req_header_bytes"` // Total header bytes received from requests that triggered a WAF rule.
	AttackRequestBodyBytes    uint64      `mapstructure:"attack_req_body_bytes"`   // Total body bytes received from requests that triggered a WAF rule.
	AttackResponseSynthBytes  uint64      `mapstructure:"attack_resp_synth_bytes"` // Total bytes delivered for requests that triggered a WAF rule and returned a synthetic response.
	BERequestBodyBytes        uint64      `mapstructure:"bereq_body_bytes"`        // Total body bytes sent to origin.
	BERequestHeaderbytes      uint64      `mapstructure:"bereq_header_bytes"`      // Total header bytes sent to origin.
	Bandwidth                 uint64      `mapstructure:"bandwidth"`               // Total bytes delivered (body_size + header_size).
	BilledBodyBytes           uint64      `mapstructure:"billed_body_bytes"`
	BilledHeaderBytes         uint64      `mapstructure:"billed_header_bytes"`
	Errors                    uint64      `mapstructure:"errors"`                   // Number of cache errors.
	HTTP2                     uint64      `mapstructure:"http2"`                    // Number of requests received over HTTP2.
	HitRatio                  float64     `mapstructure:"hit_ratio"`                // Ratio of cache hits to cache misses (between 0 and 1).
	Hits                      uint64      `mapstructure:"hits"`                     // Number of cache hits.
	HitsTime                  float64     `mapstructure:"hits_time"`                // Total amount of time spent processing cache hits (in seconds).
	IPv6                      uint64      `mapstructure:"ipv6"`                     // Number of requests that were received over IPv6.
	ImageOptimizer            uint64      `mapstructure:"imgopto"`                  // Number of responses that came from the Fastly Image Optimizer service.
	Log                       uint64      `mapstructure:"log"`                      // Number of log lines sent.
	Miss                      uint64      `mapstructure:"miss"`                     // Number of cache misses.
	MissHistogram             map[int]int `mapstructure:"miss_histogram"`           // Number of requests to origin in time buckets of 10s of milliseconds
	MissTime                  float64     `mapstructure:"miss_time"`                // Amount of time spent processing cache misses (in seconds).
	OTFP                      uint64      `mapstructure:"otfp"`                     // Number of responses that came from the Fastly On-the-Fly Packager for On Demand Streaming service for video-on-demand.
	ObjectSize100k            uint64      `mapstructure:"object_size_100k"`         // Number of objects served that were between 10KB and 100KB in size.
	ObjectSize100m            uint64      `mapstructure:"object_size_100m"`         // Number of objects served that were between 10MB and 100MB in size.
	ObjectSize10k             uint64      `mapstructure:"object_size_10k"`          // Number of objects served that were between 1KB and 10KB in size.
	ObjectSize10m             uint64      `mapstructure:"object_size_10m"`          // Number of objects served that were between 1MB and 10MB in size.
	ObjectSize1g              uint64      `mapstructure:"object_size_1g"`           // Number of objects served that were between 100MB and 1GB in size.
	ObjectSize1k              uint64      `mapstructure:"object_size_1k"`           // Number of objects served that were under 1KB in size.
	ObjectSize1m              uint64      `mapstructure:"object_size_1m"`           // Number of objects served that were between 100KB and 1MB in size.
	PCI                       uint64      `mapstructure:"pci"`                      // Number of responses with the PCI flag turned on.
	Pass                      uint64      `mapstructure:"pass"`                     // Number of requests that passed through the CDN without being cached.
	PassTime                  float64     `mapstructure:"pass_time"`                // Amount of time spent processing cache passes (in seconds).
	Pipe                      uint64      `mapstructure:"pipe"`                     // Optional. Pipe operations performed (legacy feature).
	RequestBodyBytes          uint64      `mapstructure:"req_body_bytes"`           // Total body bytes received.
	RequestHeaderBytes        uint64      `mapstructure:"req_header_bytes"`         // Total header bytes received.
	Requests                  uint64      `mapstructure:"requests"`                 // Number of requests processed.
	ResponseBodyBytes         uint64      `mapstructure:"resp_body_bytes"`          // Total body bytes delivered.
	ResponseHeaderBytes       uint64      `mapstructure:"resp_header_bytes"`        // Total header bytes delivered.
	Restarts                  uint64      `mapstructure:"restarts"`                 // Number of restarts performed.
	Shield                    uint64      `mapstructure:"shield"`                   // Number of requests from shield to origin.
	ShieldResponseBodyBytes   uint64      `mapstructure:"shield_resp_body_bytes"`   // Total body bytes delivered via a shield.
	ShieldResponseHeaderBytes uint64      `mapstructure:"shield_resp_header_bytes"` // Total header bytes delivered via a shield.
	Status1xx                 uint64      `mapstructure:"status_1xx"`               // Number of "Informational" category status codes delivered.
	Status200                 uint64      `mapstructure:"status_200"`               // Number of responses sent with status code 200 (Success).
	Status204                 uint64      `mapstructure:"status_204"`               // Number of responses sent with status code 204 (No Content).
	Status206                 uint64      `mapstructure:"status_206"`               // Number of responses sent with status code 206 (Partial Content).
	Status2xx                 uint64      `mapstructure:"status_2xx"`               // Number of "Success" status codes delivered.
	Status301                 uint64      `mapstructure:"status_301"`               // Number of responses sent with status code 301 (Moved Permanently).
	Status302                 uint64      `mapstructure:"status_302"`               // Number of responses sent with status code 302 (Found).
	Status304                 uint64      `mapstructure:"status_304"`               // Number of responses sent with status code 304 (Not Modified).
	Status3xx                 uint64      `mapstructure:"status_3xx"`               // Number of "Redirection" codes delivered.
	Status400                 uint64      `mapstructure:"status_400"`               // Number of responses sent with status code 400 (Bad Request).
	Status401                 uint64      `mapstructure:"status_401"`               // Number of responses sent with status code 401 (Unauthorized).
	Status403                 uint64      `mapstructure:"status_403"`               // Number of responses sent with status code 403 (Forbidden).
	Status404                 uint64      `mapstructure:"status_404"`               // Number of responses sent with status code 404 (Not Found).
	Status416                 uint64      `mapstructure:"status_416"`               // Number of responses sent with status code 416 (Range Not Satisfiable).
	Status4xx                 uint64      `mapstructure:"status_4xx"`               // Number of "Client Error" codes delivered.
	Status500                 uint64      `mapstructure:"status_500"`               // Number of responses sent with status code 500 (Internal Server Error).
	Status501                 uint64      `mapstructure:"status_501"`               // Number of responses sent with status code 501 (Not Implemented).
	Status502                 uint64      `mapstructure:"status_502"`               // Number of responses sent with status code 502 (Bad Gateway).
	Status503                 uint64      `mapstructure:"status_503"`               // Number of responses sent with status code 503 (Service Unavailable).
	Status504                 uint64      `mapstructure:"status_504"`               // Number of responses sent with status code 504 (Gateway Timeout).
	Status505                 uint64      `mapstructure:"status_505"`               // Number of responses sent with status code 505 (HTTP Version Not Supported).
	Status5xx                 uint64      `mapstructure:"status_5xx"`               // Number of "Server Error" codes delivered.
	Synth                     uint64      `mapstructure:"synth"`                    // Number of requests that returned synth response.
	TLS                       uint64      `mapstructure:"tls"`                      // Number of requests that were received over TLS.
	TLSv10                    uint64      `mapstructure:"tls_v10"`                  // Number of requests received over TLS 1.0.
	TLSv11                    uint64      `mapstructure:"tls_v11"`                  // Number of requests received over TLS 1.`.
	TLSv12                    uint64      `mapstructure:"tls_v12"`                  // Number of requests received over TLS 1.2.
	TLSv13                    uint64      `mapstructure:"tls_v13"`                  // Number of requests received over TLS 1.3.
	Uncachable                uint64      `mapstructure:"uncachable"`               // Number of requests that were designated uncachable.
	Video                     uint64      `mapstructure:"video"`                    // Number of responses with the video segment or video manifest MIME type (i.e., application/x-mpegurl, application/vnd.apple.mpegurl, application/f4m, application/dash+xml, application/vnd.ms-sstr+xml, ideo/mp2t, audio/aac, video/f4f, video/x-flv, video/mp4, audio/mp4).
	WAFBlocked                uint64      `mapstructure:"waf_blocked"`              // Number of requests that triggered a WAF rule and were blocked.
	WAFLogged                 uint64      `mapstructure:"waf_logged"`               // Number of requests that triggered a WAF rule and were logged.
	WAFPassed                 uint64      `mapstructure:"waf_passed"`               // Number of requests that triggered a WAF rule and were passed.
}

Stats represent metrics of a Fastly service

type StatsFieldResponse

type StatsFieldResponse struct {
	Data    map[string][]*Stats `mapstructure:"data"`
	Message string              `mapstructure:"msg"`
	Meta    map[string]string   `mapstructure:"meta"`
	Status  string              `mapstructure:"status"`
}

StatsFieldResponse is a response from the service stats/field API endpoint

type StatsResponse

type StatsResponse struct {
	Data    []*Stats          `mapstructure:"data"`
	Message string            `mapstructure:"msg"`
	Meta    map[string]string `mapstructure:"meta"`
	Status  string            `mapstructure:"status"`
}

StatsResponse is a response from the service stats API endpoint

type Sumologic

type Sumologic struct {
	Address           string     `mapstructure:"address"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	MessageType       string     `mapstructure:"message_type"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	URL               string     `mapstructure:"url"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
}

Sumologic represents a sumologic response from the Fastly API.

type Syslog

type Syslog struct {
	Address           string     `mapstructure:"address"`
	CreatedAt         *time.Time `mapstructure:"created_at"`
	DeletedAt         *time.Time `mapstructure:"deleted_at"`
	Format            string     `mapstructure:"format"`
	FormatVersion     int        `mapstructure:"format_version"`
	Hostname          string     `mapstructure:"hostname"`
	IPV4              string     `mapstructure:"ipv4"`
	MessageType       string     `mapstructure:"message_type"`
	Name              string     `mapstructure:"name"`
	Placement         string     `mapstructure:"placement"`
	Port              int        `mapstructure:"port"`
	ResponseCondition string     `mapstructure:"response_condition"`
	ServiceID         string     `mapstructure:"service_id"`
	ServiceVersion    int        `mapstructure:"version"`
	TLSCACert         string     `mapstructure:"tls_ca_cert"`
	TLSClientCert     string     `mapstructure:"tls_client_cert"`
	TLSClientKey      string     `mapstructure:"tls_client_key"`
	TLSHostname       string     `mapstructure:"tls_hostname"`
	Token             string     `mapstructure:"token"`
	UpdatedAt         *time.Time `mapstructure:"updated_at"`
	UseTLS            bool       `mapstructure:"use_tls"`
}

Syslog represents a syslog response from the Fastly API.

type TLSActivation

type TLSActivation struct {
	Certificate   *CustomTLSCertificate `jsonapi:"relation,tls_certificate"`
	Configuration *TLSConfiguration     `jsonapi:"relation,tls_configuration"` // TLSConfiguration type shared with BulkCertificate
	CreatedAt     *time.Time            `jsonapi:"attr,created_at,iso8601"`
	Domain        *TLSDomain            `jsonapi:"relation,tls_domain"` // TLSDomain type shared with BulkCertificate
	ID            string                `jsonapi:"primary,tls_activation"`
}

TLSActivation represents a /tls/activations response.

type TLSAuthorizationWarning added in v7.5.0

type TLSAuthorizationWarning struct {
	Type         string `jsonapi:"attr,type"`
	Instructions string `jsonapi:"attr,instructions"`
}

TLSAuthorizationWarning indicates possible issues with the TLS configuration.

type TLSAuthorizations

type TLSAuthorizations struct {
	// Challenges ...
	// See https://github.com/google/jsonapi/pull/99
	// WARNING: Nested structs only work with values, not pointers.
	Challenges []TLSChallenge            `jsonapi:"attr,challenges"`
	CreatedAt  *time.Time                `jsonapi:"attr,created_at,iso8601,omitempty"`
	ID         string                    `jsonapi:"primary,tls_authorization"`
	State      string                    `jsonapi:"attr,state,omitempty"`
	UpdatedAt  *time.Time                `jsonapi:"attr,updated_at,iso8601,omitempty"`
	Warnings   []TLSAuthorizationWarning `jsonapi:"attr,warnings,omitempty"`
}

TLSAuthorizations gives information needed to verify domain ownership in order to enable a TLSSubscription

type TLSChallenge

type TLSChallenge struct {
	RecordName string   `jsonapi:"attr,record_name"`
	RecordType string   `jsonapi:"attr,record_type"`
	Type       string   `jsonapi:"attr,type"`
	Values     []string `jsonapi:"attr,values"`
}

TLSChallenge represents a DNS record to be added for a specific type of domain ownership challenge

type TLSConfiguration

type TLSConfiguration struct {
	// ID is an alphanumeric string identifying a TLS configuration.
	ID string `jsonapi:"primary,tls_configuration"`
	// Type is a resource type (default: tls_configuration).
	Type string `jsonapi:"attr,type"`
}

TLSConfiguration represents the dedicated IP address pool that will be used to route traffic from the TLSDomain.

type TLSDomain

type TLSDomain struct {
	// Activations is a list of TLS Activations.
	Activations []*TLSActivation `jsonapi:"relation,tls_activations,omitempty"`
	// Certificates is a list of Custom TLS Certificates.
	Certificates []*CustomTLSCertificate `jsonapi:"relation,tls_certificates,omitempty"`
	// ID is the domain name.
	ID string `jsonapi:"primary,tls_domain"`
	// Subscriptions is a list of TLS Subscriptions.
	Subscriptions []*TLSSubscription `jsonapi:"relation,tls_subscriptions,omitempty"`
	// Type is the resource type (default: tls_domain).
	Type string `jsonapi:"attr,type"`
}

TLSDomain represents a domain (including wildcard domains) that is listed on a certificate's Subject Alternative Names (SAN) list.

type TLSSubscription

type TLSSubscription struct {
	Authorizations       []*TLSAuthorizations          `jsonapi:"relation,tls_authorizations"`
	CertificateAuthority string                        `jsonapi:"attr,certificate_authority"`
	Certificates         []*TLSSubscriptionCertificate `jsonapi:"relation,tls_certificates"`
	CommonName           *TLSDomain                    `jsonapi:"relation,common_name"`
	Configuration        *TLSConfiguration             `jsonapi:"relation,tls_configuration"`
	CreatedAt            *time.Time                    `jsonapi:"attr,created_at,iso8601"`
	Domains              []*TLSDomain                  `jsonapi:"relation,tls_domains"`
	ID                   string                        `jsonapi:"primary,tls_subscription"`
	State                string                        `jsonapi:"attr,state"`
	UpdatedAt            *time.Time                    `jsonapi:"attr,updated_at,iso8601"`
}

TLSSubscription represents a managed TLS certificate

type TLSSubscriptionCertificate

type TLSSubscriptionCertificate struct {
	ID string `jsonapi:"primary,tls_certificate"`
}

TLSSubscriptionCertificate represents a subscription certificate.

type Token

type Token struct {
	AccessToken string     `mapstructure:"access_token"`
	CreatedAt   *time.Time `mapstructure:"created_at"`
	ExpiresAt   *time.Time `mapstructure:"expires_at"`
	ID          string     `mapstructure:"id"`
	IP          string     `mapstructure:"ip"`
	LastUsedAt  *time.Time `mapstructure:"last_used_at"`
	Name        string     `mapstructure:"name"`
	Scope       TokenScope `mapstructure:"scope"`
	Services    []string   `mapstructure:"services"`
	UserID      string     `mapstructure:"user_id"`
}

Token represents an API token which are used to authenticate requests to the Fastly API.

type TokenScope

type TokenScope string

TokenScope is used to match possible authorization scopes

const (
	// GlobalScope is the default scope covering all supported capabilities.
	GlobalScope TokenScope = "global"
	// PurgeSelectScope allows purging with surrogate key and URL, disallows purging with purge all.
	PurgeSelectScope TokenScope = "purge_select"
	// PurgeAllScope allows purging an entire service via purge_all.
	PurgeAllScope TokenScope = "purge_all"
	// GlobalReadScope allows read-only access to account information, configuration, and stats.
	GlobalReadScope TokenScope = "global:read"
)

type UpdateACLEntryInput

type UpdateACLEntryInput struct {
	// ACLID is an alphanumeric string identifying a ACL (required).
	ACLID string `url:"-"`
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// ID is an alphanumeric string identifying an ACL Entry (required).
	ID string `url:"-"`
	// IP is an IP address.
	IP *string `url:"ip,omitempty"`
	// Negated is whether to negate the match. Useful primarily when creating individual exceptions to larger subnets.
	Negated *Compatibool `url:"negated,omitempty"`
	// ServiceID is an alphanumeric string identifying the service (required).
	ServiceID string `url:"-"`
	// Subnet is a number of bits for the subnet mask applied to the IP address.
	Subnet *int `url:"subnet,omitempty"`
}

UpdateACLEntryInput is the input parameter to UpdateACLEntry function.

type UpdateACLInput

type UpdateACLInput struct {
	// Name is the name of the ACL to update (required).
	Name string
	// NewName is the new name of the ACL to update (required).
	NewName *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

UpdateACLInput is the input parameter to UpdateACL function.

type UpdateBackendInput

type UpdateBackendInput struct {
	// Address is a hostname, IPv4, or IPv6 address for the backend.
	Address *string `url:"address,omitempty"`
	// AutoLoadbalance is whether or not this backend should be automatically load balanced.
	AutoLoadbalance *Compatibool `url:"auto_loadbalance,omitempty"`
	// BetweenBytesTimeout is the maximum duration in milliseconds that Fastly will wait while receiving no data on a download from a backend.
	BetweenBytesTimeout *int `url:"between_bytes_timeout,omitempty"`
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// ConnectTimeout is the maximum duration in milliseconds to wait for a connection to this backend to be established.
	ConnectTimeout *int `url:"connect_timeout,omitempty"`
	// ErrorThreshold is the number of errors to allow before the Backend is marked as down.
	ErrorThreshold *int `url:"error_threshold,omitempty"`
	// FirstByteTimeout is how long to wait for the first bytes in milliseconds.
	FirstByteTimeout *int `url:"first_byte_timeout,omitempty"`
	// HealthCheck is the name of the healthcheck to use with this backend.
	HealthCheck *string `url:"healthcheck,omitempty"`
	// KeepAliveTime is how long in seconds to keep a persistent connection to the backend between requests.
	KeepAliveTime *int `url:"keepalive_time,omitempty"`
	// MaxConn is the maximum number of concurrent connections this backend will accept.
	MaxConn *int `url:"max_conn,omitempty"`
	// MaxTLSVersion is the maximum allowed TLS version on SSL connections to this backend.
	MaxTLSVersion *string `url:"max_tls_version,omitempty"`
	// MinTLSVersion is the minimum allowed TLS version on SSL connections to this backend.
	MinTLSVersion *string `url:"min_tls_version,omitempty"`
	// Name is the name of the backend to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// OverrideHost is, if set, will replace the client-supplied HTTP Host header on connections to this backend.
	OverrideHost *string `url:"override_host,omitempty"`
	// Port is the port on which the backend server is listening for connections from Fastly.
	Port *int `url:"port,omitempty"`
	// RequestCondition is the name of a Condition, which if satisfied, will select this backend during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// SSLCACert is a CA certificate attached to origin.
	SSLCACert *string `url:"ssl_ca_cert,omitempty"`
	// SSLCertHostname is an overrides ssl_hostname, but only for cert verification.
	SSLCertHostname *string `url:"ssl_cert_hostname,omitempty"`
	// SSLCheckCert forces being strict on checking SSL certs.
	SSLCheckCert *Compatibool `url:"ssl_check_cert,omitempty"`
	// SSLCiphers is a list of OpenSSL ciphers to support for connections to this origin.
	SSLCiphers *string `url:"ssl_ciphers,omitempty"`
	// SSLClientCert is a client certificate attached to origin.
	SSLClientCert *string `url:"ssl_client_cert,omitempty"`
	// SSLClientKey is a client key attached to origin.
	SSLClientKey *string `url:"ssl_client_key,omitempty"`
	// SSLSNIHostname overrides ssl_hostname, but only for SNI in the handshake. Does not affect cert validation at all.
	SSLSNIHostname *string `url:"ssl_sni_hostname,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Shield is an identifier of the POP to use as a shield.
	Shield *string `url:"shield,omitempty"`
	// UseSSL indicates whether or not to require TLS for connections to this backend.
	UseSSL *Compatibool `url:"use_ssl,omitempty"`
	// Weight is the weight used to load balance this backend against others.
	Weight *int `url:"weight,omitempty"`
}

UpdateBackendInput is used as input to the UpdateBackend function.

type UpdateBigQueryInput

type UpdateBigQueryInput struct {
	// AccountName is the name of the Google Cloud Platform service account associated with the target log collection service.
	AccountName *string `url:"account_name,omitempty"`
	// Dataset is your BigQuery dataset.
	Dataset *string `url:"dataset,omitempty"`
	// Format is a Fastly log format string. Must produce JSON that matches the schema of your BigQuery table.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the BigQuery to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ProjectID is your Google Cloud Platform project ID.
	ProjectID *string `url:"project_id,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is your Google Cloud Platform account secret key. The private_key field in your service account authentication JSON. Not required if account_name is specified.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Table is your BigQuery table.
	Table *string `url:"table,omitempty"`
	// Template is a BigQuery table name suffix template.
	Template *string `url:"template_suffix,omitempty"`
	// User is your Google Cloud Platform service account email address. The client_email field in your service account authentication JSON. Not required if account_name is specified.
	User *string `url:"user,omitempty"`
}

UpdateBigQueryInput is used as input to the UpdateBigQuery function.

type UpdateBlobStorageInput

type UpdateBlobStorageInput struct {
	// AccountName is the unique Azure Blob Storage namespace in which your data objects are stored.
	AccountName *string `url:"account_name,omitempty"`
	// CompressionCodec is the codec used for compressing your logs (valid values are zstd, snappy, and gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Container is the name of the Azure Blob Storage container in which to store logs.
	Container *string `url:"container,omitempty"`
	// FileMaxBytes is the maximum number of bytes for each uploaded file. A value of 0 can be used to indicate there is no limit on the size of uploaded files, otherwise the minimum value is 1048576 bytes (1 MiB.).
	FileMaxBytes *int `url:"file_max_bytes,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted.
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the blob storage to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SASToken is the Azure shared access signature providing write access to the blob service objects.
	SASToken *string `url:"sas_token,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
}

UpdateBlobStorageInput is used as input to the UpdateBlobStorage function.

type UpdateBulkCertificateInput

type UpdateBulkCertificateInput struct {
	// AllowUntrusted enables certificates that chain to untrusted roots.
	AllowUntrusted bool `jsonapi:"attr,allow_untrusted_root"`
	// CertBlob is the PEM-formatted certificate blob.
	CertBlob string `jsonapi:"attr,cert_blob"`
	// ID is an alphanumeric string identifying a TLS bulk certificate.
	ID string `jsonapi:"attr,id"`
	// IntermediatesBlob is the PEM-formatted chain of intermediate blobs.
	IntermediatesBlob string `jsonapi:"attr,intermediates_blob,omitempty"`
}

UpdateBulkCertificateInput is used as input to the UpdateBulkCertificate function.

type UpdateCacheSettingInput

type UpdateCacheSettingInput struct {
	// Action determines vcl_fetch behaviour (pass, cache, restart).
	Action CacheSettingAction `url:"action,omitempty"`
	// CacheCondition is name of the cache condition controlling when this configuration applies.
	CacheCondition *string `url:"cache_condition,omitempty"`
	// Name is the name of the cache setting to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// StaleTTL is the maximum time in seconds to continue to use a stale version of the object if future requests to your backend server fail (also known as 'stale if error').
	StaleTTL *int `url:"stale_ttl,omitempty"`
	// TTL is the maximum time to consider the object fresh in the cache (the cache 'time to live').
	TTL *int `url:"ttl,omitempty"`
}

UpdateCacheSettingInput is used as input to the UpdateCacheSetting function.

type UpdateCloudfilesInput

type UpdateCloudfilesInput struct {
	// AccessKey is your Cloud Files account access key.
	AccessKey *string `url:"access_key,omitempty"`
	// BucketName is the name of your Cloud Files container.
	BucketName *string `url:"bucket_name,omitempty"`
	// CompressionCodec is the codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the Cloudfiles to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// Region is the region to stream logs to.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// User is the username for your Cloud Files account.
	User *string `url:"user,omitempty"`
}

UpdateCloudfilesInput is used as input to the UpdateCloudfiles function.

type UpdateConditionInput

type UpdateConditionInput struct {
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// Name is the name of the condition to update (required).
	Name string `url:"-"`
	// Priority is a numeric string. Priority determines execution order. Lower numbers execute first.
	Priority *int `url:"priority,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Statement is a conditional expression in VCL used to determine if the condition is met.
	Statement *string `url:"statement,omitempty"`
	// Type is the type of the condition (REQUEST, CACHE, RESPONSE, PREFETCH).
	Type *string `url:"type,omitempty"`
}

UpdateConditionInput is used as input to the UpdateCondition function.

type UpdateConfigStoreInput added in v7.5.0

type UpdateConfigStoreInput struct {
	// ID is the ID of the config store to update (required).
	ID string

	// Name is the new name of the config store (required).
	Name string `url:"name"`
}

UpdateConfigStoreInput is the input to UpdateConfigStore.

type UpdateConfigStoreItemInput added in v7.5.0

type UpdateConfigStoreItemInput struct {
	// Upsert, if true, will insert or update an item. Otherwise, update an item which must already exist.
	Upsert bool
	// StoreID is the ID of the item's config store (required).
	StoreID string
	// Key is the name of the config store item to update (required).
	Key string
	// Value is the new item's value (required).
	Value string `url:"item_value"`
}

UpdateConfigStoreItemInput is the input to the UpdateConfigStoreItem.

type UpdateCustomTLSCertificateInput

type UpdateCustomTLSCertificateInput struct {
	// CertBlob is the PEM-formatted certificate blob.
	CertBlob string `jsonapi:"attr,cert_blob"`
	// ID is an alphanumeric string identifying a TLS certificate.
	ID string `jsonapi:"primary,tls_certificate"`
	// Name is a customizable name for your certificate.
	Name string `jsonapi:"attr,name,omitempty"`
}

UpdateCustomTLSCertificateInput is used as input to the UpdateCustomTLSCertificate function.

type UpdateCustomTLSConfigurationInput

type UpdateCustomTLSConfigurationInput struct {
	// ID is an alphanumeric string identifying a TLS configuration.
	ID string
	// Name is a custom name for your TLS configuration.
	Name string `jsonapi:"attr,name"`
}

UpdateCustomTLSConfigurationInput is used as input to the UpdateCustomTLSConfiguration function.

type UpdateDatadogInput

type UpdateDatadogInput struct {
	// Format is a Fastly log format string. Must produce valid JSON that Datadog can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the Datadog to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Region is the region that log data will be sent to.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the API key from your Datadog account.
	Token *string `url:"token,omitempty"`
}

UpdateDatadogInput is used as input to the UpdateDatadog function.

type UpdateDictionaryInput

type UpdateDictionaryInput struct {
	// Name is the name of the dictionary to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// WriteOnly determines if items in the dictionary are readable or not.
	WriteOnly *Compatibool `url:"write_only,omitempty"`
}

UpdateDictionaryInput is used as input to the UpdateDictionary function.

type UpdateDictionaryItemInput

type UpdateDictionaryItemInput struct {
	// DictionaryID is the ID of the dictionary to retrieve items for (required).
	DictionaryID string
	// ItemKey is the name of the dictionary item to fetch (required).
	ItemKey string
	// ItemValue is the new value of the dictionary item.
	ItemValue string `url:"item_value,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string
}

UpdateDictionaryItemInput is used as input to the UpdateDictionaryItem function.

type UpdateDigitalOceanInput

type UpdateDigitalOceanInput struct {
	// AccessKey is your DigitalOcean Spaces account access key.
	AccessKey *string `url:"access_key,omitempty"`
	// BucketName is the name of the DigitalOcean Space.
	BucketName *string `url:"bucket_name,omitempty"`
	// CompressionCodec is the codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Domain is the domain of the DigitalOcean Spaces endpoint.
	Domain *string `url:"domain,omitempty"`
	// Format is aFastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the DigitalOcean to update.
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is your DigitalOcean Spaces account secret key.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
}

UpdateDigitalOceanInput is used as input to the UpdateDigitalOcean function.

type UpdateDirectorInput

type UpdateDirectorInput struct {
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// Name is the name of the director to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Quorum is the percentage of capacity that needs to be up for a director to be considered up. 0 to 100.
	Quorum *int `url:"quorum,omitempty"`
	// Retries is how many backends to search if it fails.
	Retries *int `url:"retries,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Shield is selected POP to serve as a shield for the backends.
	Shield *string `url:"shield,omitempty"`
	// Type is what type of load balance group to use (random, hash, client).
	Type DirectorType `url:"type,omitempty"`
}

UpdateDirectorInput is used as input to the UpdateDirector function.

type UpdateDomainInput

type UpdateDomainInput struct {
	// Comment is a personal, freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// Name is the name of the domain that the service will respond to (required).
	Name string `url:"-"`
	// NewName is the updated name of the domain
	NewName *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

UpdateDomainInput is used as input to the UpdateDomain function.

type UpdateDynamicSnippetInput

type UpdateDynamicSnippetInput struct {
	// Content is the VCL code that specifies exactly what the snippet does.
	Content *string `url:"content,omitempty"`
	// ID is the ID of the Snippet to modify (required)
	ID string `url:"-"`
	// ServiceID is the ID of the Service to add the snippet to (required).
	ServiceID string `url:"-"`
}

UpdateDynamicSnippetInput is the input for UpdateDynamicSnippet

type UpdateERLInput

type UpdateERLInput struct {
	// Action is the action to take when a rate limiter violation is detected (response, response_object, log_only).
	Action *ERLAction `url:"action,omitempty"`
	// ClientKey is an array of VCL variables used to generate a counter key to identify a client.
	ClientKey *[]string `url:"client_key,omitempty,brackets,omitempty"`
	// ERLID is an alphanumeric string identifying the rate limiter (required).
	ERLID string `url:"-"`
	// FeatureRevision is the number of the rate limiting feature implementation. Defaults to the most recent revision.
	FeatureRevision *int `url:"feature_revision,omitempty"`
	// HTTPMethods is an array of HTTP methods to apply rate limiting to.
	HTTPMethods *[]string `url:"http_methods,omitempty,brackets,omitempty"`
	// LoggerType is the name of the type of logging endpoint to be used when `action` is log_only.
	LoggerType *ERLLogger `url:"logger_type,omitempty"`
	// Name is a human readable name for the rate limiting rule.
	Name *string `url:"name,omitempty"`
	// PenaltyBoxDuration is a length of time in minutes that the rate limiter is in effect after the initial violation is detected.
	PenaltyBoxDuration *int `url:"penalty_box_duration,omitempty"`
	// Response is a custom response to be sent when the rate limit is exceeded. Required if action is response.
	Response *ERLResponseType `url:"response,omitempty"`
	// ResponseObjectName is the name of existing response object. Required if action is response_object.
	ResponseObjectName *string `url:"response_object_name,omitempty"`
	// RpsLimit is an upper limit of requests per second allowed by the rate limiter.
	RpsLimit *int `url:"rps_limit,omitempty"`
	// URIDictionaryName is the name of an Edge Dictionary containing URIs as keys. If not defined or null, all origin URIs will be rate limited.
	URIDictionaryName *string `url:"uri_dictionary_name,omitempty"`
	// WindowSize is the number of seconds during which the RPS limit must be exceeded in order to trigger a violation (1, 10, 60).
	WindowSize *ERLWindowSize `url:"window_size,omitempty"`
}

UpdateERLInput is used as input to the UpdateERL function.

type UpdateElasticsearchInput

type UpdateElasticsearchInput struct {
	// Format is a Fastly log format string. Must produce valid JSON that Elasticsearch can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Index is the name of the Elasticsearch index to send documents (logs) to.
	Index *string `url:"index,omitempty"`
	// Name is the name of the Elasticsearch endpoint to fetch (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Password is basic Auth password.
	Password *string `url:"password,omitempty"`
	// Pipeline is the ID of the Elasticsearch ingest pipeline to apply pre-process transformations to before indexing.
	Pipeline *string `url:"pipeline,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// RequestMaxBytes is the maximum number of bytes sent in one request.
	RequestMaxBytes *int `url:"request_max_bytes,omitempty"`
	// RequestMaxEntries is the maximum number of logs sent in one request.
	RequestMaxEntries *int `url:"request_max_entries,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// URL is the URL to stream logs to. Must use HTTPS.
	URL *string `url:"url,omitempty"`
	// User is basic Auth username.
	User *string `url:"user,omitempty"`
}

UpdateElasticsearchInput is the input parameter to the UpdateElasticsearch function.

type UpdateFTPInput

type UpdateFTPInput struct {
	// Address is an hostname or IPv4 address.
	Address *string `url:"address,omitempty"`
	// CompressionCodec is the codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the FTP to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Password is the password for the server. For anonymous use an email address.
	Password *string `url:"password,omitempty"`
	// Path is the path to upload log files to. If the path ends in / then it is treated as a directory.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// Username is the username for the server. Can be anonymous.
	Username *string `url:"user,omitempty"`
}

UpdateFTPInput is used as input to the UpdateFTP function.

type UpdateGCSInput

type UpdateGCSInput struct {
	// AccountName is the name of the Google Cloud Platform service account associated with the target log collection service. Not required if user and secret_key are provided.
	AccountName *string `url:"account_name,omitempty"`
	// Bucket is the name of the GCS bucket.
	Bucket *string `url:"bucket_name,omitempty"`
	// CompressionCodec is he codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the GCS to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is your Google Cloud Platform account secret key. The private_key field in your service account authentication JSON. Not required if account_name is specified.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// User is your Google Cloud Platform service account email address. The client_email field in your service account authentication JSON. Not required if account_name is specified.
	User *string `url:"user,omitempty"`
}

UpdateGCSInput is used as input to the UpdateGCS function.

type UpdateGzipInput

type UpdateGzipInput struct {
	// CacheCondition is the name of the cache condition controlling when this configuration applies.
	CacheCondition *string `url:"cache_condition,omitempty"`
	// ContentTypes is a space-separated list of content types to compress.
	ContentTypes *string `url:"content_types,omitempty"`
	// Extensions is a space-separated list of file extensions to compress.
	Extensions *string `url:"extensions,omitempty"`
	// Name is the name of the Gzip to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

UpdateGzipInput is used as input to the UpdateGzip function.

type UpdateHTTPSInput

type UpdateHTTPSInput struct {
	// ContentType is the content type of the header sent with the request.
	ContentType *string `url:"content_type,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// HeaderName is the name of the custom header sent with the request.
	HeaderName *string `url:"header_name,omitempty"`
	// HeaderValue is the value of the custom header sent with the request.
	HeaderValue *string `url:"header_value,omitempty"`
	// JSONFormat enforces valid JSON formatting for log entries (0: disabled, 1: array of JSON, 2: newline delimited JSON).
	JSONFormat *string `url:"json_format,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Method is the HTTP method used for request (POST, PUT).
	Method *string `url:"method,omitempty"`
	// Name is the name of the HTTPS endpoint to fetch (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// RequestMaxBytes is the maximum number of bytes sent in one request. Defaults 0 (100MB).
	RequestMaxBytes *int `url:"request_max_bytes,omitempty"`
	// RequestMaxEntries is the maximum number of logs sent in one request. Defaults 0 (10k).
	RequestMaxEntries *int `url:"request_max_entries,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// URL is the URL to send logs to. Must use HTTPS
	URL *string `url:"url,omitempty"`
}

UpdateHTTPSInput is the input parameter to the UpdateHTTPS function.

type UpdateHeaderInput

type UpdateHeaderInput struct {
	// Action accepts a string value (set, append, delete, regex, regex_repeat).
	Action *HeaderAction `url:"action,omitempty"`
	// CacheCondition is the name of the cache condition controlling when this configuration applies.
	CacheCondition *string `url:"cache_condition,omitempty"`
	// Destination is the header to set.
	Destination *string `url:"dst,omitempty"`
	// IgnoreIfSet prevents adding the header if it is added already. Only applies to 'set' action.
	IgnoreIfSet *Compatibool `url:"ignore_if_set,omitempty"`
	// Name is the name of the header to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Priority determines execution order. Lower numbers execute first.
	Priority *int `url:"priority,omitempty"`
	// Regex is the regular expression to use. Only applies to regex and regex_repeat actions.
	Regex *string `url:"regex,omitempty"`
	// RequestCondition is the condition which, if met, will select this configuration during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// ResponseCondition is an optional name of a response condition to apply.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Source is a variable to be used as a source for the header content. Does not apply to delete action.
	Source *string `url:"src,omitempty"`
	// Substitution is a value to substitute in place of regular expression. Only applies to regex and regex_repeat actions.
	Substitution *string `url:"substitution,omitempty"`
	// Type is a type of header (request, cache, response).
	Type *HeaderType `url:"type,omitempty"`
}

UpdateHeaderInput is used as input to the UpdateHeader function.

type UpdateHealthCheckInput

type UpdateHealthCheckInput struct {
	// CheckInterval is how often to run the health check in milliseconds.
	CheckInterval *int `url:"check_interval,omitempty"`
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// ExpectedResponse is the status code expected from the host.
	ExpectedResponse *int `url:"expected_response,omitempty"`
	// HTTPVersion is whether to use version 1.0 or 1.1 HTTP.
	HTTPVersion *string `url:"http_version,omitempty"`
	// Headers is an array of custom headers that will be added to the health check probes.
	Headers *[]string `url:"headers,omitempty"`
	// Host is which host to check.
	Host *string `url:"host,omitempty"`
	// Initial is when loading a config, the initial number of probes to be seen as OK.
	Initial *int `url:"initial,omitempty"`
	// Method is which HTTP method to use.
	Method *string `url:"method,omitempty"`
	// Name is the name of the health check to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Path is the path to check.
	Path *string `url:"path,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Threshold is how many health checks must succeed to be considered healthy.
	Threshold *int `url:"threshold,omitempty"`
	// Timeout is timeout in milliseconds.
	Timeout *int `url:"timeout,omitempty"`
	// Window is the number of most recent health check queries to keep for this health check.
	Window *int `url:"window,omitempty"`
}

UpdateHealthCheckInput is used as input to the UpdateHealthCheck function.

type UpdateHerokuInput

type UpdateHerokuInput struct {
	// Format is a fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the heroku to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the token to use for authentication.
	Token *string `url:"token,omitempty"`
	// URL is the URL to stream logs to.
	URL *string `url:"url,omitempty"`
}

UpdateHerokuInput is used as input to the UpdateHeroku function.

type UpdateHoneycombInput

type UpdateHoneycombInput struct {
	// Dataset is the Honeycomb Dataset you want to log to.
	Dataset *string `url:"dataset,omitempty"`
	// Format is a Fastly log format string. Must produce valid JSON that Honeycomb can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the honeycomb to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the Write Key from the Account page of your Honeycomb account.
	Token *string `url:"token,omitempty"`
}

UpdateHoneycombInput is used as input to the UpdateHoneycomb function.

type UpdateKafkaInput

type UpdateKafkaInput struct {
	// AuthMethod is the SASL authentication method (plain, scram-sha-256, scram-sha-512).
	AuthMethod *string `url:"auth_method,omitempty"`
	// Brokers is a comma-separated list of IP addresses or hostnames of Kafka brokers.
	Brokers *string `url:"brokers,omitempty"`
	// CompressionCodec is the codec used for compression of your logs (gzip, snappy, lz4, null).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the kafka to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// ParseLogKeyvals enables parsing of key=value tuples from the beginning of a logline, turning them into record headers.
	ParseLogKeyvals *Compatibool `url:"parse_log_keyvals,omitempty"`
	// Password is the SASL password.
	Password *string `url:"password,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// RequestMaxBytes is the maximum number of bytes sent in one request. Defaults 0 (no limit).
	RequestMaxBytes *int `url:"request_max_bytes,omitempty"`
	// RequiredACKs is the number of acknowledgements a leader must receive before a write is considered successful.
	RequiredACKs *string `url:"required_acks,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// Topic is the Kafka topic to send logs to.
	Topic *string `url:"topic,omitempty"`
	// UseTLS is whether to use TLS (0: do not use, 1: use).
	UseTLS *Compatibool `url:"use_tls,omitempty"`
	// User is the SASL user.
	User *string `url:"user,omitempty"`
}

UpdateKafkaInput is used as input to the UpdateKafka function.

type UpdateKinesisInput

type UpdateKinesisInput struct {
	// AccessKey is the access key associated with the target Amazon Kinesis stream. Not required if iam_role is specified.
	AccessKey *string `url:"access_key,omitempty"`
	// Format is a Fastly log format string. Must produce valid JSON that Kinesis can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// IAMRole is the ARN for an IAM role granting Fastly access to the target Amazon Kinesis stream.
	IAMRole *string `url:"iam_role,omitempty"`
	// Name is the name of the Kinesis logging object to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Region is a named set of AWS resources that's in the same geographical area.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is the secret key associated with the target Amazon Kinesis stream. Not required if iam_role is specified.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// StreamName is the Amazon Kinesis stream to send logs to.
	StreamName *string `url:"topic,omitempty"`
}

UpdateKinesisInput is used as input to the UpdateKinesis function.

type UpdateLogentriesInput

type UpdateLogentriesInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the logentries to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// Region is the region to which to stream logs.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is token based authentication
	Token *string `url:"token,omitempty"`
	// UseTLS is whether to use TLS (0: do not use, 1: use).
	UseTLS *Compatibool `url:"use_tls,omitempty"`
}

UpdateLogentriesInput is used as input to the UpdateLogentries function.

type UpdateLogglyInput

type UpdateLogglyInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the loggly to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the token to use for authentication.
	Token *string `url:"token,omitempty"`
}

UpdateLogglyInput is used as input to the UpdateLoggly function.

type UpdateLogshuttleInput

type UpdateLogshuttleInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the logshuttle to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the data authentication token associated with this endpoint.
	Token *string `url:"token,omitempty"`
	// URL is the URL to stream logs to.
	URL *string `url:"url,omitempty"`
}

UpdateLogshuttleInput is used as input to the UpdateLogshuttle function.

type UpdateNewRelicInput

type UpdateNewRelicInput struct {
	// Format is a Fastly log format string. Must produce valid JSON that New Relic Logs can ingest.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the newrelic to update.
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Region is the region to which to stream logs.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the Insert API key from the Account page of your New Relic account.
	Token *string `url:"token,omitempty"`
}

UpdateNewRelicInput is used as input to the UpdateNewRelic function.

type UpdateOpenstackInput

type UpdateOpenstackInput struct {
	// AccessKey is your OpenStack account access key.
	AccessKey *string `url:"access_key,omitempty"`
	// BucketName is the name of your OpenStack container.
	BucketName *string `url:"bucket_name,omitempty"`
	// CompressionCodec is he codec used for compressing your logs (zstd, snappy, gzip).
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the Openstack to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// URL is your OpenStack auth url.
	URL *string `url:"url,omitempty"`
	// User is the username for your OpenStack account.
	User *string `url:"user,omitempty"`
}

UpdateOpenstackInput is used as input to the UpdateOpenstack function.

type UpdatePackageInput

type UpdatePackageInput struct {
	// PackagePath is the local filesystem path to the package to upload.
	PackagePath string
	// PackageContent is the data in raw of the package to upload.
	PackageContent []byte
	// ServiceID is the ID of the service (required).
	ServiceID string `mapstructure:"service_id"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `mapstructure:"version"`
}

UpdatePackageInput is used as input to the UpdatePackage function.

type UpdatePapertrailInput

type UpdatePapertrailInput struct {
	// Address is a hostname or IPv4 address.
	Address *string `url:"address,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the papertrail to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

UpdatePapertrailInput is used as input to the UpdatePapertrail function.

type UpdatePoolInput

type UpdatePoolInput struct {
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// ConnectTimeout is how long to wait for a timeout in milliseconds.
	ConnectTimeout *int `url:"connect_timeout,omitempty"`
	// FirstByteTimeout is how long to wait for the first byte in milliseconds.
	FirstByteTimeout *int `url:"first_byte_timeout,omitempty"`
	// Healthcheck is the name of the healthcheck to use with this pool.
	Healthcheck *string `url:"healthcheck,omitempty"`
	// MaxConnDefault is the maximum number of connections.
	MaxConnDefault *int `url:"max_conn_default,omitempty"`
	// MaxTLSVersion is the maximum allowed TLS version on connections to this server.
	MaxTLSVersion *string `url:"max_tls_version,omitempty"`
	// MinTLSVersion is the minimum allowed TLS version on connections to this server.
	MinTLSVersion *string `url:"min_tls_version,omitempty"`
	// Name is the name of the pool to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// OverrideHost is the hostname to override the Host header.
	OverrideHost *string `url:"override_host,omitempty"`
	// Quorum is the percentage of capacity (0-100) that needs to be operationally available for a pool to be considered up.
	Quorum *int `url:"quorum,omitempty"`
	// RequestCondition is the condition which, if met, will select this configuration during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Shield is the selected POP to serve as a shield for the servers.
	Shield *string `url:"shield,omitempty"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSCertHostname is the hostname used to verify a server's certificate.
	TLSCertHostname *string `url:"tls_cert_hostname,omitempty"`
	// TLSCheckCert forces strict checking of TLS certs.
	TLSCheckCert *Compatibool `url:"tls_check_cert,omitempty"`
	// TLSCiphers is a list of OpenSSL ciphers (see the openssl.org manpages for details).
	TLSCiphers *string `url:"tls_ciphers,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSSNIHostname is the SNI hostname.
	TLSSNIHostname *string `url:"tls_sni_hostname,omitempty"`
	// Type is what type of load balance group to use (random, hash, client).
	Type *PoolType `url:"type,omitempty"`
	// UseTLS indicates whether to use TLS.
	UseTLS *Compatibool `url:"use_tls,omitempty"`
}

UpdatePoolInput is used as input to the UpdatePool function.

type UpdatePubsubInput

type UpdatePubsubInput struct {
	// AccountName is the name of the Google Cloud Platform service account associated with the target log collection service. Not required if user and secret_key are provided.
	AccountName *string `url:"account_name,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the Pubsub to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ProjectID is your Google Cloud Platform project ID. Required.
	ProjectID *string `url:"project_id,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is your Google Cloud Platform account secret key. The private_key field in your service account authentication JSON. Not required if account_name is specified.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Topic is the Google Cloud Pub/Sub topic to which logs will be published.
	Topic *string `url:"topic,omitempty"`
	// User is your Google Cloud Platform service account email address. The client_email field in your service account authentication JSON. Not required if account_name is specified.
	User *string `url:"user,omitempty"`
}

UpdatePubsubInput is used as input to the UpdatePubsub function.

type UpdateRequestSettingInput

type UpdateRequestSettingInput struct {
	// Action allows you to terminate request handling and immediately perform an action.
	Action RequestSettingAction `url:"action,omitempty"`
	// BypassBusyWait disables collapsed forwarding, so you don't wait for other objects to origin.
	BypassBusyWait *Compatibool `url:"bypass_busy_wait,omitempty"`
	// DefaultHost sets the host header.
	DefaultHost *string `url:"default_host,omitempty"`
	// ForceMiss allows you to force a cache miss for the request. Replaces the item in the cache if the content is cacheable.
	ForceMiss *Compatibool `url:"force_miss,omitempty"`
	// ForceSSL forces the request use SSL (redirects a non-SSL to SSL).
	ForceSSL *Compatibool `url:"force_ssl,omitempty"`
	// GeoHeaders injects Fastly-Geo-Country, Fastly-Geo-City, and Fastly-Geo-Region into the request headers.
	GeoHeaders *Compatibool `url:"geo_headers,omitempty"`
	// HashKeys is a comma separated list of varnish request object fields that should be in the hash key.
	HashKeys *string `url:"hash_keys,omitempty"`
	// MaxStaleAge is how old an object is allowed to be to serve stale-if-error or stale-while-revalidate.
	MaxStaleAge *int `url:"max_stale_age,omitempty"`
	// Name is the name of the request settings to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// RequestCondition is the condition which, if met, will select this configuration during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimerSupport injects the X-Timer info into the request for viewing origin fetch durations.
	TimerSupport *Compatibool `url:"timer_support,omitempty"`
	// XForwardedFor determines header value (clear, leave, append, append_all, overwrite)
	XForwardedFor RequestSettingXFF `url:"xff,omitempty"`
}

UpdateRequestSettingInput is used as input to the UpdateRequestSetting function.

type UpdateResourceInput added in v7.1.0

type UpdateResourceInput struct {
	// Name is the name of the resource being linked to (e.g. an object store).
	Name *string `url:"name,omitempty"`
	// ID is an alphanumeric string identifying the resource link (required).
	ID string `url:"-"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

UpdateResourceInput is used as input to the UpdateResource function.

type UpdateResponseObjectInput

type UpdateResponseObjectInput struct {
	// CacheCondition is the name of the cache condition controlling when this configuration applies.
	CacheCondition *string `url:"cache_condition,omitempty"`
	// Content is the content to deliver for the response object, can be empty.
	Content *string `url:"content,omitempty"`
	// ContentType is the MIME type of the content, can be empty.
	ContentType *string `url:"content_type,omitempty"`
	// Name is the name of the response object to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// RequestCondition is the condition which, if met, will select this configuration during a request.
	RequestCondition *string `url:"request_condition,omitempty"`
	// Response is the HTTP response.
	Response *string `url:"response,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Status is the HTTP status code.
	Status *int `url:"status,omitempty"`
}

UpdateResponseObjectInput is used as input to the UpdateResponseObject function.

type UpdateS3Input

type UpdateS3Input struct {
	// ACL is the access control list (ACL) specific request header.
	ACL *S3AccessControlList `url:"acl,omitempty"`
	//  AccessKey is the access key for your S3 account. Not required if iam_role is provided.
	AccessKey *string `url:"access_key,omitempty"`
	// BucketName is the bucket name for S3 account.
	BucketName *string `url:"bucket_name,omitempty"`
	// CompressionCodec is the codec used for compressing your logs. Valid values are zstd, snappy, and gzip.
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Domain is the domain of the Amazon S3 endpoint.
	Domain *string `url:"domain,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// IAMRole is the Amazon Resource Name (ARN) for the IAM role granting Fastly access to S3. Not required if access_key and secret_key are provided.
	IAMRole *string `url:"iam_role,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the S3 to update.
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// Redundancy is the S3 redundancy level.
	Redundancy *S3Redundancy `url:"redundancy,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SecretKey is the secret key for your S3 account. Not required if iam_role is provided.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServerSideEncryption should be set to AES256 or aws:kms to enable S3 Server Side Encryption.
	ServerSideEncryption *S3ServerSideEncryption `url:"server_side_encryption,omitempty"`
	// ServerSideEncryptionKMSKeyID is an optional server-side KMS Key ID. Must be set if ServerSideEncryption is set to aws:kms or AES256.
	ServerSideEncryptionKMSKeyID *string `url:"server_side_encryption_kms_key_id,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
}

UpdateS3Input is used as input to the UpdateS3 function.

type UpdateSFTPInput

type UpdateSFTPInput struct {
	// Address is a hostname or IPv4 address.
	Address *string `url:"address,omitempty"`
	// CompressionCodec is the codec used for compressing your logs. Valid values are zstd, snappy, and gzip.
	CompressionCodec *string `url:"compression_codec,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// GzipLevel is the level of gzip encoding when sending logs (default 0, no compression).
	GzipLevel *int `url:"gzip_level,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the SFTP to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Password is the password for the server.
	Password *string `url:"password,omitempty"`
	// Path is the path to upload logs to.
	Path *string `url:"path,omitempty"`
	// Period is how frequently log files are finalized so they can be available for reading (in seconds).
	Period *int `url:"period,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// PublicKey is a PGP public key that Fastly will use to encrypt your log files before writing them to disk.
	PublicKey *string `url:"public_key,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// SSHKnownHosts is a list of host keys for all hosts we can connect to over SFTP.
	SSHKnownHosts *string `url:"ssh_known_hosts,omitempty"`
	// SecretKey is the SSH private key for the server.
	SecretKey *string `url:"secret_key,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TimestampFormat is a timestamp format.
	TimestampFormat *string `url:"timestamp_format,omitempty"`
	// User is the username for the server.
	User *string `url:"user,omitempty"`
}

UpdateSFTPInput is used as input to the UpdateSFTP function.

type UpdateScalyrInput

type UpdateScalyrInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the scalyr to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Region is the region that log data will be sent to.
	Region *string `url:"region,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// Token is the token to use for authentication
	Token *string `url:"token,omitempty"`
}

UpdateScalyrInput is used as input to the UpdateScalyr function.

type UpdateServerInput

type UpdateServerInput struct {
	// Address is the hostname or IP of the origin server (required).
	Address *string `url:"address,omitempty"`
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// Disabled allows servers to be enabled and disabled in a pool.
	Disabled *bool `url:"disabled,omitempty"`
	// MaxConn is the maximum number of connections. If the value is 0, it inherits the value from pool's max_conn_default.
	MaxConn *int `url:"max_conn,omitempty"`
	// OverrideHost is the hostname to override the Host header.
	OverrideHost *string `url:"override_host,omitempty"`
	// PoolID is the ID of the pool (required).
	PoolID string `url:"-"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// Server is an alphanumeric string identifying a Server (required).
	Server string `url:"-"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// Weight is the weight (1-100) used to load balance this server against others.
	Weight *int `url:"weight,omitempty"`
}

UpdateServerInput is used as input to the UpdateServer function.

type UpdateServiceAuthorizationInput

type UpdateServiceAuthorizationInput struct {
	// ID uniquely identifies the service authorization (service and user pair) to be updated.
	ID string `jsonapi:"primary,service_authorization"`

	// The permission to grant the user to the service referenced by this service authorization.
	Permission string `jsonapi:"attr,permission,omitempty"`
}

UpdateServiceAuthorizationInput is used as input to the UpdateServiceAuthorization function.

type UpdateServiceInput

type UpdateServiceInput struct {
	// Comment is a freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// Name is the name of the service.
	Name *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string
}

UpdateServiceInput is used as input to the UpdateService function.

type UpdateSettingsInput

type UpdateSettingsInput struct {
	// DefaultHost is the default host name for the version.
	DefaultHost *string `url:"general.default_host,omitempty"`
	// DefaultTTL is the default time-to-live (TTL) for the version.
	DefaultTTL uint `url:"general.default_ttl"`
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
	// StaleIfError enables serving a stale object if there is an error.
	StaleIfError *bool `url:"general.stale_if_error,omitempty"`
	// StaleIfErrorTTL is the default time-to-live (TTL) for serving the stale object for the version.
	StaleIfErrorTTL *uint `url:"general.stale_if_error_ttl,omitempty"`
}

UpdateSettingsInput is used as input to the UpdateSettings function.

type UpdateSnippetInput

type UpdateSnippetInput struct {
	// Content is the VCL code that specifies exactly what the snippet does.
	Content *string `url:"content,omitempty"`
	// Name is the name for the snippet (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Priority determines the ordering for multiple snippets. Lower numbers execute first.
	Priority *int `url:"priority,omitempty"`
	// ServiceID is the ID of the service to add the snippet to (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the editable configuration version (required).
	ServiceVersion int `url:"-"`
	// Type is the location in generated VCL where the snippet should be placed.
	Type *SnippetType `url:"type,omitempty"`
}

UpdateSnippetInput is the input for UpdateSnippet

type UpdateSplunkInput

type UpdateSplunkInput struct {
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Name is the name of the splunk to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// RequestMaxBytes is the maximum number of bytes sent in one request. Defaults 0 for unbounded.
	RequestMaxBytes *int `url:"request_max_bytes,omitempty"`
	// RequestMaxEntries is the maximum number of logs sent in one request. Defaults 0 for unbounded.
	RequestMaxEntries *int `url:"request_max_entries,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// Token is a Splunk token for use in posting logs over HTTP to your collector.
	Token *string `url:"token,omitempty"`
	// URL is the URL to post logs to.
	URL *string `url:"url,omitempty"`
	// UseTLS is whether to use TLS (0: do not use, 1: use).
	UseTLS *Compatibool `url:"use_tls,omitempty"`
}

UpdateSplunkInput is used as input to the UpdateSplunk function.

type UpdateSumologicInput

type UpdateSumologicInput struct {
	Address *string `url:"address,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the sumologic to update.
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// URL is the URL to post logs to.
	URL *string `url:"url,omitempty"`
}

UpdateSumologicInput is used as input to the UpdateSumologic function.

type UpdateSyslogInput

type UpdateSyslogInput struct {
	// Address is a hostname or IPv4 address.
	Address *string `url:"address,omitempty"`
	// Format is a Fastly log format string.
	Format *string `url:"format,omitempty"`
	// FormatVersion is the version of the custom logging format used for the configured endpoint.
	FormatVersion *int `url:"format_version,omitempty"`
	// Hostname is the hostname used for the syslog endpoint.
	Hostname *string `url:"hostname,omitempty"`
	// IPV4 is the IPv4 address used for the syslog endpoint.
	IPV4 *string `url:"ipv4,omitempty"`
	// MessageType is how the message should be formatted (classic, loggly, logplex, blank).
	MessageType *string `url:"message_type,omitempty"`
	// Name is the name of the syslog to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// Placement is where in the generated VCL the logging call should be placed.
	Placement *string `url:"placement,omitempty"`
	// Port is the port number.
	Port *int `url:"port,omitempty"`
	// ResponseCondition is the name of an existing condition in the configured endpoint, or leave blank to always execute.
	ResponseCondition *string `url:"response_condition,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
	// TLSCACert is a secure certificate to authenticate a server with. Must be in PEM format.
	TLSCACert *string `url:"tls_ca_cert,omitempty"`
	// TLSClientCert is the client certificate used to make authenticated requests. Must be in PEM format.
	TLSClientCert *string `url:"tls_client_cert,omitempty"`
	// TLSClientKey is the client private key used to make authenticated requests. Must be in PEM format.
	TLSClientKey *string `url:"tls_client_key,omitempty"`
	// TLSHostname is the hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
	TLSHostname *string `url:"tls_hostname,omitempty"`
	// Token is whether to prepend each message with a specific token.
	Token *string `url:"token,omitempty"`
	// UseTLS is whether to use TLS (0: do not use, 1: use).
	UseTLS *Compatibool `url:"use_tls,omitempty"`
}

UpdateSyslogInput is used as input to the UpdateSyslog function.

type UpdateTLSActivationInput

type UpdateTLSActivationInput struct {
	// Certificate is an alphanumeric string identifying a TLS certificate.
	Certificate *CustomTLSCertificate `jsonapi:"relation,tls_certificate"` // Only ID of CustomTLSCertificate needs to be set.
	// ID is an aphanumeric string identifying a TLS activation.
	ID string `jsonapi:"primary,tls_activation"`
}

UpdateTLSActivationInput is used as input to the UpdateTLSActivation function.

type UpdateTLSSubscriptionInput

type UpdateTLSSubscriptionInput struct {
	// CommonName is the common name associated with the subscription generated by Fastly TLS. Must be included in Domains. Only the ID fields of each one need to be set.
	CommonName *TLSDomain `jsonapi:"relation,common_name,omitempty"`
	// Configuration options that apply to the enabled domains on this subscription. Only ID needs to be populated
	Configuration *TLSConfiguration `jsonapi:"relation,tls_configuration,omitempty"`
	// Domains list to enable TLS for. Only the ID fields of each one need to be set.
	Domains []*TLSDomain `jsonapi:"relation,tls_domain,omitempty"`
	// Force the update to be applied, even if domains are active. Warning: can disable production traffic.
	Force bool
	// ID of the subscription to update.
	ID string `jsonapi:"primary,tls_subscription"`
}

UpdateTLSSubscriptionInput is used as input to the UpdateTLSSubscription function (Limited Availability)

type UpdateUserInput

type UpdateUserInput struct {
	// ID is an alphanumeric string identifying the user (required).
	ID string `url:"-"`
	// Name is the real life name of the user.
	Name *string `url:"name,omitempty"`
	// Role is the permissions role assigned to the user. Can be user, billing, engineer, or superuser.
	Role *string `url:"role,omitempty"`
}

UpdateUserInput is used as input to the UpdateUser function.

type UpdateVCLInput

type UpdateVCLInput struct {
	// Content is the VCL code to be included.
	Content *string `url:"content,omitempty"`
	// Name is the name of the VCL to update (required).
	Name string `url:"-"`
	// NewName is the new name for the resource.
	NewName *string `url:"name,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

UpdateVCLInput is used as input to the UpdateVCL function.

type UpdateVersionInput

type UpdateVersionInput struct {
	// Comment is a personal freeform descriptive note.
	Comment *string `url:"comment,omitempty"`
	// ServiceID is the ID of the service (required).
	ServiceID string `url:"-"`
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int `url:"-"`
}

UpdateVersionInput is the input to the UpdateVersion function.

type UpdateWAFInput

type UpdateWAFInput struct {
	// Disabled is the status of the firewall.
	Disabled *bool `jsonapi:"attr,disabled,omitempty"`
	// ID is an alphanumeric string identifying a WAF Firewall.
	ID string `jsonapi:"primary,waf_firewall"`
	// PrefetchCondition is the name of the corresponding condition object.
	PrefetchCondition *string `jsonapi:"attr,prefetch_condition,omitempty"`
	// Response is the name of the corresponding response object.
	Response *string `jsonapi:"attr,response,omitempty"`
	// ServiceID is the ID of the service.
	ServiceID *string `jsonapi:"attr,service_id,omitempty"`
	// ServiceVersion is the specific configuration version.
	ServiceVersion *int `jsonapi:"attr,service_version_number,omitempty"`
}

UpdateWAFInput is used as input to the UpdateWAF function.

type UpdateWAFRuleExclusionInput

type UpdateWAFRuleExclusionInput struct {
	// Number is the rule exclusion number.
	Number int
	// WAFID is the Web Application Firewall's ID.
	WAFID string
	// WAFRuleExclusion is the Web Application Firewall's exclusion
	WAFRuleExclusion *WAFRuleExclusion
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber int
}

UpdateWAFRuleExclusionInput is used for exclusions updates.

type UpdateWAFVersionInput

type UpdateWAFVersionInput struct {
	// AllowedHTTPVersions is allowed HTTP versions.
	AllowedHTTPVersions *string `jsonapi:"attr,allowed_http_versions,omitempty"`
	// AllowedMethods is a space-separated list of HTTP method names.
	AllowedMethods *string `jsonapi:"attr,allowed_methods,omitempty"`
	// AllowedRequestContentType is allowed request content types.
	AllowedRequestContentType *string `jsonapi:"attr,allowed_request_content_type,omitempty"`
	// AllowedRequestContentTypeCharset is allowed request content type charset.
	AllowedRequestContentTypeCharset *string `jsonapi:"attr,allowed_request_content_type_charset,omitempty"`
	// ArgLength is the maximum allowed length of an argument.
	ArgLength *int `jsonapi:"attr,arg_length,omitempty"`
	// ArgNameLength is the maximum allowed argument name length.
	ArgNameLength *int `jsonapi:"attr,arg_name_length,omitempty"`
	// CRSValidateUTF8Encoding is the CRS validate UTF8 encoding.
	CRSValidateUTF8Encoding *bool `jsonapi:"attr,crs_validate_utf8_encoding,omitempty"`
	// CombinedFileSizes is the maximum allowed size of all files (in bytes).
	CombinedFileSizes *int `jsonapi:"attr,combined_file_sizes,omitempty"`
	// Comment is a freeform descriptive note.
	Comment *string `jsonapi:"attr,comment,omitempty"`
	// CriticalAnomalyScore is the score value to add for critical anomalies.
	CriticalAnomalyScore *int `jsonapi:"attr,critical_anomaly_score,omitempty"`
	// ErrorAnomalyScore is the score value to add for error anomalies.
	ErrorAnomalyScore *int `jsonapi:"attr,error_anomaly_score,omitempty"`
	// HTTPViolationScoreThreshold is the HTTP violation threshold.
	HTTPViolationScoreThreshold *int `jsonapi:"attr,http_violation_score_threshold,omitempty"`
	// HighRiskCountryCodes is a space-separated list of country codes in ISO 3166-1 (two-letter) format.
	HighRiskCountryCodes *string `jsonapi:"attr,high_risk_country_codes,omitempty"`
	// InboundAnomalyScoreThreshold is the inbound anomaly threshold.
	InboundAnomalyScoreThreshold *int `jsonapi:"attr,inbound_anomaly_score_threshold,omitempty"`
	// LFIScoreThreshold is the local file inclusion attack threshold.
	LFIScoreThreshold *int `jsonapi:"attr,lfi_score_threshold,omitempty"`
	// MaxFileSize is the maximum allowed file size, in bytes.
	MaxFileSize *int `jsonapi:"attr,max_file_size,omitempty"`
	// MaxNumArgs is the maximum number of arguments allowed.
	MaxNumArgs *int `jsonapi:"attr,max_num_args,omitempty"`
	// NoticeAnomalyScore is the score value to add for notice anomalies.
	NoticeAnomalyScore *int `jsonapi:"attr,notice_anomaly_score,omitempty"`
	// PHPInjectionScoreThreshold is the PHP injection threshold.
	PHPInjectionScoreThreshold *int `jsonapi:"attr,php_injection_score_threshold,omitempty"`
	// ParanoiaLevel is the configured paranoia level.
	ParanoiaLevel *int `jsonapi:"attr,paranoia_level,omitempty"`
	// RCEScoreThreshold is the remote code execution threshold.
	RCEScoreThreshold *int `jsonapi:"attr,rce_score_threshold,omitempty"`
	// RFIScoreThreshold is the remote file inclusion attack threshold.
	RFIScoreThreshold *int `jsonapi:"attr,rfi_score_threshold,omitempty"`
	// RestrictedExtensions is a space-separated list of allowed file extensions.
	RestrictedExtensions *string `jsonapi:"attr,restricted_extensions,omitempty"`
	// RestrictedHeaders is a space-separated list of allowed header names.
	RestrictedHeaders *string `jsonapi:"attr,restricted_headers,omitempty"`
	// SQLInjectionScoreThreshold is the SQL injection attack threshold.
	SQLInjectionScoreThreshold *int `jsonapi:"attr,sql_injection_score_threshold,omitempty"`
	// SessionFixationScoreThreshold is the session fixation attack threshold.
	SessionFixationScoreThreshold *int `jsonapi:"attr,session_fixation_score_threshold,omitempty"`
	// TotalArgLength is the maximum size of argument names and values.
	TotalArgLength *int `jsonapi:"attr,total_arg_length,omitempty"`
	// WAFID is the Web Application Firewall's ID.
	WAFID *string
	// WAFVersionID is the Web Application Firewall's version ID.
	WAFVersionID *string `jsonapi:"primary,waf_firewall_version"`
	// WAFVersionNumber is the Web Application Firewall's version number.
	WAFVersionNumber *int
	// WarningAnomalyScore is the score value to add for warning anomalies.
	WarningAnomalyScore *int `jsonapi:"attr,warning_anomaly_score,omitempty"`
	// XSSScoreThreshold is the XSS attack threshold.
	XSSScoreThreshold *int `jsonapi:"attr,xss_score_threshold,omitempty"`
}

UpdateWAFVersionInput is used as input to the UpdateWAFVersion function. This struct uses pointers due to the problem detailed on this issue https://github.com/opencredo/go-fastly/pull/17.

func (UpdateWAFVersionInput) HasChanges

func (i UpdateWAFVersionInput) HasChanges() bool

HasChanges checks that UpdateWAFVersionInput has changed in terms of configuration, which means - if it has configuration fields populated. if UpdateWAFVersionInput is updated to have a slice this method will not longer work as it is. if a slice is introduced the "!=" must be replaced with !DeepEquals

type Usage

type Usage struct {
	Bandwidth       uint64 `mapstructure:"bandwidth"`
	Requests        uint64 `mapstructure:"requests"`
	ComputeRequests uint64 `mapstructure:"compute_requests"`
}

Usage represents usage data of a single service or region

type UsageByServiceResponse

type UsageByServiceResponse struct {
	Data    *ServicesByRegionsUsage `mapstructure:"data"`
	Message string                  `mapstructure:"msg"`
	Meta    map[string]string       `mapstructure:"meta"`
	Status  string                  `mapstructure:"status"`
}

UsageByServiceResponse is a response from the account usage API endpoint

type UsageResponse

type UsageResponse struct {
	Data    *RegionsUsage     `mapstructure:"data"`
	Message string            `mapstructure:"msg"`
	Meta    map[string]string `mapstructure:"meta"`
	Status  string            `mapstructure:"status"`
}

UsageResponse is a response from the account usage API endpoint

type UsageStatsResponse

type UsageStatsResponse struct {
	Data    map[string]*Usage `mapstructure:"data"`
	Message string            `mapstructure:"msg"`
	Meta    map[string]string `mapstructure:"meta"`
	Status  string            `mapstructure:"status"`
}

UsageStatsResponse is a response from the account usage API endpoint

type User

type User struct {
	CreatedAt              *time.Time `mapstructure:"created_at"`
	CustomerID             string     `mapstructure:"customer_id"`
	DeletedAt              *time.Time `mapstructure:"deleted_at"`
	EmailHash              string     `mapstructure:"email_hash"`
	ID                     string     `mapstructure:"id"`
	LimitServices          bool       `mapstructure:"limit_services"`
	Locked                 bool       `mapstructure:"locked"`
	Login                  string     `mapstructure:"login"`
	Name                   string     `mapstructure:"name"`
	RequireNewPassword     bool       `mapstructure:"require_new_password"`
	Role                   string     `mapstructure:"role"`
	TwoFactorAuthEnabled   bool       `mapstructure:"two_factor_auth_enabled"`
	TwoFactorSetupRequired bool       `mapstructure:"two_factor_setup_required"`
	UpdatedAt              *time.Time `mapstructure:"updated_at"`
}

User represents a user of the Fastly API and web interface.

type VCL

type VCL struct {
	Content        string     `mapstructure:"content"`
	CreatedAt      *time.Time `mapstructure:"created_at"`
	DeletedAt      *time.Time `mapstructure:"deleted_at"`
	Main           bool       `mapstructure:"main"`
	Name           string     `mapstructure:"name"`
	ServiceID      string     `mapstructure:"service_id"`
	ServiceVersion int        `mapstructure:"version"`
	UpdatedAt      *time.Time `mapstructure:"updated_at"`
}

VCL represents a response about VCL from the Fastly API.

type ValidateAllDomainsInput

type ValidateAllDomainsInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ValidateAllDomainsInput is used as input to the ValidateAllDomains function.

type ValidateDomainInput

type ValidateDomainInput struct {
	// Name is the name of the domain to validate (required).
	Name string
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ValidateDomainInput is used as input to the ValidateDomain function.

type ValidateVersionInput

type ValidateVersionInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string
	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ValidateVersionInput is the input to the ValidateVersion function.

type Version

type Version struct {
	Active    bool       `mapstructure:"active"`
	Comment   string     `mapstructure:"comment"`
	CreatedAt *time.Time `mapstructure:"created_at"`
	DeletedAt *time.Time `mapstructure:"deleted_at"`
	Deployed  bool       `mapstructure:"deployed"`
	Locked    bool       `mapstructure:"locked"`
	Number    int        `mapstructure:"number"`
	ServiceID string     `mapstructure:"service_id"`
	Staging   bool       `mapstructure:"staging"`
	Testing   bool       `mapstructure:"testing"`
	UpdatedAt *time.Time `mapstructure:"updated_at"`
}

Version represents a distinct configuration version.

type WAF

type WAF struct {
	ActiveRulesFastlyBlockCount    int        `jsonapi:"attr,active_rules_fastly_block_count"`
	ActiveRulesFastlyLogCount      int        `jsonapi:"attr,active_rules_fastly_log_count"`
	ActiveRulesOWASPBlockCount     int        `jsonapi:"attr,active_rules_owasp_block_count"`
	ActiveRulesOWASPLogCount       int        `jsonapi:"attr,active_rules_owasp_log_count"`
	ActiveRulesOWASPScoreCount     int        `jsonapi:"attr,active_rules_owasp_score_count"`
	ActiveRulesTrustwaveBlockCount int        `jsonapi:"attr,active_rules_trustwave_block_count"`
	ActiveRulesTrustwaveLogCount   int        `jsonapi:"attr,active_rules_trustwave_log_count"`
	CreatedAt                      *time.Time `jsonapi:"attr,created_at,iso8601"`
	Disabled                       bool       `jsonapi:"attr,disabled"`
	ID                             string     `jsonapi:"primary,waf_firewall"`
	PrefetchCondition              string     `jsonapi:"attr,prefetch_condition"`
	Response                       string     `jsonapi:"attr,response"`
	ServiceID                      string     `jsonapi:"attr,service_id"`
	ServiceVersion                 int        `jsonapi:"attr,service_version_number"`
	UpdatedAt                      *time.Time `jsonapi:"attr,updated_at,iso8601"`
}

WAF is the information about a firewall object.

type WAFActiveRule

type WAFActiveRule struct {
	CreatedAt      *time.Time `jsonapi:"attr,created_at,iso8601,omitempty"`
	ID             string     `jsonapi:"primary,waf_active_rule,omitempty"`
	LatestRevision int        `jsonapi:"attr,latest_revision,omitempty"`
	ModSecID       int        `jsonapi:"attr,modsec_rule_id,omitempty"`
	Outdated       bool       `jsonapi:"attr,outdated,omitempty"`
	Revision       int        `jsonapi:"attr,revision,omitempty"`
	Status         string     `jsonapi:"attr,status,omitempty"`
	UpdatedAt      *time.Time `jsonapi:"attr,updated_at,iso8601,omitempty"`
}

WAFActiveRule is the information about a WAF active rule object.

type WAFActiveRuleResponse

type WAFActiveRuleResponse struct {
	Info  infoResponse
	Items []*WAFActiveRule
}

WAFActiveRuleResponse represents a list of active rules - full response.

type WAFConfigurationSet

type WAFConfigurationSet struct {
	ID string `jsonapi:"primary,configuration_set"`
}

WAFConfigurationSet represents information about a configuration_set.

type WAFResponse

type WAFResponse struct {
	Info  infoResponse
	Items []*WAF
}

WAFResponse an object containing the list of WAF results.

type WAFRule

type WAFRule struct {
	ID        string             `jsonapi:"primary,waf_rule,omitempty"`
	ModSecID  int                `jsonapi:"attr,modsec_rule_id,omitempty"`
	Publisher string             `jsonapi:"attr,publisher,omitempty"`
	Revisions []*WAFRuleRevision `jsonapi:"relation,waf_rule_revisions,omitempty"`
	Type      string             `jsonapi:"attr,type,omitempty"`
}

WAFRule is the information about a WAF rule object.

type WAFRuleExclusion

type WAFRuleExclusion struct {
	Condition     *string    `jsonapi:"attr,condition"`
	CreatedAt     *time.Time `jsonapi:"attr,created_at,iso8601,omitempty"`
	ExclusionType *string    `jsonapi:"attr,exclusion_type"`
	ID            string     `jsonapi:"primary,waf_exclusion"`
	Name          *string    `jsonapi:"attr,name"`
	Number        *int       `jsonapi:"attr,number"`
	Rules         []*WAFRule `jsonapi:"relation,waf_rules,omitempty"`
	UpdatedAt     *time.Time `jsonapi:"attr,updated_at,iso8601,omitempty"`
}

WAFRuleExclusion is the information about a WAF rule exclusion object.

type WAFRuleExclusionResponse

type WAFRuleExclusionResponse struct {
	Info  infoResponse
	Items []*WAFRuleExclusion
}

WAFRuleExclusionResponse represents a list of rule exclusions - full response.

type WAFRuleResponse

type WAFRuleResponse struct {
	Info  infoResponse
	Items []*WAFRule
}

WAFRuleResponse represents a list WAF rules full response.

type WAFRuleRevision

type WAFRuleRevision struct {
	ID            string `jsonapi:"primary,waf_rule_revision,omitempty"`
	ModSecID      int    `jsonapi:"attr,modsec_rule_id,omitempty"`
	ParanoiaLevel int    `jsonapi:"attr,paranoia_level,omitempty"`
	Revision      int    `jsonapi:"attr,revision,omitempty"`
	Severity      int    `jsonapi:"attr,severity,omitempty"`
	Source        string `jsonapi:"attr,source,omitempty"`
	State         string `jsonapi:"attr,state,omitempty"`
	Status        string `jsonapi:"attr,message,omitempty"`
	VCL           string `jsonapi:"attr,vcl,omitempty"`
}

WAFRuleRevision is the information about a WAF rule revision object.

type WAFVersion

type WAFVersion struct {
	Active                           bool       `jsonapi:"attr,active"`
	ActiveRulesFastlyBlockCount      int        `jsonapi:"attr,active_rules_fastly_block_count"`
	ActiveRulesFastlyLogCount        int        `jsonapi:"attr,active_rules_fastly_log_count"`
	ActiveRulesOWASPBlockCount       int        `jsonapi:"attr,active_rules_owasp_block_count"`
	ActiveRulesOWASPLogCount         int        `jsonapi:"attr,active_rules_owasp_log_count"`
	ActiveRulesOWASPScoreCount       int        `jsonapi:"attr,active_rules_owasp_score_count"`
	ActiveRulesTrustwaveBlockCount   int        `jsonapi:"attr,active_rules_trustwave_block_count"`
	ActiveRulesTrustwaveLogCount     int        `jsonapi:"attr,active_rules_trustwave_log_count"`
	AllowedHTTPVersions              string     `jsonapi:"attr,allowed_http_versions"`
	AllowedMethods                   string     `jsonapi:"attr,allowed_methods"`
	AllowedRequestContentType        string     `jsonapi:"attr,allowed_request_content_type"`
	AllowedRequestContentTypeCharset string     `jsonapi:"attr,allowed_request_content_type_charset"`
	ArgLength                        int        `jsonapi:"attr,arg_length"`
	ArgNameLength                    int        `jsonapi:"attr,arg_name_length"`
	CRSValidateUTF8Encoding          bool       `jsonapi:"attr,crs_validate_utf8_encoding"`
	CombinedFileSizes                int        `jsonapi:"attr,combined_file_sizes"`
	Comment                          string     `jsonapi:"attr,comment"`
	CreatedAt                        *time.Time `jsonapi:"attr,created_at,iso8601"`
	CriticalAnomalyScore             int        `jsonapi:"attr,critical_anomaly_score"`
	DeployedAt                       *time.Time `jsonapi:"attr,deployed_at,iso8601"`
	Error                            string     `jsonapi:"attr,error"`
	ErrorAnomalyScore                int        `jsonapi:"attr,error_anomaly_score"`
	HTTPViolationScoreThreshold      int        `jsonapi:"attr,http_violation_score_threshold"`
	HighRiskCountryCodes             string     `jsonapi:"attr,high_risk_country_codes"`
	ID                               string     `jsonapi:"primary,waf_firewall_version"`
	InboundAnomalyScoreThreshold     int        `jsonapi:"attr,inbound_anomaly_score_threshold"`
	LFIScoreThreshold                int        `jsonapi:"attr,lfi_score_threshold"`
	LastDeploymentStatus             string     `jsonapi:"attr,last_deployment_status"`
	Locked                           bool       `jsonapi:"attr,locked"`
	MaxFileSize                      int        `jsonapi:"attr,max_file_size"`
	MaxNumArgs                       int        `jsonapi:"attr,max_num_args"`
	NoticeAnomalyScore               int        `jsonapi:"attr,notice_anomaly_score"`
	Number                           int        `jsonapi:"attr,number"`
	PHPInjectionScoreThreshold       int        `jsonapi:"attr,php_injection_score_threshold"`
	ParanoiaLevel                    int        `jsonapi:"attr,paranoia_level"`
	RCEScoreThreshold                int        `jsonapi:"attr,rce_score_threshold"`
	RFIScoreThreshold                int        `jsonapi:"attr,rfi_score_threshold"`
	RestrictedExtensions             string     `jsonapi:"attr,restricted_extensions"`
	RestrictedHeaders                string     `jsonapi:"attr,restricted_headers"`
	SQLInjectionScoreThreshold       int        `jsonapi:"attr,sql_injection_score_threshold"`
	SessionFixationScoreThreshold    int        `jsonapi:"attr,session_fixation_score_threshold"`
	TotalArgLength                   int        `jsonapi:"attr,total_arg_length"`
	UpdatedAt                        *time.Time `jsonapi:"attr,updated_at,iso8601"`
	WarningAnomalyScore              int        `jsonapi:"attr,warning_anomaly_score"`
	XSSScoreThreshold                int        `jsonapi:"attr,xss_score_threshold"`
}

WAFVersion is the information about a WAF version object.

type WAFVersionResponse

type WAFVersionResponse struct {
	Info  infoResponse
	Items []*WAFVersion
}

WAFVersionResponse represents a list WAF versions full response.

Jump to

Keyboard shortcuts

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