blob: 2be665e7b16d38d02ac577299339bab76585500f [file] [log] [blame]
Ash Wilson89466cc2014-08-29 11:27:39 -04001package gophercloud
2
Ash Wilson89466cc2014-08-29 11:27:39 -04003// 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 {
Ash Wilson89466cc2014-08-29 11:27:39 -04008
Ash Wilson09694b92014-09-09 14:08:27 -04009 // IdentityBase is the front door to an openstack provider.
Ash Wilsonc6372fe2014-09-03 11:24:52 -040010 // 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.
Ash Wilson09694b92014-09-09 14:08:27 -040012 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.
Ash Wilsonc6372fe2014-09-03 11:24:52 -040017 IdentityEndpoint string
18
Ash Wilson89466cc2014-08-29 11:27:39 -040019 // TokenID is the most recently valid token issued.
20 TokenID string
Ash Wilsonb8401a72014-09-08 17:07:49 -040021
22 // EndpointLocator describes how this provider discovers the endpoints for its constituent services.
23 EndpointLocator EndpointLocator
Ash Wilson89466cc2014-08-29 11:27:39 -040024}
25
Ash Wilsonc6372fe2014-09-03 11:24:52 -040026// AuthenticatedHeaders returns a map of HTTP headers that are common for all authenticated service requests.
Ash Wilson89466cc2014-08-29 11:27:39 -040027func (client *ProviderClient) AuthenticatedHeaders() map[string]string {
28 return map[string]string{"X-Auth-Token": client.TokenID}
29}