com.google.cloud.logging.spi.v2.LoggingServiceV2Settings Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gcloud-java-logging Show documentation
Show all versions of gcloud-java-logging Show documentation
Java idiomatic client for Stackdriver Logging.
/*
* Copyright 2016 Google Inc. All Rights Reserved.
*
* 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
*
* http://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.
*/
/*
* EDITING INSTRUCTIONS
* This file was generated from the file
* https://github.com/google/googleapis/blob/master/google/logging/v2/logging.proto
* and updates to that file get reflected here through a refresh process.
* For the short term, the refresh process will only be runnable by Google engineers.
* Manual additions are allowed because the refresh process performs
* a 3-way merge in order to preserve those manual additions. In order to not
* break the refresh process, only certain types of modifications are
* allowed.
*
* Allowed modifications - currently these are the only types allowed:
* 1. New methods (these should be added to the end of the class)
* 2. New imports
* 3. Additional documentation between "manual edit" demarcations
*
* Happy editing!
*/
package com.google.cloud.logging.spi.v2;
import com.google.api.MonitoredResourceDescriptor;
import com.google.api.gax.core.ConnectionSettings;
import com.google.api.gax.core.RetrySettings;
import com.google.api.gax.grpc.ApiCallSettings;
import com.google.api.gax.grpc.PageStreamingCallSettings;
import com.google.api.gax.grpc.PageStreamingDescriptor;
import com.google.api.gax.grpc.ServiceApiSettings;
import com.google.api.gax.grpc.SimpleCallSettings;
import com.google.auth.Credentials;
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.common.collect.Sets;
import com.google.logging.v2.DeleteLogRequest;
import com.google.logging.v2.ListLogEntriesRequest;
import com.google.logging.v2.ListLogEntriesResponse;
import com.google.logging.v2.ListMonitoredResourceDescriptorsRequest;
import com.google.logging.v2.ListMonitoredResourceDescriptorsResponse;
import com.google.logging.v2.LogEntry;
import com.google.logging.v2.LoggingServiceV2Grpc;
import com.google.logging.v2.WriteLogEntriesRequest;
import com.google.logging.v2.WriteLogEntriesResponse;
import com.google.protobuf.Empty;
import io.grpc.ManagedChannel;
import io.grpc.Status;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
import org.joda.time.Duration;
// Manually-added imports: add custom (non-generated) imports after this point.
// AUTO-GENERATED DOCUMENTATION AND CLASS - see instructions at the top of the file for editing.
/**
* Settings class to configure an instance of {@link LoggingServiceV2Api}.
*
* The default instance has everything set to sensible defaults:
*
*
* - The default service address (logging.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 DeleteLog to 30 seconds:
*
*
*
* LoggingServiceV2Settings.Builder loggingServiceV2SettingsBuilder =
* LoggingServiceV2Settings.defaultBuilder();
* loggingServiceV2SettingsBuilder.DeleteLogSettings().getRetrySettingsBuilder()
* .setTotalTimeout(Duration.standardSeconds(30));
* LoggingServiceV2Settings loggingServiceV2Settings = loggingServiceV2SettingsBuilder.build();
*
*
*/
@javax.annotation.Generated("by GAPIC")
public class LoggingServiceV2Settings extends ServiceApiSettings {
/**
* The default address of the service.
*
*
*
*/
public static final String DEFAULT_SERVICE_ADDRESS = "logging.googleapis.com";
/**
* The default port of the service.
*
*
*
*/
public static final int DEFAULT_SERVICE_PORT = 443;
/**
* The default scopes of the service.
*/
public static final ImmutableList DEFAULT_SERVICE_SCOPES =
ImmutableList.builder()
.add("https://www.googleapis.com/auth/logging.write")
.add("https://www.googleapis.com/auth/logging.admin")
.add("https://www.googleapis.com/auth/logging.read")
.add("https://www.googleapis.com/auth/cloud-platform.read-only")
.add("https://www.googleapis.com/auth/cloud-platform")
.build();
/**
* The default connection settings of the service.
*/
public static final ConnectionSettings DEFAULT_CONNECTION_SETTINGS =
ConnectionSettings.newBuilder()
.setServiceAddress(DEFAULT_SERVICE_ADDRESS)
.setPort(DEFAULT_SERVICE_PORT)
.provideCredentialsWith(DEFAULT_SERVICE_SCOPES)
.build();
private final SimpleCallSettings deleteLogSettings;
private final SimpleCallSettings
writeLogEntriesSettings;
private final PageStreamingCallSettings
listLogEntriesSettings;
private final PageStreamingCallSettings<
ListMonitoredResourceDescriptorsRequest, ListMonitoredResourceDescriptorsResponse,
MonitoredResourceDescriptor>
listMonitoredResourceDescriptorsSettings;
/**
* Returns the object with the settings used for calls to deleteLog.
*/
public SimpleCallSettings deleteLogSettings() {
return deleteLogSettings;
}
/**
* Returns the object with the settings used for calls to writeLogEntries.
*/
public SimpleCallSettings
writeLogEntriesSettings() {
return writeLogEntriesSettings;
}
/**
* Returns the object with the settings used for calls to listLogEntries.
*/
public PageStreamingCallSettings
listLogEntriesSettings() {
return listLogEntriesSettings;
}
/**
* Returns the object with the settings used for calls to listMonitoredResourceDescriptors.
*/
public PageStreamingCallSettings<
ListMonitoredResourceDescriptorsRequest, ListMonitoredResourceDescriptorsResponse,
MonitoredResourceDescriptor>
listMonitoredResourceDescriptorsSettings() {
return listMonitoredResourceDescriptorsSettings;
}
/**
* Returns a builder for this class with recommended defaults.
*/
public static Builder defaultBuilder() {
return Builder.createDefault();
}
/**
* Returns a new builder for this class.
*/
public static Builder newBuilder() {
return new Builder();
}
/**
* Returns a builder containing all the values of this settings class.
*/
public Builder toBuilder() {
return new Builder(this);
}
private LoggingServiceV2Settings(Builder settingsBuilder) throws IOException {
super(
settingsBuilder.getChannelProvider(),
settingsBuilder.getExecutorProvider(),
settingsBuilder.getGeneratorName(),
settingsBuilder.getGeneratorVersion(),
settingsBuilder.getClientLibName(),
settingsBuilder.getClientLibVersion());
deleteLogSettings = settingsBuilder.deleteLogSettings().build();
writeLogEntriesSettings = settingsBuilder.writeLogEntriesSettings().build();
listLogEntriesSettings = settingsBuilder.listLogEntriesSettings().build();
listMonitoredResourceDescriptorsSettings =
settingsBuilder.listMonitoredResourceDescriptorsSettings().build();
}
private static PageStreamingDescriptor
LIST_LOG_ENTRIES_PAGE_STR_DESC =
new PageStreamingDescriptor() {
@Override
public Object emptyToken() {
return "";
}
@Override
public ListLogEntriesRequest injectToken(ListLogEntriesRequest payload, Object token) {
return ListLogEntriesRequest.newBuilder(payload).setPageToken((String) token).build();
}
@Override
public Object extractNextToken(ListLogEntriesResponse payload) {
return payload.getNextPageToken();
}
@Override
public Iterable extractResources(ListLogEntriesResponse payload) {
return payload.getEntriesList();
}
};
private static PageStreamingDescriptor<
ListMonitoredResourceDescriptorsRequest, ListMonitoredResourceDescriptorsResponse,
MonitoredResourceDescriptor>
LIST_MONITORED_RESOURCE_DESCRIPTORS_PAGE_STR_DESC =
new PageStreamingDescriptor<
ListMonitoredResourceDescriptorsRequest, ListMonitoredResourceDescriptorsResponse,
MonitoredResourceDescriptor>() {
@Override
public Object emptyToken() {
return "";
}
@Override
public ListMonitoredResourceDescriptorsRequest injectToken(
ListMonitoredResourceDescriptorsRequest payload, Object token) {
return ListMonitoredResourceDescriptorsRequest.newBuilder(payload)
.setPageToken((String) token)
.build();
}
@Override
public Object extractNextToken(ListMonitoredResourceDescriptorsResponse payload) {
return payload.getNextPageToken();
}
@Override
public Iterable extractResources(
ListMonitoredResourceDescriptorsResponse payload) {
return payload.getResourceDescriptorsList();
}
};
/**
* Builder for LoggingServiceV2Settings.
*/
public static class Builder extends ServiceApiSettings.Builder {
private final ImmutableList methodSettingsBuilders;
private SimpleCallSettings.Builder deleteLogSettings;
private SimpleCallSettings.Builder
writeLogEntriesSettings;
private PageStreamingCallSettings.Builder<
ListLogEntriesRequest, ListLogEntriesResponse, LogEntry>
listLogEntriesSettings;
private PageStreamingCallSettings.Builder<
ListMonitoredResourceDescriptorsRequest, ListMonitoredResourceDescriptorsResponse,
MonitoredResourceDescriptor>
listMonitoredResourceDescriptorsSettings;
private static final ImmutableMap> RETRYABLE_CODE_DEFINITIONS;
static {
ImmutableMap.Builder> definitions = ImmutableMap.builder();
definitions.put(
"idempotent",
Sets.immutableEnumSet(
Lists.newArrayList(
Status.Code.DEADLINE_EXCEEDED, Status.Code.UNAVAILABLE)));
definitions.put("non_idempotent", Sets.immutableEnumSet(Lists.newArrayList()));
RETRYABLE_CODE_DEFINITIONS = definitions.build();
}
private static final ImmutableMap RETRY_PARAM_DEFINITIONS;
static {
ImmutableMap.Builder definitions = ImmutableMap.builder();
RetrySettings.Builder settingsBuilder = null;
settingsBuilder =
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.millis(100L))
.setRetryDelayMultiplier(1.2)
.setMaxRetryDelay(Duration.millis(1000L))
.setInitialRpcTimeout(Duration.millis(2000L))
.setRpcTimeoutMultiplier(1.5)
.setMaxRpcTimeout(Duration.millis(30000L))
.setTotalTimeout(Duration.millis(45000L));
definitions.put("default", settingsBuilder);
settingsBuilder =
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.millis(100L))
.setRetryDelayMultiplier(1.2)
.setMaxRetryDelay(Duration.millis(1000L))
.setInitialRpcTimeout(Duration.millis(7000L))
.setRpcTimeoutMultiplier(1.5)
.setMaxRpcTimeout(Duration.millis(30000L))
.setTotalTimeout(Duration.millis(45000L));
definitions.put("list", settingsBuilder);
RETRY_PARAM_DEFINITIONS = definitions.build();
}
private Builder() {
super(DEFAULT_CONNECTION_SETTINGS);
deleteLogSettings = SimpleCallSettings.newBuilder(LoggingServiceV2Grpc.METHOD_DELETE_LOG);
writeLogEntriesSettings =
SimpleCallSettings.newBuilder(LoggingServiceV2Grpc.METHOD_WRITE_LOG_ENTRIES);
listLogEntriesSettings =
PageStreamingCallSettings.newBuilder(
LoggingServiceV2Grpc.METHOD_LIST_LOG_ENTRIES, LIST_LOG_ENTRIES_PAGE_STR_DESC);
listMonitoredResourceDescriptorsSettings =
PageStreamingCallSettings.newBuilder(
LoggingServiceV2Grpc.METHOD_LIST_MONITORED_RESOURCE_DESCRIPTORS,
LIST_MONITORED_RESOURCE_DESCRIPTORS_PAGE_STR_DESC);
methodSettingsBuilders =
ImmutableList.of(
deleteLogSettings,
writeLogEntriesSettings,
listLogEntriesSettings,
listMonitoredResourceDescriptorsSettings);
}
private static Builder createDefault() {
Builder builder = new Builder();
builder
.deleteLogSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettingsBuilder(RETRY_PARAM_DEFINITIONS.get("default"));
builder
.writeLogEntriesSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
.setRetrySettingsBuilder(RETRY_PARAM_DEFINITIONS.get("default"));
builder
.listLogEntriesSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettingsBuilder(RETRY_PARAM_DEFINITIONS.get("list"));
builder
.listMonitoredResourceDescriptorsSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettingsBuilder(RETRY_PARAM_DEFINITIONS.get("default"));
return builder;
}
private Builder(LoggingServiceV2Settings settings) {
super(settings);
deleteLogSettings = settings.deleteLogSettings.toBuilder();
writeLogEntriesSettings = settings.writeLogEntriesSettings.toBuilder();
listLogEntriesSettings = settings.listLogEntriesSettings.toBuilder();
listMonitoredResourceDescriptorsSettings =
settings.listMonitoredResourceDescriptorsSettings.toBuilder();
methodSettingsBuilders =
ImmutableList.of(
deleteLogSettings,
writeLogEntriesSettings,
listLogEntriesSettings,
listMonitoredResourceDescriptorsSettings);
}
@Override
protected ConnectionSettings getDefaultConnectionSettings() {
return DEFAULT_CONNECTION_SETTINGS;
}
@Override
public Builder provideExecutorWith(ScheduledExecutorService executor, boolean shouldAutoClose) {
super.provideExecutorWith(executor, shouldAutoClose);
return this;
}
@Override
public Builder provideChannelWith(ManagedChannel channel, boolean shouldAutoClose) {
super.provideChannelWith(channel, shouldAutoClose);
return this;
}
@Override
public Builder provideChannelWith(ConnectionSettings settings) {
super.provideChannelWith(settings);
return this;
}
@Override
public Builder provideChannelWith(Credentials credentials) {
super.provideChannelWith(credentials);
return this;
}
@Override
public Builder provideChannelWith(List scopes) {
super.provideChannelWith(scopes);
return this;
}
@Override
public Builder setGeneratorHeader(String name, String version) {
super.setGeneratorHeader(name, version);
return this;
}
@Override
public Builder setClientLibHeader(String name, String version) {
super.setClientLibHeader(name, version);
return this;
}
/**
* Applies the given settings to all of the API methods in this service. Only
* values that are non-null will be applied, so this method is not capable
* of un-setting any values.
*/
public Builder applyToAllApiMethods(ApiCallSettings.Builder apiCallSettings) throws Exception {
super.applyToAllApiMethods(methodSettingsBuilders, apiCallSettings);
return this;
}
/**
* Returns the builder for the settings used for calls to deleteLog.
*/
public SimpleCallSettings.Builder deleteLogSettings() {
return deleteLogSettings;
}
/**
* Returns the builder for the settings used for calls to writeLogEntries.
*/
public SimpleCallSettings.Builder
writeLogEntriesSettings() {
return writeLogEntriesSettings;
}
/**
* Returns the builder for the settings used for calls to listLogEntries.
*/
public PageStreamingCallSettings.Builder<
ListLogEntriesRequest, ListLogEntriesResponse, LogEntry>
listLogEntriesSettings() {
return listLogEntriesSettings;
}
/**
* Returns the builder for the settings used for calls to listMonitoredResourceDescriptors.
*/
public PageStreamingCallSettings.Builder<
ListMonitoredResourceDescriptorsRequest, ListMonitoredResourceDescriptorsResponse,
MonitoredResourceDescriptor>
listMonitoredResourceDescriptorsSettings() {
return listMonitoredResourceDescriptorsSettings;
}
@Override
public LoggingServiceV2Settings build() throws IOException {
return new LoggingServiceV2Settings(this);
}
}
}