Making server action result types more consistent
diff --git a/_site/provider_client.go b/_site/provider_client.go
new file mode 100644
index 0000000..2be665e
--- /dev/null
+++ b/_site/provider_client.go
@@ -0,0 +1,29 @@
+package gophercloud
+
+// ProviderClient stores details that are required to interact with any services within a specific provider's API.
+//
+// Generally, you acquire a ProviderClient by calling the `NewClient()` method in the appropriate provider's child package,
+// providing whatever authentication credentials are required.
+type ProviderClient struct {
+
+	// IdentityBase is the front door to an openstack provider.
+	// Generally this will be populated when you authenticate.
+	// It should be the *root* resource of the identity service, not of a specific identity version.
+	IdentityBase string
+
+	// IdentityEndpoint is the originally requested identity endpoint.
+	// This may be a specific version of the identity service, in which case that endpoint is used rather than querying the
+	// version-negotiation endpoint.
+	IdentityEndpoint string
+
+	// TokenID is the most recently valid token issued.
+	TokenID string
+
+	// EndpointLocator describes how this provider discovers the endpoints for its constituent services.
+	EndpointLocator EndpointLocator
+}
+
+// AuthenticatedHeaders returns a map of HTTP headers that are common for all authenticated service requests.
+func (client *ProviderClient) AuthenticatedHeaders() map[string]string {
+	return map[string]string{"X-Auth-Token": client.TokenID}
+}