Documentation ¶
Index ¶
- Constants
- func GetCapabilities(w http.ResponseWriter, r *http.Request)
- func GetRequests(w http.ResponseWriter, r *http.Request)
- func PutConfiguration(w http.ResponseWriter, r *http.Request)
- func PutConfigurationResponse(w http.ResponseWriter, r *http.Request)
- func PutHostConfiguration(w http.ResponseWriter, r *http.Request)
- type Capabilities
- type Capability
- type CapabilityQueryResponse
- type CapacityCapabilityValue
- type CapacityLimit
- type CapacityLimitType
- type CapacityRequestedLimits
- type ConfigurationUpdateRequest
- type Footprint
- type FootprintType
- type GenericHostMetadata
- type GenericMetadata
- type GenericRequestMetadata
- type HostMetadataList
- type Limit
- type LimitScope
- type LimitsQueryResponse
- type Metric
- type SupportedCapabilities
- type SupportedGenericMetadataType
- type Telemetry
- type TelemetryCapabilityValue
- type TelemetryConfiguration
- type TelemetrySource
- type TelemetrySourceType
Constants ¶
const ( CapabilityQuery = `SELECT id, type, ucdn FROM cdni_capabilities WHERE type = $1 AND ucdn = $2` AllFootprintQuery = `SELECT footprint_type, footprint_value::text[], capability_id FROM cdni_footprints` InsertCapabilityUpdateQuery = `INSERT INTO cdni_capability_updates (ucdn, data, async_status_id, request_type, host) VALUES ($1, $2, $3, $4, $5)` SelectCapabilityUpdateQuery = `SELECT ucdn, data, async_status_id, request_type, host FROM cdni_capability_updates WHERE id = $1` SelectAllCapabilityUpdatesQuery = `SELECT id, ucdn, data, request_type, host FROM cdni_capability_updates` DeleteCapabilityUpdateQuery = `DELETE FROM cdni_capability_updates WHERE id = $1` UpdateLimitsByCapabilityAndLimitTypeQuery = `UPDATE cdni_limits SET maximum_hard = $1 WHERE capability_id = $2 AND limit_type = $3` )
const ( Egress CapacityLimitType = "egress" Requests = "requests" StorageSize = "storage-size" StorageObjects = "storage-objects" Sessions = "sessions" CacheSize = "cache-size" )
const ( Ipv4Cidr FootprintType = "ipv4cidr" Ipv6Cidr = "ipv6cidr" Asn = "asn" CountryCode = "countrycode" )
Variables ¶
This section is empty.
Functions ¶
func GetCapabilities ¶
func GetCapabilities(w http.ResponseWriter, r *http.Request)
GetCapabilities returns the CDNi capability limits.
func GetRequests ¶
func GetRequests(w http.ResponseWriter, r *http.Request)
GetRequests returns the CDNi configuration update requests.
func PutConfiguration ¶
func PutConfiguration(w http.ResponseWriter, r *http.Request)
PutConfiguration adds the requested CDNi configuration update to the queue and adds an async status.
func PutConfigurationResponse ¶
func PutConfigurationResponse(w http.ResponseWriter, r *http.Request)
PutConfigurationResponse approves or denies a CDNi configuration request and updates the configuration and async status appropriately.
func PutHostConfiguration ¶
func PutHostConfiguration(w http.ResponseWriter, r *http.Request)
PutHostConfiguration adds the requested CDNi configuration update for a specific host to the queue and adds an async status.
Types ¶
type Capabilities ¶
type Capabilities struct {
Capabilities []Capability `json:"capabilities"`
}
Capabilities contains an array of CDNi capabilities.
type Capability ¶
type Capability struct { CapabilityType SupportedCapabilities `json:"capability-type"` CapabilityValue interface{} `json:"capability-value"` Footprints []Footprint `json:"footprints"` }
Capability contains information about a CDNi capability.
type CapabilityQueryResponse ¶
type CapabilityQueryResponse struct { Id int `json:"id" db:"id"` Type string `json:"type" db:"type"` UCdn string `json:"ucdn" db:"ucdn"` }
CapabilityQueryResponse contains data about the capability query.
type CapacityCapabilityValue ¶
type CapacityCapabilityValue struct {
Limits []Limit `json:"limits"`
}
CapacityCapabilityValue contains the total and host capability limits.
type CapacityLimit ¶
type CapacityLimit struct { LimitType string `json:"limit-type"` LimitValue int64 `json:"limit-value"` Footprints []Footprint `json:"footprints"` }
CapacityLimit contains the limit information for a given footprint.
type CapacityLimitType ¶
type CapacityLimitType string
CapacityLimitType is a string of the capacity limit type.
type CapacityRequestedLimits ¶
type CapacityRequestedLimits struct {
RequestedLimits []CapacityLimit `json:"requested-limits"`
}
CapacityRequestedLimits contains the requested capacity limits.
type ConfigurationUpdateRequest ¶
type ConfigurationUpdateRequest struct { ID int `json:"id"` UCDN string `json:"ucdn"` Data json.RawMessage `json:"data"` Host string `json:"host"` RequestType string `json:"requestType" db:"request_type"` AsyncStatusID int `json:"asyncStatusId" db:"async_status_id"` }
ConfigurationUpdateRequest contains information about a requested CDNi configuration update request.
type Footprint ¶
type Footprint struct { FootprintType FootprintType `json:"footprint-type" db:"footprint_type"` FootprintValue []string `json:"footprint-value" db:"footprint_value"` CapabilityId int `json:"-"` }
Footprint contains the information for a footprint.
type GenericHostMetadata ¶
type GenericHostMetadata struct { Host string `json:"host"` HostMetadata HostMetadataList `json:"host-metadata"` }
GenericHostMetadata contains the generic CDNi metadata for a requested update to a specific host.
type GenericMetadata ¶
type GenericMetadata struct { Type SupportedGenericMetadataType `json:"generic-metadata-type"` Value json.RawMessage `json:"generic-metadata-value"` }
GenericMetadata contains generic CDNi metadata.
type GenericRequestMetadata ¶
type GenericRequestMetadata struct { Type string `json:"type"` Metadata json.RawMessage `json:"metadata"` Host string `json:"host,omitempty"` }
GenericRequestMetadata contains the generic CDNi metadata for a requested update.
type HostMetadataList ¶
type HostMetadataList struct {
Metadata json.RawMessage `json:"metadata"`
}
HostMetadataList contains CDNi metadata for a specific host.
type Limit ¶
type Limit struct { Id string `json:"id"` Scope *LimitScope `json:"scope,omitempty"` LimitType CapacityLimitType `json:"limit-type"` MaximumHard int64 `json:"maximum-hard"` MaximumSoft int64 `json:"maximum-soft"` TelemetrySource TelemetrySource `json:"telemetry-source"` }
Limit contains the information for a capacity limit.
type LimitScope ¶
type LimitScope struct { ScopeType *string `json:"type" db:"scope_type"` ScopeValue []string `json:"value" db:"scope_value"` }
LimitScope contains information for a specific limit.
type LimitsQueryResponse ¶
type LimitsQueryResponse struct { Scope *LimitScope `json:"scope,omitempty"` LimitId string `json:"limitId" db:"limit_id"` LimitType string `json:"limitType" db:"limit_type"` MaximumHard int64 `json:"maximum_hard" db:"maximum_hard"` MaximumSoft int64 `json:"maximum_soft" db:"maximum_soft"` TelemetryId string `json:"telemetry_id" db:"telemetry_id"` TelemetryMetic string `json:"telemetry_metric" db:"telemetry_metric"` UCdn string `json:"ucdn" db:"ucdn"` Id string `json:"id" db:"id"` Type string `json:"type" db:"type"` Name string `json:"name" db:"name"` CapabilityId int `json:"-"` }
LimitsQueryResponse contains information about the limits query.
type Metric ¶
type Metric struct { Name string `json:"name"` TimeGranularity int `json:"time-granularity"` DataPercentile int `json:"data-percentile"` Latency int `json:"latency"` TelemetryId string `json:"-"` }
Metric contains the metric information for a telemetry metric.
type SupportedCapabilities ¶
type SupportedCapabilities string
SupportedCapabilities is a string of the supported capabilities.
const ( FciTelemetry SupportedCapabilities = "FCI.Telemetry" FciCapacityLimits = "FCI.CapacityLimits" )
type SupportedGenericMetadataType ¶
type SupportedGenericMetadataType string
SupportedGenericMetadataType is a string of the supported metadata type.
const (
MiRequestedCapacityLimits SupportedGenericMetadataType = "MI.RequestedCapacityLimits"
)
type Telemetry ¶
type Telemetry struct { Id string `json:"id"` Type TelemetrySourceType `json:"type"` CapabilityId int `json:"-"` Metrics []Metric `json:"metrics"` Configuration TelemetryConfiguration `json:"configuration"` }
Telemetry contains the information for a telemetry metric.
type TelemetryCapabilityValue ¶
type TelemetryCapabilityValue struct {
Sources []Telemetry `json:"sources"`
}
TelemetryCapabilityValue contains an array of telemetry sources.
type TelemetryConfiguration ¶
type TelemetryConfiguration struct {
Url string `json:"url"`
}
type TelemetrySource ¶
TelemetrySource contains the information for a telemetry source.
type TelemetrySourceType ¶
type TelemetrySourceType string
TelemetrySourceType is a string of the telemetry source type. Right now only "generic" is supported.
const (
Generic TelemetrySourceType = "generic"
)