blob: 2be665e7b16d38d02ac577299339bab76585500f [file] [log] [blame]
Jamie Hannaford2aaf1a62014-10-16 12:55:50 +02001package gophercloud
2
3// ProviderClient stores details that are required to interact with any services within a specific provider's API.
4//
5// Generally, you acquire a ProviderClient by calling the `NewClient()` method in the appropriate provider's child package,
6// providing whatever authentication credentials are required.
7type ProviderClient struct {
8
9 // IdentityBase is the front door to an openstack provider.
10 // Generally this will be populated when you authenticate.
11 // It should be the *root* resource of the identity service, not of a specific identity version.
12 IdentityBase string
13
14 // IdentityEndpoint is the originally requested identity endpoint.
15 // This may be a specific version of the identity service, in which case that endpoint is used rather than querying the
16 // version-negotiation endpoint.
17 IdentityEndpoint string
18
19 // TokenID is the most recently valid token issued.
20 TokenID string
21
22 // EndpointLocator describes how this provider discovers the endpoints for its constituent services.
23 EndpointLocator EndpointLocator
24}
25
26// AuthenticatedHeaders returns a map of HTTP headers that are common for all authenticated service requests.
27func (client *ProviderClient) AuthenticatedHeaders() map[string]string {
28 return map[string]string{"X-Auth-Token": client.TokenID}
29}