com.google.cloud.dialogflow.v2beta1.stub.AgentsStubSettings Maven / Gradle / Ivy
Show all versions of google-cloud-dialogflow Show documentation
/*
* Copyright 2019 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.cloud.dialogflow.v2beta1.stub;
import static com.google.cloud.dialogflow.v2beta1.AgentsClient.SearchAgentsPagedResponse;
import com.google.api.core.ApiFunction;
import com.google.api.core.ApiFuture;
import com.google.api.core.BetaApi;
import com.google.api.gax.core.GaxProperties;
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.GaxGrpcProperties;
import com.google.api.gax.grpc.GrpcTransportChannel;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.api.gax.grpc.ProtoOperationTransformers;
import com.google.api.gax.longrunning.OperationSnapshot;
import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
import com.google.api.gax.retrying.RetrySettings;
import com.google.api.gax.rpc.ApiCallContext;
import com.google.api.gax.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.OperationCallSettings;
import com.google.api.gax.rpc.PageContext;
import com.google.api.gax.rpc.PagedCallSettings;
import com.google.api.gax.rpc.PagedListDescriptor;
import com.google.api.gax.rpc.PagedListResponseFactory;
import com.google.api.gax.rpc.StatusCode;
import com.google.api.gax.rpc.StubSettings;
import com.google.api.gax.rpc.TransportChannelProvider;
import com.google.api.gax.rpc.UnaryCallSettings;
import com.google.api.gax.rpc.UnaryCallable;
import com.google.cloud.dialogflow.v2beta1.Agent;
import com.google.cloud.dialogflow.v2beta1.ExportAgentRequest;
import com.google.cloud.dialogflow.v2beta1.ExportAgentResponse;
import com.google.cloud.dialogflow.v2beta1.GetAgentRequest;
import com.google.cloud.dialogflow.v2beta1.ImportAgentRequest;
import com.google.cloud.dialogflow.v2beta1.RestoreAgentRequest;
import com.google.cloud.dialogflow.v2beta1.SearchAgentsRequest;
import com.google.cloud.dialogflow.v2beta1.SearchAgentsResponse;
import com.google.cloud.dialogflow.v2beta1.TrainAgentRequest;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.longrunning.Operation;
import com.google.protobuf.Empty;
import com.google.protobuf.Struct;
import java.io.IOException;
import java.util.List;
import javax.annotation.Generated;
import org.threeten.bp.Duration;
// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
* Settings class to configure an instance of {@link AgentsStub}.
*
* The default instance has everything set to sensible defaults:
*
*
* - The default service address (dialogflow.googleapis.com) and default port (443) are used.
*
- Credentials are acquired automatically through Application Default Credentials.
*
- Retries are configured for idempotent methods but not for non-idempotent methods.
*
*
* The builder of this class is recursive, so contained classes are themselves builders. When
* build() is called, the tree of builders is called to create the complete settings object. For
* example, to set the total timeout of getAgent to 30 seconds:
*
*
*
* AgentsStubSettings.Builder agentsSettingsBuilder =
* AgentsStubSettings.newBuilder();
* agentsSettingsBuilder.getAgentSettings().getRetrySettings().toBuilder()
* .setTotalTimeout(Duration.ofSeconds(30));
* AgentsStubSettings agentsSettings = agentsSettingsBuilder.build();
*
*
*/
@Generated("by gapic-generator")
@BetaApi
public class AgentsStubSettings extends StubSettings {
/** The default scopes of the service. */
private static final ImmutableList DEFAULT_SERVICE_SCOPES =
ImmutableList.builder()
.add("https://www.googleapis.com/auth/cloud-platform")
.add("https://www.googleapis.com/auth/dialogflow")
.build();
private final UnaryCallSettings getAgentSettings;
private final PagedCallSettings<
SearchAgentsRequest, SearchAgentsResponse, SearchAgentsPagedResponse>
searchAgentsSettings;
private final UnaryCallSettings trainAgentSettings;
private final OperationCallSettings trainAgentOperationSettings;
private final UnaryCallSettings exportAgentSettings;
private final OperationCallSettings
exportAgentOperationSettings;
private final UnaryCallSettings importAgentSettings;
private final OperationCallSettings
importAgentOperationSettings;
private final UnaryCallSettings restoreAgentSettings;
private final OperationCallSettings
restoreAgentOperationSettings;
/** Returns the object with the settings used for calls to getAgent. */
public UnaryCallSettings getAgentSettings() {
return getAgentSettings;
}
/** Returns the object with the settings used for calls to searchAgents. */
public PagedCallSettings
searchAgentsSettings() {
return searchAgentsSettings;
}
/** Returns the object with the settings used for calls to trainAgent. */
public UnaryCallSettings trainAgentSettings() {
return trainAgentSettings;
}
/** Returns the object with the settings used for calls to trainAgent. */
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings trainAgentOperationSettings() {
return trainAgentOperationSettings;
}
/** Returns the object with the settings used for calls to exportAgent. */
public UnaryCallSettings exportAgentSettings() {
return exportAgentSettings;
}
/** Returns the object with the settings used for calls to exportAgent. */
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings
exportAgentOperationSettings() {
return exportAgentOperationSettings;
}
/** Returns the object with the settings used for calls to importAgent. */
public UnaryCallSettings importAgentSettings() {
return importAgentSettings;
}
/** Returns the object with the settings used for calls to importAgent. */
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings importAgentOperationSettings() {
return importAgentOperationSettings;
}
/** Returns the object with the settings used for calls to restoreAgent. */
public UnaryCallSettings restoreAgentSettings() {
return restoreAgentSettings;
}
/** Returns the object with the settings used for calls to restoreAgent. */
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings restoreAgentOperationSettings() {
return restoreAgentOperationSettings;
}
@BetaApi("A restructuring of stub classes is planned, so this may break in the future")
public AgentsStub createStub() throws IOException {
if (getTransportChannelProvider()
.getTransportName()
.equals(GrpcTransportChannel.getGrpcTransportName())) {
return GrpcAgentsStub.create(this);
} else {
throw new UnsupportedOperationException(
"Transport not supported: " + getTransportChannelProvider().getTransportName());
}
}
/** Returns a builder for the default ExecutorProvider for this service. */
public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
return InstantiatingExecutorProvider.newBuilder();
}
/** Returns the default service endpoint. */
public static String getDefaultEndpoint() {
return "dialogflow.googleapis.com:443";
}
/** Returns the default service scopes. */
public static List getDefaultServiceScopes() {
return DEFAULT_SERVICE_SCOPES;
}
/** Returns a builder for the default credentials for this service. */
public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
return GoogleCredentialsProvider.newBuilder().setScopesToApply(DEFAULT_SERVICE_SCOPES);
}
/** Returns a builder for the default ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return InstantiatingGrpcChannelProvider.newBuilder();
}
public static TransportChannelProvider defaultTransportChannelProvider() {
return defaultGrpcTransportProviderBuilder().build();
}
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
return ApiClientHeaderProvider.newBuilder()
.setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(AgentsStubSettings.class))
.setTransportToken(
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
}
/** Returns a new builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}
/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
}
/** Returns a builder containing all the values of this settings class. */
public Builder toBuilder() {
return new Builder(this);
}
protected AgentsStubSettings(Builder settingsBuilder) throws IOException {
super(settingsBuilder);
getAgentSettings = settingsBuilder.getAgentSettings().build();
searchAgentsSettings = settingsBuilder.searchAgentsSettings().build();
trainAgentSettings = settingsBuilder.trainAgentSettings().build();
trainAgentOperationSettings = settingsBuilder.trainAgentOperationSettings().build();
exportAgentSettings = settingsBuilder.exportAgentSettings().build();
exportAgentOperationSettings = settingsBuilder.exportAgentOperationSettings().build();
importAgentSettings = settingsBuilder.importAgentSettings().build();
importAgentOperationSettings = settingsBuilder.importAgentOperationSettings().build();
restoreAgentSettings = settingsBuilder.restoreAgentSettings().build();
restoreAgentOperationSettings = settingsBuilder.restoreAgentOperationSettings().build();
}
private static final PagedListDescriptor
SEARCH_AGENTS_PAGE_STR_DESC =
new PagedListDescriptor() {
@Override
public String emptyToken() {
return "";
}
@Override
public SearchAgentsRequest injectToken(SearchAgentsRequest payload, String token) {
return SearchAgentsRequest.newBuilder(payload).setPageToken(token).build();
}
@Override
public SearchAgentsRequest injectPageSize(SearchAgentsRequest payload, int pageSize) {
return SearchAgentsRequest.newBuilder(payload).setPageSize(pageSize).build();
}
@Override
public Integer extractPageSize(SearchAgentsRequest payload) {
return payload.getPageSize();
}
@Override
public String extractNextToken(SearchAgentsResponse payload) {
return payload.getNextPageToken();
}
@Override
public Iterable extractResources(SearchAgentsResponse payload) {
return payload.getAgentsList() != null
? payload.getAgentsList()
: ImmutableList.of();
}
};
private static final PagedListResponseFactory<
SearchAgentsRequest, SearchAgentsResponse, SearchAgentsPagedResponse>
SEARCH_AGENTS_PAGE_STR_FACT =
new PagedListResponseFactory<
SearchAgentsRequest, SearchAgentsResponse, SearchAgentsPagedResponse>() {
@Override
public ApiFuture getFuturePagedResponse(
UnaryCallable callable,
SearchAgentsRequest request,
ApiCallContext context,
ApiFuture futureResponse) {
PageContext pageContext =
PageContext.create(callable, SEARCH_AGENTS_PAGE_STR_DESC, request, context);
return SearchAgentsPagedResponse.createAsync(pageContext, futureResponse);
}
};
/** Builder for AgentsStubSettings. */
public static class Builder extends StubSettings.Builder {
private final ImmutableList> unaryMethodSettingsBuilders;
private final UnaryCallSettings.Builder getAgentSettings;
private final PagedCallSettings.Builder<
SearchAgentsRequest, SearchAgentsResponse, SearchAgentsPagedResponse>
searchAgentsSettings;
private final UnaryCallSettings.Builder trainAgentSettings;
private final OperationCallSettings.Builder
trainAgentOperationSettings;
private final UnaryCallSettings.Builder exportAgentSettings;
private final OperationCallSettings.Builder
exportAgentOperationSettings;
private final UnaryCallSettings.Builder importAgentSettings;
private final OperationCallSettings.Builder
importAgentOperationSettings;
private final UnaryCallSettings.Builder restoreAgentSettings;
private final OperationCallSettings.Builder
restoreAgentOperationSettings;
private static final ImmutableMap>
RETRYABLE_CODE_DEFINITIONS;
static {
ImmutableMap.Builder> definitions =
ImmutableMap.builder();
definitions.put(
"idempotent",
ImmutableSet.copyOf(
Lists.newArrayList(
StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE)));
definitions.put("non_idempotent", ImmutableSet.copyOf(Lists.newArrayList()));
RETRYABLE_CODE_DEFINITIONS = definitions.build();
}
private static final ImmutableMap RETRY_PARAM_DEFINITIONS;
static {
ImmutableMap.Builder definitions = ImmutableMap.builder();
RetrySettings settings = null;
settings =
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(100L))
.setRetryDelayMultiplier(1.3)
.setMaxRetryDelay(Duration.ofMillis(60000L))
.setInitialRpcTimeout(Duration.ofMillis(20000L))
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ofMillis(20000L))
.setTotalTimeout(Duration.ofMillis(600000L))
.build();
definitions.put("default", settings);
RETRY_PARAM_DEFINITIONS = definitions.build();
}
protected Builder() {
this((ClientContext) null);
}
protected Builder(ClientContext clientContext) {
super(clientContext);
getAgentSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
searchAgentsSettings = PagedCallSettings.newBuilder(SEARCH_AGENTS_PAGE_STR_FACT);
trainAgentSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
trainAgentOperationSettings = OperationCallSettings.newBuilder();
exportAgentSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
exportAgentOperationSettings = OperationCallSettings.newBuilder();
importAgentSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
importAgentOperationSettings = OperationCallSettings.newBuilder();
restoreAgentSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
restoreAgentOperationSettings = OperationCallSettings.newBuilder();
unaryMethodSettingsBuilders =
ImmutableList.>of(
getAgentSettings,
searchAgentsSettings,
trainAgentSettings,
exportAgentSettings,
importAgentSettings,
restoreAgentSettings);
initDefaults(this);
}
private static Builder createDefault() {
Builder builder = new Builder((ClientContext) null);
builder.setTransportChannelProvider(defaultTransportChannelProvider());
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
builder.setEndpoint(getDefaultEndpoint());
return initDefaults(builder);
}
private static Builder initDefaults(Builder builder) {
builder
.getAgentSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
builder
.searchAgentsSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
builder
.trainAgentSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
builder
.exportAgentSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
builder
.importAgentSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
builder
.restoreAgentSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
builder
.trainAgentOperationSettings()
.setInitialCallSettings(
UnaryCallSettings.newUnaryCallSettingsBuilder()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"))
.build())
.setResponseTransformer(
ProtoOperationTransformers.ResponseTransformer.create(Empty.class))
.setMetadataTransformer(
ProtoOperationTransformers.MetadataTransformer.create(Struct.class))
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(500L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(5000L))
.setInitialRpcTimeout(Duration.ZERO) // ignored
.setRpcTimeoutMultiplier(1.0) // ignored
.setMaxRpcTimeout(Duration.ZERO) // ignored
.setTotalTimeout(Duration.ofMillis(300000L))
.build()));
builder
.exportAgentOperationSettings()
.setInitialCallSettings(
UnaryCallSettings.newUnaryCallSettingsBuilder()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"))
.build())
.setResponseTransformer(
ProtoOperationTransformers.ResponseTransformer.create(ExportAgentResponse.class))
.setMetadataTransformer(
ProtoOperationTransformers.MetadataTransformer.create(Struct.class))
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(500L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(5000L))
.setInitialRpcTimeout(Duration.ZERO) // ignored
.setRpcTimeoutMultiplier(1.0) // ignored
.setMaxRpcTimeout(Duration.ZERO) // ignored
.setTotalTimeout(Duration.ofMillis(300000L))
.build()));
builder
.importAgentOperationSettings()
.setInitialCallSettings(
UnaryCallSettings.newUnaryCallSettingsBuilder()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"))
.build())
.setResponseTransformer(
ProtoOperationTransformers.ResponseTransformer.create(Empty.class))
.setMetadataTransformer(
ProtoOperationTransformers.MetadataTransformer.create(Struct.class))
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(500L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(5000L))
.setInitialRpcTimeout(Duration.ZERO) // ignored
.setRpcTimeoutMultiplier(1.0) // ignored
.setMaxRpcTimeout(Duration.ZERO) // ignored
.setTotalTimeout(Duration.ofMillis(300000L))
.build()));
builder
.restoreAgentOperationSettings()
.setInitialCallSettings(
UnaryCallSettings
.newUnaryCallSettingsBuilder()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"))
.build())
.setResponseTransformer(
ProtoOperationTransformers.ResponseTransformer.create(Empty.class))
.setMetadataTransformer(
ProtoOperationTransformers.MetadataTransformer.create(Struct.class))
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(500L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(5000L))
.setInitialRpcTimeout(Duration.ZERO) // ignored
.setRpcTimeoutMultiplier(1.0) // ignored
.setMaxRpcTimeout(Duration.ZERO) // ignored
.setTotalTimeout(Duration.ofMillis(300000L))
.build()));
return builder;
}
protected Builder(AgentsStubSettings settings) {
super(settings);
getAgentSettings = settings.getAgentSettings.toBuilder();
searchAgentsSettings = settings.searchAgentsSettings.toBuilder();
trainAgentSettings = settings.trainAgentSettings.toBuilder();
trainAgentOperationSettings = settings.trainAgentOperationSettings.toBuilder();
exportAgentSettings = settings.exportAgentSettings.toBuilder();
exportAgentOperationSettings = settings.exportAgentOperationSettings.toBuilder();
importAgentSettings = settings.importAgentSettings.toBuilder();
importAgentOperationSettings = settings.importAgentOperationSettings.toBuilder();
restoreAgentSettings = settings.restoreAgentSettings.toBuilder();
restoreAgentOperationSettings = settings.restoreAgentOperationSettings.toBuilder();
unaryMethodSettingsBuilders =
ImmutableList.>of(
getAgentSettings,
searchAgentsSettings,
trainAgentSettings,
exportAgentSettings,
importAgentSettings,
restoreAgentSettings);
}
// NEXT_MAJOR_VER: remove 'throws Exception'
/**
* Applies the given settings updater function to all of the unary API methods in this service.
*
* Note: This method does not support applying settings to streaming methods.
*/
public Builder applyToAllUnaryMethods(
ApiFunction, Void> settingsUpdater) throws Exception {
super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
return this;
}
public ImmutableList> unaryMethodSettingsBuilders() {
return unaryMethodSettingsBuilders;
}
/** Returns the builder for the settings used for calls to getAgent. */
public UnaryCallSettings.Builder getAgentSettings() {
return getAgentSettings;
}
/** Returns the builder for the settings used for calls to searchAgents. */
public PagedCallSettings.Builder<
SearchAgentsRequest, SearchAgentsResponse, SearchAgentsPagedResponse>
searchAgentsSettings() {
return searchAgentsSettings;
}
/** Returns the builder for the settings used for calls to trainAgent. */
public UnaryCallSettings.Builder trainAgentSettings() {
return trainAgentSettings;
}
/** Returns the builder for the settings used for calls to trainAgent. */
@BetaApi(
"The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings.Builder
trainAgentOperationSettings() {
return trainAgentOperationSettings;
}
/** Returns the builder for the settings used for calls to exportAgent. */
public UnaryCallSettings.Builder exportAgentSettings() {
return exportAgentSettings;
}
/** Returns the builder for the settings used for calls to exportAgent. */
@BetaApi(
"The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings.Builder
exportAgentOperationSettings() {
return exportAgentOperationSettings;
}
/** Returns the builder for the settings used for calls to importAgent. */
public UnaryCallSettings.Builder importAgentSettings() {
return importAgentSettings;
}
/** Returns the builder for the settings used for calls to importAgent. */
@BetaApi(
"The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings.Builder
importAgentOperationSettings() {
return importAgentOperationSettings;
}
/** Returns the builder for the settings used for calls to restoreAgent. */
public UnaryCallSettings.Builder restoreAgentSettings() {
return restoreAgentSettings;
}
/** Returns the builder for the settings used for calls to restoreAgent. */
@BetaApi(
"The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings.Builder
restoreAgentOperationSettings() {
return restoreAgentOperationSettings;
}
@Override
public AgentsStubSettings build() throws IOException {
return new AgentsStubSettings(this);
}
}
}