Add Customer Origin - HTTP Small

Adds a customer origin to the HTTP Small platform.

Request

A request to create a customer origin configuration is described below.

HTTP Method Request URI

POST

https://api.edgecast.com/v2/mcc/customers/AccountNumber/origins/httpsmall

Define the following variable when submitting the above request.

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). Description

AccountNumber

Required

Replace this variable with a customer account number. This account number may be found in the upper right-hand corner of the MCC.

Request Headers

This endpointIdentifies a request's connection point to our REST API service. only takes advantage of common request headers.

Request Body

A valid customer origin configuration must meet the following requirements:

Pass the following request body parameters:

An indented parameter indicates that it is a property of the request parameter directly above it. When submitting a request, you will need to use the proper syntax to indicate this relationship. Please refer to the parent request parameter for more information.

Name Data Type Description

DirectoryName

Required

String

Identifies the directory name that will be assigned to the customer origin configuration. This alphanumeric value is appended to the end of the base CDN URL that points to the customer origin server.

Example:

HostHeader

Required

String

Defines the value that will be assigned to the Host header for all requests to this customer origin configuration. A host header is especially useful when there are multiple virtual hostnames hosted on a single physical server or load-balanced set of servers.

Use one of the following formats when setting the Host header value:

  • hostname:port (e.g., www.example.com:80)
  • IPv4Address:port (e.g., 10.10.10.255:80)
  • [IPv6Address]:port (e.g., [1:2:3:4:5:6:7:8]:80)
  • Blank: The request URI determines the value of the Host request header.

A protocol should not be specified when setting this parameter.

HttpHostnames

Required for HTTP requests.

Array

This request parameter contains the set of hostnames/IP addresses to which HTTP requests for this customer origin configuration may be fulfilled.

Key information:

  • XML: Each hostname/IP address must be contained within a <Hostname> tag.
  • JSON: The desired set of hostnames/IP addresses must be contained within a set of square brackets. Additionally, each hostname/IP address (i.e., Name request parameter) must be contained with a set of curly braces.

Name

Required for HTTP requests.

String

HttpHostnames array

Identifies the hostname/IP address of an origin server that will be associated with the customer origin configuration being created.

Use one of the following formats to identify an origin server:

  • protocol://hostname:port (e.g., http://www.example.com:80)
  • protocol://IPv4Address:port (e.g., http://10.10.10.255:80)
  • protocol://[IPv6Address]:port (e.g., http://[1:2:3:4:5:6:7:8]:80)

HttpLoadBalancing

Required for HTTP requests.

String

Determines how HTTP requests will be load balanced across the specified hostnames/IP addresses.

Valid values for this request parameter are described below.

  • PF: This value indicates that "Primary and Failover" mode will be used to load balance requests to this customer origin. In this mode, the specified hostnames/IP addresses form an ordered failover list. All requests will first be sent to the first hostname/IP address in the list. If that server is unavailable (i.e., TCP connection is refused or a timeout occurs), then the request will be sent to the next entry in the list.
  • RR: This value indicates that "Round Robin" mode will be used to load balance requests for this customer origin. In this mode, our servers will send a balanced numbers of requests to each hostname.

Key information:

  • Domains are resolved into IP addresses via our DNS servers.
  • The specified hostnames/IP addresses form an ordered list of IP addresses.
  • The specified load balancing mode is irrelevant if only a single hostname or IP address has been defined for handling HTTP requests.
  • This load balancing mode is independent from any external load balancing configuration defined for your origin servers.

HttpsHostnames

Required for HTTPS requests.

Array

This request parameter contains the set of hostnames/IP addresses to which HTTPS requests for this customer origin configuration may be fulfilled.

Key information:

  • XML: Each hostname/IP address must be contained within a <Hostname> tag.
  • JSON: The desired set of hostnames/IP addresses must be contained within a set of square brackets. Additionally, each hostname/IP address (i.e., Name request parameter) must be contained with a set of curly braces.

This request parameter is only available for customers that have purchased an SSL certificate or the HTTPS feature.

Name

Required for HTTPS requests.

String

HttpsHostnames array

Identifies the hostname/IP address of an origin server that will be associated with the customer origin configuration being created.

Use one of the following formats to identify an origin server:

  • protocol://hostname:port (e.g., http://www.example.com:80)
  • protocol://IPv4Address:port (e.g., http://10.10.10.255:80)
  • protocol://[IPv6Address]:port (e.g., http://[1:2:3:4:5:6:7:8]:80)

End-to-end data encryption is sacrificed when the HTTP protocol is used to serve HTTPS requests.

HttpsLoadBalancing

Required for HTTPS requests.

String

Determines how HTTPS requests will be load balanced across the specified hostnames/IP addresses.

Valid values for this request parameter are described below.

  • PF: This value indicates that "Primary and Failover" mode will be used to load balance requests to this customer origin. In this mode, the specified hostnames/IP addresses form an ordered failover list. All requests will first be sent to the first hostname/IP address in the list. If that server is unavailable (i.e., TCP connection is refused or a timeout occurs), then the request will be sent to the next entry in the list.
  • RR: This value indicates that "Round Robin" mode will be used to load balance requests for this customer origin. In this mode, our servers will send a balanced numbers of requests to each hostname/IP address.

Key information:

  • Domains are resolved into IP addresses via our DNS servers.
  • The specified hostnames/IP addresses form an ordered list of IP addresses.
  • The specified load balancing mode is irrelevant if only a single hostname or IP address has been defined for handling HTTP requests.
  • This load balancing mode is independent from any external load balancing configuration defined for your origin servers.

ShieldPOPs

Array

The Origin Shield feature, which must be purchased separately, can be used to reduce the number of requests that must be handled by your customer origin server. If you choose to protect your customer origin with this feature, then you will need to specify each point-of-presence (POP) location where Origin Shield servers will be used to provide an intermediate cache layer between our edge servers and your customer origin.

Specify each desired Origin Shield location as an object containing the following key-value pair:

'POPCode': "Origin Shield Location"

If you would like to configure the Origin Shield feature to produce an optimal reduction in requests to your customer origin server, then you should only specify a single location. The specified location should be the POP closest to your customer origin server.

Turn off Origin Shield by specifying an empty array.

Do not specify more than 4 Origin Shield locations.

POPCode

String

ShieldPOPs array

Defines an Origin Shield configuration for this customer origin. This configuration is defined through a three or four-letter code.

Learn more.

Specify each desired location using uppercase letters.

networkConfiguration

Integer

Determines how hostnames associated with this customer origin configuration will be resolved to an IP address. Valid values are:

  • 1: Default. Indicates that the IP preference for this customer origin will be system-defined. Currently, this configuration causes hostnames to be resolved to IPv4 only.
  • 2: IPv6 Preferred over IPv4. Indicates that although hostnames for this customer origin can be resolved to either IP version, a preference will be given to IPv6.
  • 3: IPv4 Preferred over IPv6. Indicates that although hostnames for this customer origin can be resolved to either IP version, a preference will be given to IPv4.
  • 4: IPv4 Only. Indicates that hostnames for this customer origin can only be resolved to IPv4.
  • 5: IPv6 Only. Indicates that hostnames for this customer origin can only be resolved to IPv6.

Response

The response to the above request includes an HTTP status code, response headers, and a response body.

Status Code

A status code indicates whether the request was successfully performed.

Response Headers

The response for this endpoint only includes standard HTTP response headers.

View common response headers.

Response Body

The response body for a successful request contains the following response parameter:

Name Data Type Description

CustomerOriginId

Integer

Indicates the unique ID assigned to this customer origin configuration.

Errors

The response body for an unsuccessful request may contain an error parameter that provides additional information.

View common error messages.

Sample Request and Response (JSON)

A sample JSON request is shown below.

POST https://api.edgecast.com/v2/mcc/customers/0001/origins/httpsmall HTTP/1.1

Authorization: TOK:12345678-1234-1234-1234-1234567890ab

Accept: application/json

Content-Type: application/json

Host:api.edgecast.com

Content-Length: 413

{
	"DirectoryName" : "MyCustomerOrigin",
	"HostHeader" : "images.example.com:80",
	"HttpHostnames" : [{
			"Name" : "http:\/\/images1.example.com:80"
		}, {
			"Name" : "http:\/\/images2.example.com:80"
		}
	],
	"HttpLoadBalancing" : "RR",
	"HttpsHostnames" : [{
			"Name" : "https:\/\/images.example.com:443"
		}
	],
	"HttpsLoadBalancing" : "PF",
	"ShieldPOPs" : [{
			"POPCode" : "OXR"
		}
	]
}		

A sample JSON response is shown below.

HTTP/1.1 200 OK

Cache-Control: private

Content-Type: application/json; charset=utf-8

Date: Thu, 15 Apr 2021 12:00:00 GMT

Content-Length: 34

{
	"CustomerOriginId" : 123456
}		

Sample Request and Response (XML)

A sample XML request is shown below.

POST https://api.edgecast.com/v2/mcc/customers/0001/origins/httpsmall HTTP/1.1

Authorization: TOK:12345678-1234-1234-1234-1234567890ab

Accept: application/xml

Content-Type: application/xml

Host:api.edgecast.com

Content-Length: 657

<CustomerOriginParameter xmlns="http://www.whitecdn.com/schemas/apiservices/">
	<DirectoryName>MyCustomerOrigin</DirectoryName>
	<HostHeader>images.example.com:80</HostHeader>
	<HttpHostnames>
		<Hostname>
			<Name>http://images1.example.com:80</Name>
		</Hostname>
		<Hostname>
			<Name>http://images2.example.com:80</Name>
		</Hostname>
	</HttpHostnames>
	<HttpLoadBalancing>RR</HttpLoadBalancing>
	<HttpsHostnames>
		<Hostname>
			<Name>https://images.example.com:443</Name>
		</Hostname>
	</HttpsHostnames>
	<HttpsLoadBalancing>PF</HttpsLoadBalancing>
	<ShieldPOPs>
		<ShieldPOP>
			<POPCode>OXR</POPCode>
		</ShieldPOP>
	</ShieldPOPs>
</CustomerOriginParameter>		

A sample XML response is shown below.

HTTP/1.1 200 OK

Cache-Control: private

Content-Type: application/xml; charset=utf-8

Date: Thu, 15 Apr 2021 12:00:00 GMT

Content-Length: 204

<CustomerOriginAddResult xmlns="http://www.whitecdn.com/schemas/apiservices/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
	<CustomerOriginId>123456</CustomerOriginId>
</CustomerOriginAddResult>