Class ServiceOptions<ServiceT extends Service<OptionsT>,OptionsT extends ServiceOptions<ServiceT,OptionsT>>

java.lang.Object
com.google.cloud.ServiceOptions<ServiceT,OptionsT>
Type Parameters:
ServiceT - the service subclass
OptionsT - the ServiceOptions subclass corresponding to the service
All Implemented Interfaces:
Serializable

public abstract class ServiceOptions<ServiceT extends Service<OptionsT>,OptionsT extends ServiceOptions<ServiceT,OptionsT>> extends Object implements Serializable
Abstract class representing service options.
See Also:
  • Field Details

    • CREDENTIAL_ENV_NAME

      public static final String CREDENTIAL_ENV_NAME
      See Also:
    • clientLibToken

      protected final String clientLibToken
    • credentials

      protected com.google.auth.Credentials credentials
  • Constructor Details

  • Method Details

    • projectIdRequired

      protected boolean projectIdRequired()
      Returns whether a service requires a project ID. This method may be overridden in service-specific Options objects.
      Returns:
      true if a project ID is required to use the service, false if not
    • getDefaultHost

      protected String getDefaultHost()
    • getDefaultProject

      protected String getDefaultProject()
    • getDefaultProjectId

      public static String getDefaultProjectId()
      Returns the default project ID, or null if no default project ID could be found. This method returns the first available project ID among the following sources:
      1. The project ID specified by the GOOGLE_CLOUD_PROJECT environment variable
      2. The App Engine project ID
      3. The project ID specified in the JSON credentials file pointed by the GOOGLE_APPLICATION_CREDENTIALS environment variable
      4. The Google Cloud SDK project ID
      5. The Compute Engine project ID
    • getAppEngineAppId

      public static String getAppEngineAppId()
    • getGoogleCloudProjectId

      protected static String getGoogleCloudProjectId()
    • getAppEngineProjectId

      protected static String getAppEngineProjectId()
    • getAppEngineProjectIdFromAppId

      protected static String getAppEngineProjectIdFromAppId()
    • getServiceAccountProjectId

      protected static String getServiceAccountProjectId()
    • getService

      public ServiceT getService()
      Returns a Service object for the current service. For instance, when using Google Cloud Storage, it returns a Storage object.
    • shouldRefreshService

      protected boolean shouldRefreshService(ServiceT cachedService)
      Parameters:
      cachedService - The currently cached service object
      Returns:
      true if the currently cached service object should be refreshed.
    • getRpc

      public ServiceRpc getRpc()
      Returns a Service RPC object for the current service. For instance, when using Google Cloud Storage, it returns a StorageRpc object.
    • shouldRefreshRpc

      protected boolean shouldRefreshRpc(ServiceRpc cachedRpc)
      Parameters:
      cachedRpc - The currently cached service object
      Returns:
      true if the currently cached service object should be refreshed.
    • getProjectId

      public String getProjectId()
      Returns the project ID. Return value can be null (for services that don't require a project ID).
    • getHost

      public String getHost()
      Returns the service host.
    • getCredentials

      public com.google.auth.Credentials getCredentials()
      Returns the authentication credentials.
    • getScopedCredentials

      public com.google.auth.Credentials getScopedCredentials()
      Returns the authentication credentials. If required, credentials are scoped.
    • getRetrySettings

      public RetrySettings getRetrySettings()
      Returns configuration parameters for request retries.
    • getClock

      public ApiClock getClock()
      Returns the service's clock. Default time source uses System.currentTimeMillis() to get current time.
    • getTransportOptions

      public TransportOptions getTransportOptions()
      Returns the transport-specific options for this service.
    • getApplicationName

      public String getApplicationName()
      Returns the application's name as a string in the format gcloud-java/[version], optionally prepended with externally supplied User-Agent header value (via setting custom header provider).
    • getLibraryName

      public static String getLibraryName()
      Returns the library's name, gcloud-java, as a string.
    • getGoogApiClientLibName

      public static String getGoogApiClientLibName()
      Returns the library's name used by x-goog-api-client header as a string.
    • getLibraryVersion

      public String getLibraryVersion()
      Returns the library's version as a string.
    • getMergedHeaderProvider

      @InternalApi public final HeaderProvider getMergedHeaderProvider(HeaderProvider internalHeaderProvider)
    • getUserAgent

      @InternalApi public final String getUserAgent()
    • baseHashCode

      protected int baseHashCode()
    • baseEquals

      protected boolean baseEquals(ServiceOptions<?,?> other)
    • newInstance

      @InternalApi public static <T> T newInstance(String className) throws IOException, ClassNotFoundException
      Throws:
      IOException
      ClassNotFoundException
    • getDefaultRetrySettings

      public static RetrySettings getDefaultRetrySettings()
    • getNoRetrySettings

      public static RetrySettings getNoRetrySettings()
    • getScopes

      protected abstract Set<String> getScopes()
    • toBuilder

      public abstract <B extends ServiceOptions.Builder<ServiceT, OptionsT, B>> B toBuilder()
    • defaultRetrySettings

      protected RetrySettings defaultRetrySettings()
      Some services may have different backoff requirements listed in their SLAs. Be sure to override this method in options subclasses when the service's backoff requirement differs from the default parameters listed in RetrySettings.
    • getFromServiceLoader

      @InternalApi public static <T> T getFromServiceLoader(Class<? extends T> clazz, T defaultInstance)
    • getClientLibToken

      public String getClientLibToken()
    • getQuotaProjectId

      public String getQuotaProjectId()
      Returns the quotaProjectId that specifies the project used for quota and billing purposes.