@Generated(value="OracleSDKGenerator", comments="API Version: 20200202") public class ManagementAgentClient extends BaseSyncClient implements ManagementAgent
Modifier and Type | Class and Description |
---|---|
static class |
ManagementAgentClient.Builder
Builder class for this client.
|
Modifier and Type | Field and Description |
---|---|
String |
clientCommonLibraryVersion
Compatible SDK version, provided by the codegen.
|
Optional<String> |
minimumClientCommonLibraryVersionFromClient
Minimum compatible SDK version, maybe provided by the codegen.
|
static Service |
SERVICE
Service instance for ManagementAgent.
|
Constructor and Description |
---|
ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
ClientConfiguration configuration,
ClientConfigurator clientConfigurator,
RequestSignerFactory defaultRequestSignerFactory)
Deprecated.
Use the
builder instead. |
ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
ClientConfiguration configuration,
ClientConfigurator clientConfigurator,
RequestSignerFactory defaultRequestSignerFactory,
List<ClientConfigurator> additionalClientConfigurators)
Deprecated.
Use the
builder instead. |
ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
ClientConfiguration configuration,
ClientConfigurator clientConfigurator,
RequestSignerFactory defaultRequestSignerFactory,
List<ClientConfigurator> additionalClientConfigurators,
String endpoint)
Deprecated.
Use the
builder instead. |
ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
ClientConfiguration configuration,
ClientConfigurator clientConfigurator,
RequestSignerFactory defaultRequestSignerFactory,
Map<SigningStrategy,RequestSignerFactory> signingStrategyRequestSignerFactories,
List<ClientConfigurator> additionalClientConfigurators,
String endpoint)
Deprecated.
Use the
builder instead. |
ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
ClientConfiguration configuration,
ClientConfigurator clientConfigurator,
RequestSignerFactory defaultRequestSignerFactory,
Map<SigningStrategy,RequestSignerFactory> signingStrategyRequestSignerFactories,
List<ClientConfigurator> additionalClientConfigurators,
String endpoint,
ExecutorService executorService)
Deprecated.
Use the
builder instead. |
ManagementAgentClient(BasicAuthenticationDetailsProvider authenticationDetailsProvider)
Deprecated.
Use the
builder instead. |
ManagementAgentClient(BasicAuthenticationDetailsProvider authenticationDetailsProvider,
ClientConfiguration configuration)
Deprecated.
Use the
builder instead. |
ManagementAgentClient(BasicAuthenticationDetailsProvider authenticationDetailsProvider,
ClientConfiguration configuration,
ClientConfigurator clientConfigurator)
Deprecated.
Use the
builder instead. |
Modifier and Type | Method and Description |
---|---|
static ManagementAgentClient.Builder |
builder()
Create a builder for this client.
|
void |
close() |
CreateDataSourceResponse |
createDataSource(CreateDataSourceRequest request)
Datasource creation request to given Management Agent.
|
CreateManagementAgentInstallKeyResponse |
createManagementAgentInstallKey(CreateManagementAgentInstallKeyRequest request)
User creates a new install key as part of this API.
|
DeleteDataSourceResponse |
deleteDataSource(DeleteDataSourceRequest request)
Datasource delete request to given Management Agent.
|
DeleteManagementAgentResponse |
deleteManagementAgent(DeleteManagementAgentRequest request)
Deletes a Management Agent resource by identifier
|
DeleteManagementAgentInstallKeyResponse |
deleteManagementAgentInstallKey(DeleteManagementAgentInstallKeyRequest request)
Deletes a Management Agent install Key resource by identifier
|
DeleteWorkRequestResponse |
deleteWorkRequest(DeleteWorkRequestRequest request)
Cancel the work request with the given ID.
|
DeployPluginsResponse |
deployPlugins(DeployPluginsRequest request)
Deploys Plugins to a given list of agentIds.
|
GetAutoUpgradableConfigResponse |
getAutoUpgradableConfig(GetAutoUpgradableConfigRequest request)
Get the AutoUpgradable configuration for all agents in a tenancy.
|
String |
getClientCommonLibraryVersion() |
GetDataSourceResponse |
getDataSource(GetDataSourceRequest request)
Get Datasource details for given Id and given Management Agent.
|
protected ClientConfigurator |
getDefaultConfigurator() |
String |
getEndpoint() |
GetManagementAgentResponse |
getManagementAgent(GetManagementAgentRequest request)
Gets complete details of the inventory of a given agent id
|
GetManagementAgentInstallKeyResponse |
getManagementAgentInstallKey(GetManagementAgentInstallKeyRequest request)
Gets complete details of the Agent install Key for a given key id
|
GetManagementAgentInstallKeyContentResponse |
getManagementAgentInstallKeyContent(GetManagementAgentInstallKeyContentRequest request)
Returns a file with Management Agent install Key in it
|
Optional<String> |
getMinimumClientCommonLibraryVersionFromClient() |
ManagementAgentPaginators |
getPaginators()
Gets the pre-configured paginators available for list operations in this service which may
return multiple pages of data.
|
ManagementAgentWaiters |
getWaiters()
Gets the pre-configured waiters available for resources for this service.
|
GetWorkRequestResponse |
getWorkRequest(GetWorkRequestRequest request)
Gets the status of the work request with the given ID.
|
ListAvailabilityHistoriesResponse |
listAvailabilityHistories(ListAvailabilityHistoriesRequest request)
Lists the availability history records of Management Agent
|
ListDataSourcesResponse |
listDataSources(ListDataSourcesRequest request)
A list of Management Agent Data Sources for the given Management Agent Id.
|
ListManagementAgentImagesResponse |
listManagementAgentImages(ListManagementAgentImagesRequest request)
Get supported agent image information
|
ListManagementAgentInstallKeysResponse |
listManagementAgentInstallKeys(ListManagementAgentInstallKeysRequest request)
Returns a list of Management Agent installed Keys.
|
ListManagementAgentPluginsResponse |
listManagementAgentPlugins(ListManagementAgentPluginsRequest request)
Returns a list of managementAgentPlugins.
|
ListManagementAgentsResponse |
listManagementAgents(ListManagementAgentsRequest request)
Returns a list of Management Agents.
|
ListWorkRequestErrorsResponse |
listWorkRequestErrors(ListWorkRequestErrorsRequest request)
Return a (paginated) list of errors for a given work request.
|
ListWorkRequestLogsResponse |
listWorkRequestLogs(ListWorkRequestLogsRequest request)
Return a (paginated) list of logs for a given work request.
|
ListWorkRequestsResponse |
listWorkRequests(ListWorkRequestsRequest request)
Lists the work requests in a compartment.
|
void |
populateServiceParametersInEndpoint(String endpoint,
Map<String,Object> requiredParametersMap)
Populate the parameters in the endpoint with its corresponding value and update the base
endpoint.
|
void |
refreshClient()
Rebuild the backing
HttpClient . |
SetAutoUpgradableConfigResponse |
setAutoUpgradableConfig(SetAutoUpgradableConfigRequest request)
Sets the AutoUpgradable configuration for all agents in a tenancy.
|
void |
setEndpoint(String endpoint) |
void |
setRegion(Region region)
Sets the region to call (ex, Region.US_PHOENIX_1).
|
void |
setRegion(String regionId)
Sets the region to call (ex, ‘us-phoenix-1’).
|
SummarizeManagementAgentCountsResponse |
summarizeManagementAgentCounts(SummarizeManagementAgentCountsRequest request)
Gets count of the inventory of agents for a given compartment id, group by, and
isPluginDeployed parameters.
|
SummarizeManagementAgentPluginCountsResponse |
summarizeManagementAgentPluginCounts(SummarizeManagementAgentPluginCountsRequest request)
Gets count of the inventory of management agent plugins for a given compartment id and group
by parameter.
|
void |
updateBaseEndpoint(String endpoint)
This method should be used for parameterized endpoint templates only.
|
UpdateDataSourceResponse |
updateDataSource(UpdateDataSourceRequest request)
Datasource update request to given Management Agent.
|
UpdateManagementAgentResponse |
updateManagementAgent(UpdateManagementAgentRequest request)
API to update the console managed properties of the Management Agent.
|
UpdateManagementAgentInstallKeyResponse |
updateManagementAgentInstallKey(UpdateManagementAgentInstallKeyRequest request)
API to update the modifiable properties of the Management Agent install key.
|
void |
useRealmSpecificEndpointTemplate(boolean useOfRealmSpecificEndpointTemplateEnabled)
This method should be used to enable or disable the use of realm-specific endpoint template.
|
clientCall
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getEndpoint, refreshClient, setEndpoint, useRealmSpecificEndpointTemplate
close
public static final Service SERVICE
Service instance for ManagementAgent.
public final String clientCommonLibraryVersion
@Deprecated public ManagementAgentClient(BasicAuthenticationDetailsProvider authenticationDetailsProvider)
builder
instead.Create a new client instance.
authenticationDetailsProvider
- The authentication details (see ManagementAgentClient.Builder.build(com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)
)@Deprecated public ManagementAgentClient(BasicAuthenticationDetailsProvider authenticationDetailsProvider, ClientConfiguration configuration)
builder
instead.Create a new client instance.
authenticationDetailsProvider
- The authentication details (see ManagementAgentClient.Builder.build(com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)
)configuration
- ClientBuilderBase.configuration
@Deprecated public ManagementAgentClient(BasicAuthenticationDetailsProvider authenticationDetailsProvider, ClientConfiguration configuration, ClientConfigurator clientConfigurator)
builder
instead.Create a new client instance.
authenticationDetailsProvider
- The authentication details (see ManagementAgentClient.Builder.build(com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)
)configuration
- ClientBuilderBase.configuration
clientConfigurator
- ClientBuilderBase.clientConfigurator(com.oracle.bmc.http.ClientConfigurator)
@Deprecated public ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider, ClientConfiguration configuration, ClientConfigurator clientConfigurator, RequestSignerFactory defaultRequestSignerFactory)
builder
instead.Create a new client instance.
authenticationDetailsProvider
- The authentication details (see ManagementAgentClient.Builder.build(com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)
)configuration
- ClientBuilderBase.configuration
clientConfigurator
- ClientBuilderBase.clientConfigurator(com.oracle.bmc.http.ClientConfigurator)
defaultRequestSignerFactory
- ClientBuilderBase.requestSignerFactory
@Deprecated public ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider, ClientConfiguration configuration, ClientConfigurator clientConfigurator, RequestSignerFactory defaultRequestSignerFactory, List<ClientConfigurator> additionalClientConfigurators)
builder
instead.Create a new client instance.
authenticationDetailsProvider
- The authentication details (see ManagementAgentClient.Builder.build(com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)
)configuration
- ClientBuilderBase.configuration
clientConfigurator
- ClientBuilderBase.clientConfigurator(com.oracle.bmc.http.ClientConfigurator)
defaultRequestSignerFactory
- ClientBuilderBase.requestSignerFactory
additionalClientConfigurators
- ClientBuilderBase.additionalClientConfigurators
@Deprecated public ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider, ClientConfiguration configuration, ClientConfigurator clientConfigurator, RequestSignerFactory defaultRequestSignerFactory, List<ClientConfigurator> additionalClientConfigurators, String endpoint)
builder
instead.Create a new client instance.
authenticationDetailsProvider
- The authentication details (see ManagementAgentClient.Builder.build(com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)
)configuration
- ClientBuilderBase.configuration
clientConfigurator
- ClientBuilderBase.clientConfigurator(com.oracle.bmc.http.ClientConfigurator)
defaultRequestSignerFactory
- ClientBuilderBase.requestSignerFactory
additionalClientConfigurators
- ClientBuilderBase.additionalClientConfigurators
endpoint
- ClientBuilderBase.endpoint(java.lang.String)
@Deprecated public ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider, ClientConfiguration configuration, ClientConfigurator clientConfigurator, RequestSignerFactory defaultRequestSignerFactory, Map<SigningStrategy,RequestSignerFactory> signingStrategyRequestSignerFactories, List<ClientConfigurator> additionalClientConfigurators, String endpoint)
builder
instead.Create a new client instance.
authenticationDetailsProvider
- The authentication details (see ManagementAgentClient.Builder.build(com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)
)configuration
- ClientBuilderBase.configuration
clientConfigurator
- ClientBuilderBase.clientConfigurator(com.oracle.bmc.http.ClientConfigurator)
defaultRequestSignerFactory
- ClientBuilderBase.requestSignerFactory
additionalClientConfigurators
- ClientBuilderBase.additionalClientConfigurators
endpoint
- ClientBuilderBase.endpoint(java.lang.String)
signingStrategyRequestSignerFactories
- ClientBuilderBase.signingStrategyRequestSignerFactories
@Deprecated public ManagementAgentClient(AbstractAuthenticationDetailsProvider authenticationDetailsProvider, ClientConfiguration configuration, ClientConfigurator clientConfigurator, RequestSignerFactory defaultRequestSignerFactory, Map<SigningStrategy,RequestSignerFactory> signingStrategyRequestSignerFactories, List<ClientConfigurator> additionalClientConfigurators, String endpoint, ExecutorService executorService)
builder
instead.Create a new client instance.
authenticationDetailsProvider
- The authentication details (see ManagementAgentClient.Builder.build(com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)
)configuration
- ClientBuilderBase.configuration
clientConfigurator
- ClientBuilderBase.clientConfigurator(com.oracle.bmc.http.ClientConfigurator)
defaultRequestSignerFactory
- ClientBuilderBase.requestSignerFactory
additionalClientConfigurators
- ClientBuilderBase.additionalClientConfigurators
endpoint
- ClientBuilderBase.endpoint(java.lang.String)
signingStrategyRequestSignerFactories
- ClientBuilderBase.signingStrategyRequestSignerFactories
executorService
- ManagementAgentClient.Builder.executorService
public static ManagementAgentClient.Builder builder()
Create a builder for this client.
public void setRegion(Region region)
ManagementAgent
Sets the region to call (ex, Region.US_PHOENIX_1).
Note, this will call setEndpoint
after resolving the
endpoint. If the service is not available in this Region, however, an
IllegalArgumentException will be raised.
setRegion
in interface ManagementAgent
region
- The region of the service.public void setRegion(String regionId)
ManagementAgent
Sets the region to call (ex, ‘us-phoenix-1’).
Note, this will first try to map the region ID to a known Region and call setRegion
.
If no known Region could be determined, it will create an endpoint based on the default
endpoint format (Region.formatDefaultRegionEndpoint(Service, String)
and then call setEndpoint
.
setRegion
in interface ManagementAgent
regionId
- The public region ID.public CreateDataSourceResponse createDataSource(CreateDataSourceRequest request)
ManagementAgent
Datasource creation request to given Management Agent.
createDataSource
in interface ManagementAgent
request
- The request object containing the details to sendpublic CreateManagementAgentInstallKeyResponse createManagementAgentInstallKey(CreateManagementAgentInstallKeyRequest request)
ManagementAgent
User creates a new install key as part of this API.
createManagementAgentInstallKey
in interface ManagementAgent
request
- The request object containing the details to sendpublic DeleteDataSourceResponse deleteDataSource(DeleteDataSourceRequest request)
ManagementAgent
Datasource delete request to given Management Agent.
deleteDataSource
in interface ManagementAgent
request
- The request object containing the details to sendpublic DeleteManagementAgentResponse deleteManagementAgent(DeleteManagementAgentRequest request)
ManagementAgent
Deletes a Management Agent resource by identifier
deleteManagementAgent
in interface ManagementAgent
request
- The request object containing the details to sendpublic DeleteManagementAgentInstallKeyResponse deleteManagementAgentInstallKey(DeleteManagementAgentInstallKeyRequest request)
ManagementAgent
Deletes a Management Agent install Key resource by identifier
deleteManagementAgentInstallKey
in interface ManagementAgent
request
- The request object containing the details to sendpublic DeleteWorkRequestResponse deleteWorkRequest(DeleteWorkRequestRequest request)
ManagementAgent
Cancel the work request with the given ID.
deleteWorkRequest
in interface ManagementAgent
request
- The request object containing the details to sendpublic DeployPluginsResponse deployPlugins(DeployPluginsRequest request)
ManagementAgent
Deploys Plugins to a given list of agentIds.
deployPlugins
in interface ManagementAgent
request
- The request object containing the details to sendpublic GetAutoUpgradableConfigResponse getAutoUpgradableConfig(GetAutoUpgradableConfigRequest request)
ManagementAgent
Get the AutoUpgradable configuration for all agents in a tenancy. The supplied compartmentId must be a tenancy root.
getAutoUpgradableConfig
in interface ManagementAgent
request
- The request object containing the details to sendpublic GetDataSourceResponse getDataSource(GetDataSourceRequest request)
ManagementAgent
Get Datasource details for given Id and given Management Agent.
getDataSource
in interface ManagementAgent
request
- The request object containing the details to sendpublic GetManagementAgentResponse getManagementAgent(GetManagementAgentRequest request)
ManagementAgent
Gets complete details of the inventory of a given agent id
getManagementAgent
in interface ManagementAgent
request
- The request object containing the details to sendpublic GetManagementAgentInstallKeyResponse getManagementAgentInstallKey(GetManagementAgentInstallKeyRequest request)
ManagementAgent
Gets complete details of the Agent install Key for a given key id
getManagementAgentInstallKey
in interface ManagementAgent
request
- The request object containing the details to sendpublic GetManagementAgentInstallKeyContentResponse getManagementAgentInstallKeyContent(GetManagementAgentInstallKeyContentRequest request)
ManagementAgent
Returns a file with Management Agent install Key in it
getManagementAgentInstallKeyContent
in interface ManagementAgent
request
- The request object containing the details to sendpublic GetWorkRequestResponse getWorkRequest(GetWorkRequestRequest request)
ManagementAgent
Gets the status of the work request with the given ID.
getWorkRequest
in interface ManagementAgent
request
- The request object containing the details to sendpublic ListAvailabilityHistoriesResponse listAvailabilityHistories(ListAvailabilityHistoriesRequest request)
ManagementAgent
Lists the availability history records of Management Agent
listAvailabilityHistories
in interface ManagementAgent
request
- The request object containing the details to sendpublic ListDataSourcesResponse listDataSources(ListDataSourcesRequest request)
ManagementAgent
A list of Management Agent Data Sources for the given Management Agent Id.
listDataSources
in interface ManagementAgent
request
- The request object containing the details to sendpublic ListManagementAgentImagesResponse listManagementAgentImages(ListManagementAgentImagesRequest request)
ManagementAgent
Get supported agent image information
listManagementAgentImages
in interface ManagementAgent
request
- The request object containing the details to sendpublic ListManagementAgentInstallKeysResponse listManagementAgentInstallKeys(ListManagementAgentInstallKeysRequest request)
ManagementAgent
Returns a list of Management Agent installed Keys.
listManagementAgentInstallKeys
in interface ManagementAgent
request
- The request object containing the details to sendpublic ListManagementAgentPluginsResponse listManagementAgentPlugins(ListManagementAgentPluginsRequest request)
ManagementAgent
Returns a list of managementAgentPlugins.
listManagementAgentPlugins
in interface ManagementAgent
request
- The request object containing the details to sendpublic ListManagementAgentsResponse listManagementAgents(ListManagementAgentsRequest request)
ManagementAgent
Returns a list of Management Agents. If no explicit page size limit is specified, it will default to 1000 when compartmentIdInSubtree is true and 5000 otherwise. The response is limited to maximum 1000 records when compartmentIdInSubtree is true.
listManagementAgents
in interface ManagementAgent
request
- The request object containing the details to sendpublic ListWorkRequestErrorsResponse listWorkRequestErrors(ListWorkRequestErrorsRequest request)
ManagementAgent
Return a (paginated) list of errors for a given work request.
listWorkRequestErrors
in interface ManagementAgent
request
- The request object containing the details to sendpublic ListWorkRequestLogsResponse listWorkRequestLogs(ListWorkRequestLogsRequest request)
ManagementAgent
Return a (paginated) list of logs for a given work request.
listWorkRequestLogs
in interface ManagementAgent
request
- The request object containing the details to sendpublic ListWorkRequestsResponse listWorkRequests(ListWorkRequestsRequest request)
ManagementAgent
Lists the work requests in a compartment.
listWorkRequests
in interface ManagementAgent
request
- The request object containing the details to sendpublic SetAutoUpgradableConfigResponse setAutoUpgradableConfig(SetAutoUpgradableConfigRequest request)
ManagementAgent
Sets the AutoUpgradable configuration for all agents in a tenancy. The supplied compartmentId must be a tenancy root.
setAutoUpgradableConfig
in interface ManagementAgent
request
- The request object containing the details to sendpublic SummarizeManagementAgentCountsResponse summarizeManagementAgentCounts(SummarizeManagementAgentCountsRequest request)
ManagementAgent
Gets count of the inventory of agents for a given compartment id, group by, and isPluginDeployed parameters. Supported groupBy parameters: availabilityStatus, platformType, version
summarizeManagementAgentCounts
in interface ManagementAgent
request
- The request object containing the details to sendpublic SummarizeManagementAgentPluginCountsResponse summarizeManagementAgentPluginCounts(SummarizeManagementAgentPluginCountsRequest request)
ManagementAgent
Gets count of the inventory of management agent plugins for a given compartment id and group by parameter. Supported groupBy parameter: pluginName
summarizeManagementAgentPluginCounts
in interface ManagementAgent
request
- The request object containing the details to sendpublic UpdateDataSourceResponse updateDataSource(UpdateDataSourceRequest request)
ManagementAgent
Datasource update request to given Management Agent.
updateDataSource
in interface ManagementAgent
request
- The request object containing the details to sendpublic UpdateManagementAgentResponse updateManagementAgent(UpdateManagementAgentRequest request)
ManagementAgent
API to update the console managed properties of the Management Agent.
updateManagementAgent
in interface ManagementAgent
request
- The request object containing the details to sendpublic UpdateManagementAgentInstallKeyResponse updateManagementAgentInstallKey(UpdateManagementAgentInstallKeyRequest request)
ManagementAgent
API to update the modifiable properties of the Management Agent install key.
updateManagementAgentInstallKey
in interface ManagementAgent
request
- The request object containing the details to sendpublic ManagementAgentWaiters getWaiters()
ManagementAgent
Gets the pre-configured waiters available for resources for this service.
getWaiters
in interface ManagementAgent
public ManagementAgentPaginators getPaginators()
ManagementAgent
Gets the pre-configured paginators available for list operations in this service which may
return multiple pages of data. These paginators provide an Iterable
interface so that service responses, or resources/records, can be iterated through without
having to manually deal with pagination and page tokens.
getPaginators
in interface ManagementAgent
protected ClientConfigurator getDefaultConfigurator()
public void useRealmSpecificEndpointTemplate(boolean useOfRealmSpecificEndpointTemplateEnabled)
useOfRealmSpecificEndpointTemplateEnabled
- This flag can be set to true or false to
enable or disable the use of realm-specific endpoint template respectivelypublic final void populateServiceParametersInEndpoint(String endpoint, Map<String,Object> requiredParametersMap)
endpoint
- The endpoint template in userequiredParametersMap
- Map of parameter name as key and value set in request path or
query parameter as valuepublic final void updateBaseEndpoint(String endpoint)
endpoint
- The updated endpoint to usepublic final void setEndpoint(String endpoint)
public final String getEndpoint()
public final void refreshClient()
HttpClient
. This will call ClientConfigurator
s again, and
can be used to e.g. refresh the SSL certificate.public final void close()
close
in interface AutoCloseable
public String getClientCommonLibraryVersion()
Copyright © 2016–2024. All rights reserved.