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