Package org.jclouds.apis.internal
Class BaseApiMetadata
- java.lang.Object
-
- org.jclouds.apis.internal.BaseApiMetadata
-
- All Implemented Interfaces:
ApiMetadata
- Direct Known Subclasses:
BaseHttpApiMetadata
,BYONApiMetadata
,FilesystemApiMetadata
,ServerManagerApiMetadata
,StubApiMetadata
,TransientApiMetadata
public abstract class BaseApiMetadata extends Object implements ApiMetadata
The BaseApiMetadata class is an abstraction ofApiMetadata
to be extended by those implementing ApiMetadata. (Note: This class must be abstract to allowServiceLoader
to work properly.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BaseApiMetadata.Builder<T extends BaseApiMetadata.Builder<T>>
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseApiMetadata(String id, String name, Set<com.google.common.reflect.TypeToken<? extends View>> views, String endpointName, String identityName, com.google.common.base.Optional<String> credentialName, String version, com.google.common.base.Optional<String> buildVersion, com.google.common.base.Optional<String> defaultEndpoint, com.google.common.base.Optional<String> defaultIdentity, com.google.common.base.Optional<String> defaultCredential, Properties defaultProperties, URI documentation, com.google.common.reflect.TypeToken<? extends Context> context, Set<Class<? extends com.google.inject.Module>> defaultModules)
protected
BaseApiMetadata(BaseApiMetadata.Builder<?> builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Properties
defaultProperties()
boolean
equals(Object o)
com.google.common.base.Optional<String>
getBuildVersion()
Explicitly identifies the build that the server jclouds connects to is running.com.google.common.reflect.TypeToken<? extends Context>
getContext()
com.google.common.base.Optional<String>
getCredentialName()
Note: if the api doesn't need a credential, this will return absent.com.google.common.base.Optional<String>
getDefaultCredential()
Explicitly sets the secret, which when combined with the identity, will create an authenticated subject or sessioncom.google.common.base.Optional<String>
getDefaultEndpoint()
Explicitly identifies the most top-level endpoint to a service provider.com.google.common.base.Optional<String>
getDefaultIdentity()
Explicitly identifies the login identity into a providerSet<Class<? extends com.google.inject.Module>>
getDefaultModules()
Modules that configure dependency injection for this contextProperties
getDefaultProperties()
Configuration Properties used when creating connections to this apiURI
getDocumentation()
String
getEndpointName()
TheendpointName
helps the user supply the correct data when prompted.String
getId()
String
getIdentityName()
String
getName()
String
getVersion()
Explicitly identifies the version of an api.Set<com.google.common.reflect.TypeToken<? extends View>>
getViews()
int
hashCode()
protected com.google.common.base.MoreObjects.ToStringHelper
string()
String
toString()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jclouds.apis.ApiMetadata
toBuilder
-
-
-
-
Constructor Detail
-
BaseApiMetadata
protected BaseApiMetadata(BaseApiMetadata.Builder<?> builder)
-
BaseApiMetadata
protected BaseApiMetadata(String id, String name, Set<com.google.common.reflect.TypeToken<? extends View>> views, String endpointName, String identityName, com.google.common.base.Optional<String> credentialName, String version, com.google.common.base.Optional<String> buildVersion, com.google.common.base.Optional<String> defaultEndpoint, com.google.common.base.Optional<String> defaultIdentity, com.google.common.base.Optional<String> defaultCredential, Properties defaultProperties, URI documentation, com.google.common.reflect.TypeToken<? extends Context> context, Set<Class<? extends com.google.inject.Module>> defaultModules)
-
-
Method Detail
-
defaultProperties
public static Properties defaultProperties()
-
string
protected com.google.common.base.MoreObjects.ToStringHelper string()
-
getId
public String getId()
- Specified by:
getId
in interfaceApiMetadata
- Returns:
- the api's unique identifier (ex. ec2, openstack-nova)
-
getName
public String getName()
- Specified by:
getName
in interfaceApiMetadata
- Returns:
- the name (display name) of the api (ex. EC2 Base API)
-
getViews
public Set<com.google.common.reflect.TypeToken<? extends View>> getViews()
- Specified by:
getViews
in interfaceApiMetadata
- Returns:
- types of contexts this can be transformed into, for example
BlobStoreContext
-
getEndpointName
public String getEndpointName()
TheendpointName
helps the user supply the correct data when prompted. For example, on OpenStack APIs, this could be:Keystone url
For file-based apis, this could be:Path of byon.yaml
Default:"https endpoint"
- Specified by:
getEndpointName
in interfaceApiMetadata
- Returns:
- the name (display name) of an endpoint to this api (ex. Keystone url).
-
getIdentityName
public String getIdentityName()
- Specified by:
getIdentityName
in interfaceApiMetadata
- Returns:
- the name (display name) of an identity on this api (ex. user, email, account, apikey, tenantId:username)
-
getCredentialName
public com.google.common.base.Optional<String> getCredentialName()
Note: if the api doesn't need a credential, this will return absent.- Specified by:
getCredentialName
in interfaceApiMetadata
- Returns:
- the name (display name) of a credential on this api, if it is required (ex. password, secret, rsaKey)
-
getVersion
public String getVersion()
Explicitly identifies the version of an api.- Specified by:
getVersion
in interfaceApiMetadata
-
getBuildVersion
public com.google.common.base.Optional<String> getBuildVersion()
Explicitly identifies the build that the server jclouds connects to is running. For example, for virtualbox, the api version may be4.1.8
while the build version is4.1.8r75467
.- Specified by:
getBuildVersion
in interfaceApiMetadata
-
getDefaultEndpoint
public com.google.common.base.Optional<String> getDefaultEndpoint()
Explicitly identifies the most top-level endpoint to a service provider. This helps differentiate two providers of the same api, or a different environments providing the same api.note
The type of endpoint isString
as we permit endpoints that require variable expansion. ex.https://${jclouds.identity}.blob.core.windows.net
- Specified by:
getDefaultEndpoint
in interfaceApiMetadata
- Returns:
- the api's default endpoint, if known.
-
getDefaultIdentity
public com.google.common.base.Optional<String> getDefaultIdentity()
Explicitly identifies the login identity into a provider- Specified by:
getDefaultIdentity
in interfaceApiMetadata
- Returns:
- the login identity into a provider, if known.
-
getDefaultCredential
public com.google.common.base.Optional<String> getDefaultCredential()
Explicitly sets the secret, which when combined with the identity, will create an authenticated subject or session- Specified by:
getDefaultCredential
in interfaceApiMetadata
- Returns:
- the api's default credential, if known.
- See Also:
ApiMetadata.getDefaultIdentity()
,ApiMetadata.getCredentialName()
-
getDefaultProperties
public Properties getDefaultProperties()
Configuration Properties used when creating connections to this api- Specified by:
getDefaultProperties
in interfaceApiMetadata
- Returns:
- properties used to create connections to this api
-
getDocumentation
public URI getDocumentation()
- Specified by:
getDocumentation
in interfaceApiMetadata
- Returns:
- the url for the API documentation related to this service
-
getContext
public com.google.common.reflect.TypeToken<? extends Context> getContext()
- Specified by:
getContext
in interfaceApiMetadata
- Returns:
- the primary context of this api, for example
ApiContext<EC2Api>
-
getDefaultModules
public Set<Class<? extends com.google.inject.Module>> getDefaultModules()
Modules that configure dependency injection for this context- Specified by:
getDefaultModules
in interfaceApiMetadata
- Returns:
- modules that configure dependency injection for this context
-
-