fastly

package
v8.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2024 License: Apache-2.0 Imports: 29 Imported by: 0

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" // #nosec G101

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

View Source
const APIKeyHeader = "Fastly-Key" // #nosec G101

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

View Source
const DebugEnvVar = "FASTLY_DEBUG_MODE"

DebugEnvVar is the name of an environment variable that can be used to switch the API client into debug mode.

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 ErrInvalidMethod = NewFieldError("Method").Message("invalid")

ErrInvalidMethod is an error that is returned when the input struct has an invalid Method value.

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 ErrMissingCertBundle = NewFieldError("CertBundle")

ErrMissingCertBundle is an error that is returned when an input struct requires a "CertBundle" 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 = "8.6.4"

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 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 ToPointer

func ToPointer[T MultiConstraint](v T) *T

ToPointer converts T to *T.

func ToValue

func ToValue[T MultiConstraint](v *T) T

ToValue converts *T to T. If v is nil, then return T's zero value.

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 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 AlertDefinition

type AlertDefinition struct {
	CreatedAt          time.Time           `json:"created_at"`
	Description        string              `json:"description"`
	Dimensions         map[string][]string `json:"dimensions"`
	EvaluationStrategy map[string]any      `json:"evaluation_strategy"`
	ID                 string              `json:"id"`
	IntegrationIDs     []string            `json:"integration_ids"`
	Metric             string              `json:"metric"`
	Name               string              `json:"name"`
	ServiceID          string              `json:"service_id"`
	Source             string              `json:"source"`
	UpdatedAt          time.Time           `json:"updated_at"`
}

AlertDefinition holds the configuration for one alert.

type AlertDefinitionsResponse

type AlertDefinitionsResponse struct {
	Data []AlertDefinition `json:"data"`
	Meta AlertsMeta        `json:"meta"`
}

AlertDefinitionsResponse is the response for an alert definitions query.

type AlertHistory

type AlertHistory struct {
	Definition   AlertDefinition `json:"definition"`
	DefinitionID string          `json:"definition_id"`
	End          time.Time       `json:"end"`
	ID           string          `json:"id"`
	Start        time.Time       `json:"start"`
	Status       string          `json:"status"`
}

AlertHistory describes the status of an alert definition over a time range.

type AlertHistoryResponse

type AlertHistoryResponse struct {
	Data []AlertHistory `json:"data"`
	Meta AlertsMeta     `json:"meta"`
}

AlertHistoryResponse is the response for an alert history query.

type AlertsMeta

type AlertsMeta struct {
	Limit      int    `json:"limit"`
	NextCursor string `json:"next_cursor"`
	Sort       string `json:"sort"`
	Total      int    `json:"total"`
}

AlertsMeta holds metadata about an alerts query.

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"`
	ShareKey            *string    `mapstructure:"share_key"`
	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"`
	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 BatchConfigStoreItem

type BatchConfigStoreItem 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 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 BatchModifyConfigStoreItemsInput

type BatchModifyConfigStoreItemsInput struct {
	// StoreID is the ID of the Config Store to modify items for (required).
	StoreID string `json:"-"`
	// Items is a list of Config Store items.
	Items []*BatchConfigStoreItem `json:"items"`
}

BatchModifyConfigStoreItemsInput is the input parameter to the BatchModifyConfigStoreItems 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 BatchModifyKVStoreKeyInput

type BatchModifyKVStoreKeyInput struct {
	// ID is the ID of the kv store (required).
	ID string
	// Body is the HTTP request body containing a collection of JSON objects
	// separated by a new line. {"key": "example","value": "<base64-encoded>"}
	// (required).
	Body io.Reader
}

BatchModifyKVStoreKeyInput is the input to the BatchModifyKVStoreKey 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"
)

type Client

type Client struct {
	// Address is the address of Fastly's API endpoint.
	Address string
	// DebugMode enables HTTP request/response dumps.
	DebugMode bool
	// 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) BatchModifyConfigStoreItems

func (c *Client) BatchModifyConfigStoreItems(i *BatchModifyConfigStoreItemsInput) error

BatchModifyConfigStoreItems bulk updates dictionary items.

func (*Client) BatchModifyDictionaryItems

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

BatchModifyDictionaryItems bulk updates dictionary items.

func (*Client) BatchModifyKVStoreKey

func (c *Client) BatchModifyKVStoreKey(i *BatchModifyKVStoreKeyInput) error

BatchModifyKVStoreKey streams key/value JSON objects into an kv store. NOTE: We wrap the io.Reader with *bufio.Reader to handle large streams.

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) CreateAlertDefinition

func (c *Client) CreateAlertDefinition(i *CreateAlertDefinitionInput) (*AlertDefinition, error)

CreateAlertDefinition creates a new alert definition.

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

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

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

CreateConfigStore creates a new Fastly config store.

func (*Client) CreateConfigStoreItem

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) CreateKVStore

func (c *Client) CreateKVStore(i *CreateKVStoreInput) (*KVStore, error)

CreateKVStore 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) CreateNewRelicOTLP

func (c *Client) CreateNewRelicOTLP(i *CreateNewRelicOTLPInput) (*NewRelicOTLP, error)

CreateNewRelicOTLP creates a new Fastly newrelic.

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

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) CreateTLSMutualAuthentication

func (c *Client) CreateTLSMutualAuthentication(i *CreateTLSMutualAuthenticationInput) (*TLSMutualAuthentication, error)

CreateTLSMutualAuthentication 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) DeleteAlertDefinition

func (c *Client) DeleteAlertDefinition(i *DeleteAlertDefinitionInput) error

DeleteAlertDefinition deletes the specified alert definition.

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

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

DeleteConfigStore deletes the given config store version.

func (*Client) DeleteConfigStoreItem

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 any, 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 any, ro *RequestOptions) (*http.Response, error)

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

func (*Client) DeleteKVStore

func (c *Client) DeleteKVStore(i *DeleteKVStoreInput) error

DeleteKVStore deletes the specified resource.

func (*Client) DeleteKVStoreKey

func (c *Client) DeleteKVStoreKey(i *DeleteKVStoreKeyInput) error

DeleteKVStoreKey deletes the specified resource.

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) DeleteNewRelicOTLP

func (c *Client) DeleteNewRelicOTLP(i *DeleteNewRelicOTLPInput) error

DeleteNewRelicOTLP deletes the given newrelic version.

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

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) DeleteTLSMutualAuthentication

func (c *Client) DeleteTLSMutualAuthentication(i *DeleteTLSMutualAuthenticationInput) error

DeleteTLSMutualAuthentication 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

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

DisableHTTP3 deletes the specified resource.

func (*Client) DisableProduct

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

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

EnableHTTP3 creates a new resource.

func (*Client) EnableProduct

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) GetACLEntries

func (c *Client) GetACLEntries(i *GetACLEntriesInput) *ListPaginator[ACLEntry]

GetACLEntries returns a ListPaginator for paginating through the resources.

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) GetAlertDefinition

func (c *Client) GetAlertDefinition(i *GetAlertDefinitionInput) (*AlertDefinition, error)

GetAlertDefinition retrieves a specified alert definition.

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

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

GetConfigStore returns the config store for the given input parameters.

func (*Client) GetConfigStoreItem

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

GetConfigStoreItem gets the config store item with the given parameters.

func (*Client) GetConfigStoreMetadata

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) GetDictionaryItems

func (c *Client) GetDictionaryItems(i *GetDictionaryItemsInput) *ListPaginator[DictionaryItem]

GetDictionaryItems returns a ListPaginator for paginating through the resources.

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) GetDomainMetricsForService

func (c *Client) GetDomainMetricsForService(i *GetDomainMetricsInput) (*DomainInspector, error)

GetDomainMetricsForService retrieves the specified resource.

func (*Client) GetDomainMetricsForServiceJSON

func (c *Client) GetDomainMetricsForServiceJSON(i *GetDomainMetricsInput, dst any) error

GetDomainMetricsForServiceJSON 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

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) GetKVStore

func (c *Client) GetKVStore(i *GetKVStoreInput) (*KVStore, error)

GetKVStore retrieves the specified resource.

func (*Client) GetKVStoreKey

func (c *Client) GetKVStoreKey(i *GetKVStoreKeyInput) (string, error)

GetKVStoreKey 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) GetNewRelicOTLP

func (c *Client) GetNewRelicOTLP(i *GetNewRelicOTLPInput) (*NewRelicOTLP, error)

GetNewRelicOTLP gets the newrelic configuration with the given parameters.

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 any) 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

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

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) GetServices

func (c *Client) GetServices(i *GetServicesInput) *ListPaginator[Service]

GetServices returns a ListPaginator for paginating through the resources.

func (*Client) GetSettings

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

GetSettings retrieves the specified resource.

func (*Client) GetSigningKey

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 any) 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) GetTLSMutualAuthentication

func (c *Client) GetTLSMutualAuthentication(i *GetTLSMutualAuthenticationInput) (*TLSMutualAuthentication, error)

GetTLSMutualAuthentication 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) InsertKVStoreKey

func (c *Client) InsertKVStoreKey(i *InsertKVStoreKeyInput) error

InsertKVStoreKey inserts a key/value pair into an kv 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. Not suitable for large collections.

func (*Client) ListACLs

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

ListACLs retrieves all resources.

func (*Client) ListAlertDefinitions

func (c *Client) ListAlertDefinitions(i *ListAlertDefinitionsInput) (*AlertDefinitionsResponse, error)

ListAlertDefinitions retrieves filtered, paginated alert definitions.

func (*Client) ListAlertHistory

func (c *Client) ListAlertHistory(i *ListAlertHistoryInput) (*AlertHistoryResponse, error)

ListAlertHistory retrieves filtered, paginated alert history records.

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

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

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

func (*Client) ListConfigStoreServices

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

func (c *Client) ListConfigStores(i *ListConfigStoresInput) ([]*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. Not suitable for large collections.

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) ListKVStoreKeys

func (c *Client) ListKVStoreKeys(i *ListKVStoreKeysInput) (*ListKVStoreKeysResponse, error)

ListKVStoreKeys retrieves all resources.

func (*Client) ListKVStores

func (c *Client) ListKVStores(i *ListKVStoresInput) (*ListKVStoresResponse, error)

ListKVStores 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) ListNewRelicOTLP

func (c *Client) ListNewRelicOTLP(i *ListNewRelicOTLPInput) ([]*NewRelicOTLP, error)

ListNewRelicOTLP returns the list of newrelic for the configuration version.

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

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. Not suitable for large collections.

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) ListTLSMutualAuthentication

func (c *Client) ListTLSMutualAuthentication(i *ListTLSMutualAuthenticationsInput) ([]*TLSMutualAuthentication, error)

ListTLSMutualAuthentication 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(_ *ListTokensInput) ([]*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) NewListKVStoreKeysPaginator

func (c *Client) NewListKVStoreKeysPaginator(i *ListKVStoreKeysInput) PaginatorKVStoreEntries

NewListKVStoreKeysPaginator returns a new paginator for the provided LitKVStoreKeysInput.

func (*Client) NewListKVStoresPaginator

func (c *Client) NewListKVStoresPaginator(i *ListKVStoresInput) *ListKVStoresPaginator

NewListKVStoresPaginator creates a new paginator for the given ListKVStoresInput.

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 any, 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 any, 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 any, 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 any, 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 any, 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 any, 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 any, 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 any, 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

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 any, 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 any, 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/v8/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:      fastly.ToPointer("test-dictionary-item"),
		ItemValue:    fastly.ToPointer("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 any, 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

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 any, ro *RequestOptions) (*http.Response, error)

RequestJSON constructs JSON HTTP request.

func (*Client) RequestJSONAPI

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

RequestJSONAPI constructs JSON API HTTP request.

func (*Client) RequestJSONAPIBulk

func (c *Client) RequestJSONAPIBulk(verb, p string, i any, 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) TestAlertDefinition

func (c *Client) TestAlertDefinition(i *TestAlertDefinitionInput) error

TestAlertDefinition validates alert definition and sends test notifications without creating.

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) UpdateAlertDefinition

func (c *Client) UpdateAlertDefinition(i *UpdateAlertDefinitionInput) (*AlertDefinition, error)

UpdateAlertDefinition updates the specified alert definition.

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

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

UpdateConfigStore updates a specific config store.

func (*Client) UpdateConfigStoreItem

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) UpdateNewRelicOTLP

func (c *Client) UpdateNewRelicOTLP(i *UpdateNewRelicOTLPInput) (*NewRelicOTLP, error)

UpdateNewRelicOTLP updates a specific newrelic.

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

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) UpdateTLSMutualAuthentication

func (c *Client) UpdateTLSMutualAuthentication(i *UpdateTLSMutualAuthenticationInput) (*TLSMutualAuthentication, error)

UpdateTLSMutualAuthentication 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

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

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) VerifySignature

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

VerifySignature 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 (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

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

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

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 Consistency

type Consistency int64

Consistency is a base for the different consistency variants.

const (
	ConsistencyUndefined Consistency = iota
	ConsistencyEventual
	ConsistencyStrong
)

func (Consistency) String

func (c Consistency) String() string

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.
	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 CreateAlertDefinitionInput

type CreateAlertDefinitionInput struct {
	// Description is additional text included in an alert notification (optional, limit 4096).
	Description *string `json:"description"`
	// Dimensions are a list of origins or domains that the alert is restricted to.
	Dimensions map[string][]string `json:"dimensions"`
	// EvaluationStrategy is the evaluation strategy for the alert (required).
	EvaluationStrategy map[string]any `json:"evaluation_strategy"`
	// IntegrationIDs are IDs of integrations that notifications will be sent to.
	IntegrationIDs []string `json:"integration_ids"`
	// Metric is the name of the metric being monitored for alert evaluation (required).
	Metric *string `json:"metric"`
	// Name is the summary text of the alert (required, limit 255).
	Name *string `json:"name"`
	// ServiceID is the ID of the service that the alert is monitoring (required).
	ServiceID *string `json:"service_id"`
	// Source is the metric source (required). Options are: 'stats', 'origins', 'domains'.
	Source *string `json:"source"`
}

CreateAlertDefinitionInput is used as input to the CreateAlertDefinition 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"`
	// ShareKey is a value that when shared across backends will enable those backends to share the same health check.
	ShareKey *string `url:"share_key,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"`
}

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

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

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.
	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"`
	// ProjectID is your Google Cloud Platform project ID. Not required if user and secret_key are present.
	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:"-"`
	// 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 CreateKVStoreInput

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

CreateKVStoreInput is used as an input to the CreateKVStore 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 CreateNewRelicOTLPInput

type CreateNewRelicOTLPInput 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"`
	// URL is the optional URL of a New Relic trace observer to send logs
	// to. Must be a New Relic domain name.
	URL *string `url:"url,omitempty"`
}

CreateNewRelicOTLPInput is used as input to the CreateNewRelicOTLP 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

type CreateResourceInput struct {
	// Name is the name of the resource being linked to (e.g. a kv store).
	//
	// NOTE: This doesn't have to match the actual resource name, i.e. the name
	// of the KV Store. Rather, this is an opportunity for you to use an
	// 'alias' for your KV Store. So your service will now refer to the
	// KV 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"`
	// 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"`
	// 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

	// Method is the HTTP request method used to create the secret.
	//
	// Secret names must be unique within a store.
	// The method effects how duplicate names are handled:
	//
	// - POST:  Default. Create a secret and error if one already exists with the same name.
	// - PUT:   Create or recreate a secret.
	// - PATCH: Recreate a secret and error if one does not already exist with the same name.
	//
	// More details: https://developer.fastly.com/reference/api/services/resources/secret-store-secret/
	Method string
}

CreateSecretInput is used as input to the CreateSecret function.

type CreateSecretStoreInput

type CreateSecretStoreInput struct {
	// Name of the Secret Store (required).
	Name string `json:"name"`
}

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 CreateTLSMutualAuthenticationInput

type CreateTLSMutualAuthenticationInput struct {
	// CertBundle is one or more certificates. Enter each individual certificate blob on a new line. Must be PEM-formatted (required).
	CertBundle string `jsonapi:"attr,cert_bundle"`
	// Enforced determines whether Mutual TLS will fail closed (enforced) or fail open.
	Enforced bool `jsonapi:"attr,enforced"`
	// ID should not be set (it's internally used to help marshal the JSONAPI request data).
	ID string `jsonapi:"primary,mutual_authentication"`
	// Name is a custom name for your mutual authentication (optional).
	Name string `jsonapi:"attr,name,omitempty"`
}

CreateTLSMutualAuthenticationInput is used as input to the CreateTLSMutualAuthentication 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 DeleteAlertDefinitionInput

type DeleteAlertDefinitionInput struct {
	// ID of definition to delete (required).
	ID *string
}

DeleteAlertDefinitionInput is used as input to the DeleteAlertDefinition 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

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

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 DeleteKVStoreInput

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

DeleteKVStoreInput is the input to the DeleteKVStore function.

type DeleteKVStoreKeyInput

type DeleteKVStoreKeyInput struct {
	// ID is the ID of the kv store (required).
	ID string
	// Key is the key to delete (required).
	Key string
}

DeleteKVStoreKeyInput is the input to the DeleteKVStoreKey function.

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 DeleteNewRelicOTLPInput

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

DeleteNewRelicOTLPInput is the input parameter to DeleteNewRelicOTLP.

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

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 DeleteTLSMutualAuthenticationInput

type DeleteTLSMutualAuthenticationInput struct {
	// ID is an alphanumeric string identifying a mutual authentication (required).
	ID string
}

DeleteTLSMutualAuthenticationInput 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
)

type DisableHTTP3Input

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 DomainData

type DomainData struct {
	Dimensions map[string]*string `mapstructure:"dimensions"`
	Values     []*DomainMetrics   `mapstructure:"values"`
}

DomainData represents the series of values over time for a single dimension combination.

type DomainInspector

type DomainInspector struct {
	Data   []*DomainData `mapstructure:"data"`
	Meta   *DomainMeta   `mapstructure:"meta"`
	Status *string       `mapstructure:"status"`
}

DomainInspector represents the response format returned for a request to the historical Domain Inspector metrics endpoint.

type DomainMeta

type DomainMeta 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"`
}

DomainMeta is the meta section returned for /metrics/domains/... responses.

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 DomainMetrics

type DomainMetrics struct {
	Bandwidth                  *uint64  `mapstructure:"bandwidth"`
	BereqBodyBytes             *uint64  `mapstructure:"bereq_body_bytes"`
	BereqHeaderBytes           *uint64  `mapstructure:"bereq_header_bytes"`
	EdgeHitRatio               *float64 `mapstructure:"edge_hit_ratio"`
	EdgeHitRequests            *uint64  `mapstructure:"edge_hit_requests"`
	EdgeMissRequests           *uint64  `mapstructure:"edge_miss_requests"`
	EdgeRequests               *uint64  `mapstructure:"edge_requests"`
	EdgeRespBodyBytes          *uint64  `mapstructure:"edge_resp_body_bytes"`
	EdgeRespHeaderBytes        *uint64  `mapstructure:"edge_resp_header_bytes"`
	OriginFetchRespBodyBytes   *uint64  `mapstructure:"origin_fetch_resp_body_bytes"`
	OriginFetchRespHeaderBytes *uint64  `mapstructure:"origin_fetch_resp_header_bytes"`
	OriginFetches              *uint64  `mapstructure:"origin_fetches"`
	OriginOffload              *float64 `mapstructure:"origin_offload"`
	OriginStatus1xx            *uint64  `mapstructure:"origin_status_1xx"`
	OriginStatus200            *uint64  `mapstructure:"origin_status_200"`
	OriginStatus204            *uint64  `mapstructure:"origin_status_204"`
	OriginStatus206            *uint64  `mapstructure:"origin_status_206"`
	OriginStatus2xx            *uint64  `mapstructure:"origin_status_2xx"`
	OriginStatus301            *uint64  `mapstructure:"origin_status_301"`
	OriginStatus302            *uint64  `mapstructure:"origin_status_302"`
	OriginStatus304            *uint64  `mapstructure:"origin_status_304"`
	OriginStatus3xx            *uint64  `mapstructure:"origin_status_3xx"`
	OriginStatus400            *uint64  `mapstructure:"origin_status_400"`
	OriginStatus401            *uint64  `mapstructure:"origin_status_401"`
	OriginStatus403            *uint64  `mapstructure:"origin_status_403"`
	OriginStatus404            *uint64  `mapstructure:"origin_status_404"`
	OriginStatus416            *uint64  `mapstructure:"origin_status_416"`
	OriginStatus429            *uint64  `mapstructure:"origin_status_429"`
	OriginStatus4xx            *uint64  `mapstructure:"origin_status_4xx"`
	OriginStatus500            *uint64  `mapstructure:"origin_status_500"`
	OriginStatus501            *uint64  `mapstructure:"origin_status_501"`
	OriginStatus502            *uint64  `mapstructure:"origin_status_502"`
	OriginStatus503            *uint64  `mapstructure:"origin_status_503"`
	OriginStatus504            *uint64  `mapstructure:"origin_status_504"`
	OriginStatus505            *uint64  `mapstructure:"origin_status_505"`
	OriginStatus5xx            *uint64  `mapstructure:"origin_status_5xx"`
	Requests                   *uint64  `mapstructure:"requests"`
	RespBodyBytes              *uint64  `mapstructure:"resp_body_bytes"`
	RespHeaderBytes            *uint64  `mapstructure:"resp_header_bytes"`
	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"`
}

DomainMetrics represents the possible metrics that can be returned by a call to the Domain Inspector endpoints.

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"
)

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"
)

type ERLResponse

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
)

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 (required).
	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  *int         `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

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" json:"code,omitempty"`
	Detail string          `mapstructure:"detail" json:"detail,omitempty"`
	ID     string          `mapstructure:"id" json:"id,omitempty"`
	Meta   *map[string]any `mapstructure:"meta" json:"meta,omitempty"`
	Status string          `mapstructure:"status" json:"status,omitempty"`
	Title  string          `mapstructure:"title" json:"title,omitempty"`
}

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]any `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"`
	ProjectID         *string    `mapstructure:"project_id"`
	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 GetACLEntriesInput

type GetACLEntriesInput 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
}

GetACLEntriesInput is the input parameter to GetACLEntries function.

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
	// Filter based on Created At filter[created_at][gt]
	CreatedAt 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 GetAlertDefinitionInput

type GetAlertDefinitionInput struct {
	// ID of definition to fetch (required).
	ID *string
}

GetAlertDefinitionInput is used as input to the GetAlertDefinition function.

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 (required).
	Month uint8
	// Year is a 4-digit year (required).
	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

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

GetConfigStoreInput is the input to GetConfigStore.

type GetConfigStoreItemInput

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

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 (required).
	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 GetDictionaryItemsInput

type GetDictionaryItemsInput 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
}

GetDictionaryItemsInput is used as input to the GetDictionaryItems 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 GetDomainMetricsInput

type GetDomainMetricsInput 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
	// Domains limit query to one or more specific domains.
	Domains []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
	// Limit is the limit of returned data
	Limit *int
	// 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 (required).
	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
}

GetDomainMetricsInput is the input to a DomainMetrics request.

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

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 GetKVStoreInput

type GetKVStoreInput struct {
	// ID is the ID of the store to fetch (required).
	ID string
}

GetKVStoreInput is the input to the GetKVStore function.

type GetKVStoreKeyInput

type GetKVStoreKeyInput struct {
	// ID is the ID of the kv store (required).
	ID string
	// Key is the key to fetch (required).
	Key string
}

GetKVStoreKeyInput is the input to the GetKVStoreKey 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 GetNewRelicOTLPInput

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

GetNewRelicOTLPInput is used as input to the GetNewRelicOTLP 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 (required).
	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 (required).
	ServiceID string
	// Timestamp is a value to use for subsequent requests (required).
	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

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 GetServicesInput

type GetServicesInput 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
}

GetServicesInput is used as input to the GetServices 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 GetTLSMutualAuthenticationInput

type GetTLSMutualAuthenticationInput struct {
	// ID is an alphanumeric string identifying a mutual authentication (required).
	ID string
	// Include is a comma-separated list of related objects to include (optional).
	Include string
}

GetTLSMutualAuthenticationInput is used as input to the GetTLSMutualAuthentication 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

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
	// RateLimitRemaining is the number of API requests remaining in the current
	// rate limit window. A `nil` value indicates the API returned no value for
	// the associated Fastly-RateLimit-Remaining response header.
	RateLimitRemaining *int
	// RateLimitReset is the time at which the current rate limit window resets,
	// as a Unix timestamp. A `nil` value indicates the API returned no value for
	// the associated Fastly-RateLimit-Reset response header.
	RateLimitReset *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"
)

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"
)

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 list of IP addresses returned by the Fastly API.

type InsertKVStoreKeyInput

type InsertKVStoreKeyInput struct {
	// Body is the value to insert and will be streamed to the endpoint.
	// This is for users who are passing very large files.
	// Otherwise use the 'Value' field instead.
	Body LengthReader
	// ID is the ID of the kv store (required).
	ID string
	// Key is the key to add (required).
	Key string
	// Value is the value to insert (ignored if Body is set).
	Value string
}

InsertKVStoreKeyInput is the input to the InsertKVStoreKey function.

type KVStore

type KVStore struct {
	CreatedAt *time.Time `mapstructure:"created_at"`
	ID        string     `mapstructure:"id"`
	Name      string     `mapstructure:"name"`
	UpdatedAt *time.Time `mapstructure:"updated_at"`
}

KVStore represents an KV Store response from the Fastly API.

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 LengthReader

type LengthReader interface {
	io.Reader
	Len() int
}

LengthReader represents a type that can be read and exposes its length.

func FileLengthReader

func FileLengthReader(f *os.File) (LengthReader, error)

FileLengthReader allows an os.File type to be passed as a LengthReader to the InsertKVStoreKeyInput.Body field.

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
	// 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 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 ListAlertDefinitionsInput

type ListAlertDefinitionsInput struct {
	// Cursor is the pagination cursor from a previous request's meta (optional).
	Cursor *string
	// Limit is the maximum number of items included in each response (optional).
	Limit *int
	// Name filters definitions by name substring (optional).
	Name *string
	// ServiceID filters definitions by service (optional).
	ServiceID *string
	// Sort is the field on which to sort definitions (optional).
	Sort *string
}

ListAlertDefinitionsInput is used as input to the ListAlertDefinitions function.

type ListAlertHistoryInput

type ListAlertHistoryInput struct {
	// After filters history having start or end on or after the provided timestamp (optional).
	After *string
	// Before filters history having start or end on or before the provided timestamp (optional).
	Before *string
	// Cursor is the pagination cursor from a previous request's meta (optional).
	Cursor *string
	// DefinitionID filters history by definition (optional).
	DefinitionID *string
	// Limit is the maximum number of items included in each response (optional).
	Limit *int
	// ServiceID filters history by service (optional).
	ServiceID *string
	// Sort is the field on which to sort definitions (optional).
	Sort *string
	// Status is the alert status.
	Status *string
}

ListAlertHistoryInput is used as input to the ListAlertHistory 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

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

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

ListConfigStoreServicesInput is the input to ListConfigStoreServices.

type ListConfigStoresInput

type ListConfigStoresInput struct {
	// Name is the name of a config store (optional).
	Name 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
	// 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 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 ListKVStoreKeysInput

type ListKVStoreKeysInput struct {
	// Consistency determines accuracy of results (values: eventual, strong). i.e. 'eventual' uses caching to improve performance (default: strong)
	Consistency Consistency
	// Cursor is used for paginating through results.
	Cursor string
	// ID is the ID of the kv store to list keys for (required).
	ID string
	// Limit is the maximum number of items included the response.
	Limit int
}

ListKVStoreKeysInput is the input to the ListKVStoreKeys function.

type ListKVStoreKeysPaginator

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

ListKVStoreKeysPaginator is the opaque type for a ListKVStoreKeys calls with pagination.

func (*ListKVStoreKeysPaginator) Err

Err returns any error from the paginator.

func (*ListKVStoreKeysPaginator) Keys

func (l *ListKVStoreKeysPaginator) Keys() []string

Keys returns the current set of keys retrieved by the paginator.

func (*ListKVStoreKeysPaginator) Next

func (l *ListKVStoreKeysPaginator) Next() bool

Next advances the paginator.

type ListKVStoreKeysResponse

type ListKVStoreKeysResponse struct {
	// Data is the list of keys
	Data []string
	// Meta is the information for pagination
	Meta map[string]string
}

ListKVStoreKeysResponse retrieves all resources.

type ListKVStoresInput

type ListKVStoresInput struct {
	// Cursor is used for paginating through results.
	Cursor string
	// Limit is the maximum number of items included the response.
	Limit int
}

ListKVStoresInput is used as an input to the ListKVStores function.

type ListKVStoresPaginator

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

ListKVStoresPaginator is the opaque type for a ListKVStores call with pagination.

func (*ListKVStoresPaginator) Err

func (l *ListKVStoresPaginator) Err() error

Err returns any error from the pagination.

func (*ListKVStoresPaginator) Next

func (l *ListKVStoresPaginator) Next() bool

Next advances the paginator and fetches the next set of kv stores.

func (*ListKVStoresPaginator) Stores

func (l *ListKVStoresPaginator) Stores() []KVStore

Stores returns the current partial list of kv stores.

type ListKVStoresResponse

type ListKVStoresResponse struct {
	// Data is the list of returned kv stores
	Data []KVStore
	// Meta is the information for pagination
	Meta map[string]string
}

ListKVStoresResponse retrieves all resources.

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 ListNewRelicOTLPInput

type ListNewRelicOTLPInput struct {
	// ServiceID is the ID of the service (required).
	ServiceID string

	// ServiceVersion is the specific configuration version (required).
	ServiceVersion int
}

ListNewRelicOTLPInput is used as input to the ListNewRelicOTLP function.

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 ListOpts

type ListOpts 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
}

ListOpts configures the API list options.

type ListPaginator

type ListPaginator[T any] struct {
	CurrentPage int
	LastPage    int
	NextPage    int
	// contains filtered or unexported fields
}

ListPaginator implements the generic Paginator[N] interface.

func NewPaginator

func NewPaginator[T any](client PaginationClient, opts ListOpts, path string) *ListPaginator[T]

NewPaginator returns a *ListPaginator[T]. Exposed for the purposes of mocking the paginator within the Fastly CLI.

NOTE: We can't identify the underlying type of the type parameter T. This is because we don't assign it to any of the defined function parameters. If we did, then we could do this: https://go.dev/play/p/dfTMGjaSSAX. This means we have to have the caller pass the API path.

func (*ListPaginator[T]) GetNext

func (p *ListPaginator[T]) GetNext() ([]*T, error)

GetNext retrieves data in the next page.

func (*ListPaginator[T]) HasNext

func (p *ListPaginator[T]) HasNext() bool

HasNext returns a boolean indicating whether more pages are available.

func (*ListPaginator[T]) Remaining

func (p *ListPaginator[T]) Remaining() int

Remaining returns the remaining page count.

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

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
	// Name is the name of the secret store (optional).
	Name string
}

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
	// Sort is the field on which to sort.
	Sort *string
}

ListServicesInput is used as input to the ListServices function.

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 ListTLSMutualAuthenticationsInput

type ListTLSMutualAuthenticationsInput struct {
	// Include is a list of related objects to include (optional).
	Include []string
	// PageNumber is the required page index for pagination.
	PageNumber int
	// PageSize is the number of records per page.
	PageSize int
}

ListTLSMutualAuthenticationsInput is used as input to the Client.ListTLSMutualAuthentication function.

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 ListTokensInput

type ListTokensInput struct {
}

ListTokensInput is used as input to the ListTokens 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 MultiConstraint

type MultiConstraint interface {
	~string | ~int | int32 | ~int64 | uint | uint8 | uint32 | uint64 | float64 | ~bool
}

MultiConstraint is a generic constraint for ToPointer/ToValue.

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 NewRelicOTLP

type NewRelicOTLP 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"`
	URL               *string    `mapstructure:"url"`
}

NewRelicOTLP represents a newrelic 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 `mapstructure:"metadata"`
	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 `mapstructure:"authors"`
	Description *string  `mapstructure:"description"`
	FilesHash   *string  `mapstructure:"files_hash"`
	HashSum     *string  `mapstructure:"hashsum"`
	Language    *string  `mapstructure:"language"`
	Name        *string  `mapstructure:"name"`
	Size        *int64   `mapstructure:"size"`
}

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 PaginationClient

type PaginationClient interface {
	Get(p string, ro *RequestOptions) (*http.Response, error)
}

PaginationClient represents a HTTP client.

type PaginatorKVStoreEntries

type PaginatorKVStoreEntries interface {
	Next() bool
	Keys() []string
	Err() error
}

PaginatorKVStoreEntries represents a paginator for KV Store entries.

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"
)

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

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

func (p Product) String() string

type ProductEnablement

type ProductEnablement struct {
	Product *ProductEnablementNested `mapstructure:"product"`
	Service *ProductEnablementNested `mapstructure:"service"`
}

ProductEnablement represents a response from the Fastly API.

type ProductEnablementInput

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

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 any) 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 (
	// RequestSettingActionUnset unsets the action.
	RequestSettingActionUnset RequestSettingAction = ""

	// RequestSettingActionLookup sets request handling to lookup via the cache.
	RequestSettingActionLookup RequestSettingAction = "lookup"

	// RequestSettingActionPass sets request handling to pass the cache.
	RequestSettingActionPass RequestSettingAction = "pass"
)

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"
)

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

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 *int `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"`
	FileMaxBytes                 *int                    `mapstructure:"file_max_bytes"`
	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.

type S3Redundancy

type S3Redundancy string

S3Redundancy represents the redundancy variants for S3.

type S3ServerSideEncryption

type S3ServerSideEncryption string

S3ServerSideEncryption represents the encryption variants for S3.

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"`
	Recreated bool      `json:"recreated,omitempty"`
}

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"
)

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

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 TLSMutualAuthentication

type TLSMutualAuthentication struct {
	Activations []*TLSActivation `jsonapi:"relation,tls_activations"`
	CreatedAt   *time.Time       `jsonapi:"attr,created_at,iso8601"`
	Enforced    bool             `jsonapi:"attr,enforced"`
	ID          string           `jsonapi:"primary,mutual_authentication"`
	Name        string           `jsonapi:"attr,name"`
	UpdatedAt   *time.Time       `jsonapi:"attr,updated_at,iso8601"`
}

TLSMutualAuthentication represents a mutual authentication certificate.

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 TestAlertDefinitionInput

type TestAlertDefinitionInput struct {
	// Same as CreateAlertDefinitionInput
	CreateAlertDefinitionInput
}

TestAlertDefinitionInput is used as input to the TestAlertDefinition function.

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.
	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 UpdateAlertDefinitionInput

type UpdateAlertDefinitionInput struct {
	// Description is additional text included in an alert notification (optional, limit 4096).
	Description *string `json:"description"`
	// Dimensions are a list of origins or domains that the alert is restricted to.
	Dimensions map[string][]string `json:"dimensions"`
	// EvaluationStrategy is the evaluation strategy for the alert (required).
	EvaluationStrategy map[string]any `json:"evaluation_strategy"`
	// ID of definition to update (required).
	ID *string `json:"-"`
	// IntegrationIDs are IDs of integrations that notifications will be sent to.
	IntegrationIDs []string `json:"integration_ids"`
	// Metric is the name of the metric being monitored for alert evaluation (required).
	Metric *string `json:"metric"`
	// Name is the summary text of the alert (required, limit 255).
	Name *string `json:"name"`
}

UpdateAlertDefinitionInput is used as input to the UpdateAlertDefinition 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"`
	// ShareKey is a value that when shared across backends will enable those backends to share the same health check.
	ShareKey *string `url:"share_key,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

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

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 (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"`
	// 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"`
	// ProjectID is your Google Cloud Platform project ID. Not required if user and secret_key are provided.
	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:"-"`
	// 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 (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 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 UpdateNewRelicOTLPInput

type UpdateNewRelicOTLPInput 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 (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 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"`
	// URL is the optional URL of a New Relic trace observer to send logs
	// to. Must be a New Relic domain name.
	URL *string `url:"url,omitempty"`
}

UpdateNewRelicOTLPInput is used as input to the UpdateNewRelicOTLP 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

type UpdateResourceInput struct {
	// Name is the name of the resource being linked to (e.g. a kv 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"`
	// 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"`
	// 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 (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"`
	// 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 (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:"-"`
	// 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"`
	// MutualAuthentication is an alphanumeric string identifying a mutual authentication.
	MutualAuthentication *TLSMutualAuthentication `jsonapi:"relation,mutual_authentication"` // Only ID of TLSMutualAuthentication needs to be set.
}

UpdateTLSActivationInput is used as input to the UpdateTLSActivation function.

type UpdateTLSMutualAuthenticationInput

type UpdateTLSMutualAuthenticationInput struct {
	// CertBundle is one or more certificates. Enter each individual certificate blob on a new line. Must be PEM-formatted (required).
	CertBundle string `jsonapi:"attr,cert_bundle"`
	// Enforced determines whether Mutual TLS will fail closed (enforced) or fail open.
	Enforced bool `jsonapi:"attr,enforced"`
	// ID is an alphanumeric string identifying a mutual authentication (required).
	ID string `jsonapi:"primary,mutual_authentication"`
	// Name is a custom name for your mutual authentication (optional).
	Name string `jsonapi:"attr,name,omitempty"`
}

UpdateTLSMutualAuthenticationInput is used as input to the UpdateTLSMutualAuthentication 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 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.

Source Files

Jump to

Keyboard shortcuts

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