public static final class RetryConfig.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder> implements RetryConfigOrBuilder
Settings that determine the retry behavior. By default, if a job does not complete successfully (meaning that an acknowledgement is not received from the handler, then it will be retried with exponential backoff according to the settings in [RetryConfig][google.cloud.scheduler.v1.RetryConfig].Protobuf type
google.cloud.scheduler.v1.RetryConfig| Modifier and Type | Method and Description |
|---|---|
RetryConfig.Builder |
addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) |
RetryConfig |
build() |
RetryConfig |
buildPartial() |
RetryConfig.Builder |
clear() |
RetryConfig.Builder |
clearField(com.google.protobuf.Descriptors.FieldDescriptor field) |
RetryConfig.Builder |
clearMaxBackoffDuration()
The maximum amount of time to wait before retrying a job after
it fails.
|
RetryConfig.Builder |
clearMaxDoublings()
The time between retries will double `max_doublings` times.
|
RetryConfig.Builder |
clearMaxRetryDuration()
The time limit for retrying a failed job, measured from time when an
execution was first attempted.
|
RetryConfig.Builder |
clearMinBackoffDuration()
The minimum amount of time to wait before retrying a job after
it fails.
|
RetryConfig.Builder |
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) |
RetryConfig.Builder |
clearRetryCount()
The number of attempts that the system will make to run a job using the
exponential backoff procedure described by
[max_doublings][google.cloud.scheduler.v1.RetryConfig.max_doublings].
|
RetryConfig.Builder |
clone() |
RetryConfig |
getDefaultInstanceForType() |
static com.google.protobuf.Descriptors.Descriptor |
getDescriptor() |
com.google.protobuf.Descriptors.Descriptor |
getDescriptorForType() |
com.google.protobuf.Duration |
getMaxBackoffDuration()
The maximum amount of time to wait before retrying a job after
it fails.
|
com.google.protobuf.Duration.Builder |
getMaxBackoffDurationBuilder()
The maximum amount of time to wait before retrying a job after
it fails.
|
com.google.protobuf.DurationOrBuilder |
getMaxBackoffDurationOrBuilder()
The maximum amount of time to wait before retrying a job after
it fails.
|
int |
getMaxDoublings()
The time between retries will double `max_doublings` times.
|
com.google.protobuf.Duration |
getMaxRetryDuration()
The time limit for retrying a failed job, measured from time when an
execution was first attempted.
|
com.google.protobuf.Duration.Builder |
getMaxRetryDurationBuilder()
The time limit for retrying a failed job, measured from time when an
execution was first attempted.
|
com.google.protobuf.DurationOrBuilder |
getMaxRetryDurationOrBuilder()
The time limit for retrying a failed job, measured from time when an
execution was first attempted.
|
com.google.protobuf.Duration |
getMinBackoffDuration()
The minimum amount of time to wait before retrying a job after
it fails.
|
com.google.protobuf.Duration.Builder |
getMinBackoffDurationBuilder()
The minimum amount of time to wait before retrying a job after
it fails.
|
com.google.protobuf.DurationOrBuilder |
getMinBackoffDurationOrBuilder()
The minimum amount of time to wait before retrying a job after
it fails.
|
int |
getRetryCount()
The number of attempts that the system will make to run a job using the
exponential backoff procedure described by
[max_doublings][google.cloud.scheduler.v1.RetryConfig.max_doublings].
|
boolean |
hasMaxBackoffDuration()
The maximum amount of time to wait before retrying a job after
it fails.
|
boolean |
hasMaxRetryDuration()
The time limit for retrying a failed job, measured from time when an
execution was first attempted.
|
boolean |
hasMinBackoffDuration()
The minimum amount of time to wait before retrying a job after
it fails.
|
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable |
internalGetFieldAccessorTable() |
boolean |
isInitialized() |
RetryConfig.Builder |
mergeFrom(com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
RetryConfig.Builder |
mergeFrom(com.google.protobuf.Message other) |
RetryConfig.Builder |
mergeFrom(RetryConfig other) |
RetryConfig.Builder |
mergeMaxBackoffDuration(com.google.protobuf.Duration value)
The maximum amount of time to wait before retrying a job after
it fails.
|
RetryConfig.Builder |
mergeMaxRetryDuration(com.google.protobuf.Duration value)
The time limit for retrying a failed job, measured from time when an
execution was first attempted.
|
RetryConfig.Builder |
mergeMinBackoffDuration(com.google.protobuf.Duration value)
The minimum amount of time to wait before retrying a job after
it fails.
|
RetryConfig.Builder |
mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields) |
RetryConfig.Builder |
setField(com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) |
RetryConfig.Builder |
setMaxBackoffDuration(com.google.protobuf.Duration.Builder builderForValue)
The maximum amount of time to wait before retrying a job after
it fails.
|
RetryConfig.Builder |
setMaxBackoffDuration(com.google.protobuf.Duration value)
The maximum amount of time to wait before retrying a job after
it fails.
|
RetryConfig.Builder |
setMaxDoublings(int value)
The time between retries will double `max_doublings` times.
|
RetryConfig.Builder |
setMaxRetryDuration(com.google.protobuf.Duration.Builder builderForValue)
The time limit for retrying a failed job, measured from time when an
execution was first attempted.
|
RetryConfig.Builder |
setMaxRetryDuration(com.google.protobuf.Duration value)
The time limit for retrying a failed job, measured from time when an
execution was first attempted.
|
RetryConfig.Builder |
setMinBackoffDuration(com.google.protobuf.Duration.Builder builderForValue)
The minimum amount of time to wait before retrying a job after
it fails.
|
RetryConfig.Builder |
setMinBackoffDuration(com.google.protobuf.Duration value)
The minimum amount of time to wait before retrying a job after
it fails.
|
RetryConfig.Builder |
setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field,
int index,
Object value) |
RetryConfig.Builder |
setRetryCount(int value)
The number of attempts that the system will make to run a job using the
exponential backoff procedure described by
[max_doublings][google.cloud.scheduler.v1.RetryConfig.max_doublings].
|
RetryConfig.Builder |
setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields) |
getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMutableMapField, isClean, markClean, newBuilderForField, onBuilt, onChanged, setUnknownFieldsProto3findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toStringaddAll, addAll, mergeFrom, newUninitializedMessageExceptionequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitpublic static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public RetryConfig.Builder clear()
clear in interface com.google.protobuf.Message.Builderclear in interface com.google.protobuf.MessageLite.Builderclear in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
getDescriptorForType in interface com.google.protobuf.Message.BuildergetDescriptorForType in interface com.google.protobuf.MessageOrBuildergetDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public RetryConfig getDefaultInstanceForType()
getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuildergetDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilderpublic RetryConfig build()
build in interface com.google.protobuf.Message.Builderbuild in interface com.google.protobuf.MessageLite.Builderpublic RetryConfig buildPartial()
buildPartial in interface com.google.protobuf.Message.BuilderbuildPartial in interface com.google.protobuf.MessageLite.Builderpublic RetryConfig.Builder clone()
clone in interface com.google.protobuf.Message.Builderclone in interface com.google.protobuf.MessageLite.Builderclone in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public RetryConfig.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
setField in interface com.google.protobuf.Message.BuildersetField in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public RetryConfig.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
clearField in interface com.google.protobuf.Message.BuilderclearField in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public RetryConfig.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
clearOneof in interface com.google.protobuf.Message.BuilderclearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public RetryConfig.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value)
setRepeatedField in interface com.google.protobuf.Message.BuildersetRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public RetryConfig.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
addRepeatedField in interface com.google.protobuf.Message.BuilderaddRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public RetryConfig.Builder mergeFrom(com.google.protobuf.Message other)
mergeFrom in interface com.google.protobuf.Message.BuildermergeFrom in class com.google.protobuf.AbstractMessage.Builder<RetryConfig.Builder>public RetryConfig.Builder mergeFrom(RetryConfig other)
public final boolean isInitialized()
isInitialized in interface com.google.protobuf.MessageLiteOrBuilderisInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public RetryConfig.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
mergeFrom in interface com.google.protobuf.Message.BuildermergeFrom in interface com.google.protobuf.MessageLite.BuildermergeFrom in class com.google.protobuf.AbstractMessage.Builder<RetryConfig.Builder>IOExceptionpublic int getRetryCount()
The number of attempts that the system will make to run a job using the exponential backoff procedure described by [max_doublings][google.cloud.scheduler.v1.RetryConfig.max_doublings]. The default value of retry_count is zero. If retry_count is zero, a job attempt will *not* be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed.
int32 retry_count = 1;getRetryCount in interface RetryConfigOrBuilderpublic RetryConfig.Builder setRetryCount(int value)
The number of attempts that the system will make to run a job using the exponential backoff procedure described by [max_doublings][google.cloud.scheduler.v1.RetryConfig.max_doublings]. The default value of retry_count is zero. If retry_count is zero, a job attempt will *not* be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed.
int32 retry_count = 1;value - The retryCount to set.public RetryConfig.Builder clearRetryCount()
The number of attempts that the system will make to run a job using the exponential backoff procedure described by [max_doublings][google.cloud.scheduler.v1.RetryConfig.max_doublings]. The default value of retry_count is zero. If retry_count is zero, a job attempt will *not* be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed.
int32 retry_count = 1;public boolean hasMaxRetryDuration()
The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count], the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited.
.google.protobuf.Duration max_retry_duration = 2;hasMaxRetryDuration in interface RetryConfigOrBuilderpublic com.google.protobuf.Duration getMaxRetryDuration()
The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count], the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited.
.google.protobuf.Duration max_retry_duration = 2;getMaxRetryDuration in interface RetryConfigOrBuilderpublic RetryConfig.Builder setMaxRetryDuration(com.google.protobuf.Duration value)
The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count], the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited.
.google.protobuf.Duration max_retry_duration = 2;public RetryConfig.Builder setMaxRetryDuration(com.google.protobuf.Duration.Builder builderForValue)
The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count], the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited.
.google.protobuf.Duration max_retry_duration = 2;public RetryConfig.Builder mergeMaxRetryDuration(com.google.protobuf.Duration value)
The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count], the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited.
.google.protobuf.Duration max_retry_duration = 2;public RetryConfig.Builder clearMaxRetryDuration()
The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count], the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited.
.google.protobuf.Duration max_retry_duration = 2;public com.google.protobuf.Duration.Builder getMaxRetryDurationBuilder()
The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count], the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited.
.google.protobuf.Duration max_retry_duration = 2;public com.google.protobuf.DurationOrBuilder getMaxRetryDurationOrBuilder()
The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count], the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited.
.google.protobuf.Duration max_retry_duration = 2;getMaxRetryDurationOrBuilder in interface RetryConfigOrBuilderpublic boolean hasMinBackoffDuration()
The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds.
.google.protobuf.Duration min_backoff_duration = 3;hasMinBackoffDuration in interface RetryConfigOrBuilderpublic com.google.protobuf.Duration getMinBackoffDuration()
The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds.
.google.protobuf.Duration min_backoff_duration = 3;getMinBackoffDuration in interface RetryConfigOrBuilderpublic RetryConfig.Builder setMinBackoffDuration(com.google.protobuf.Duration value)
The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds.
.google.protobuf.Duration min_backoff_duration = 3;public RetryConfig.Builder setMinBackoffDuration(com.google.protobuf.Duration.Builder builderForValue)
The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds.
.google.protobuf.Duration min_backoff_duration = 3;public RetryConfig.Builder mergeMinBackoffDuration(com.google.protobuf.Duration value)
The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds.
.google.protobuf.Duration min_backoff_duration = 3;public RetryConfig.Builder clearMinBackoffDuration()
The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds.
.google.protobuf.Duration min_backoff_duration = 3;public com.google.protobuf.Duration.Builder getMinBackoffDurationBuilder()
The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds.
.google.protobuf.Duration min_backoff_duration = 3;public com.google.protobuf.DurationOrBuilder getMinBackoffDurationOrBuilder()
The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds.
.google.protobuf.Duration min_backoff_duration = 3;getMinBackoffDurationOrBuilder in interface RetryConfigOrBuilderpublic boolean hasMaxBackoffDuration()
The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour.
.google.protobuf.Duration max_backoff_duration = 4;hasMaxBackoffDuration in interface RetryConfigOrBuilderpublic com.google.protobuf.Duration getMaxBackoffDuration()
The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour.
.google.protobuf.Duration max_backoff_duration = 4;getMaxBackoffDuration in interface RetryConfigOrBuilderpublic RetryConfig.Builder setMaxBackoffDuration(com.google.protobuf.Duration value)
The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour.
.google.protobuf.Duration max_backoff_duration = 4;public RetryConfig.Builder setMaxBackoffDuration(com.google.protobuf.Duration.Builder builderForValue)
The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour.
.google.protobuf.Duration max_backoff_duration = 4;public RetryConfig.Builder mergeMaxBackoffDuration(com.google.protobuf.Duration value)
The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour.
.google.protobuf.Duration max_backoff_duration = 4;public RetryConfig.Builder clearMaxBackoffDuration()
The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour.
.google.protobuf.Duration max_backoff_duration = 4;public com.google.protobuf.Duration.Builder getMaxBackoffDurationBuilder()
The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour.
.google.protobuf.Duration max_backoff_duration = 4;public com.google.protobuf.DurationOrBuilder getMaxBackoffDurationOrBuilder()
The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour.
.google.protobuf.Duration max_backoff_duration = 4;getMaxBackoffDurationOrBuilder in interface RetryConfigOrBuilderpublic int getMaxDoublings()
The time between retries will double `max_doublings` times. A job's retry interval starts at [min_backoff_duration][google.cloud.scheduler.v1.RetryConfig.min_backoff_duration], then doubles `max_doublings` times, then increases linearly, and finally retries retries at intervals of [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] up to [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count] times. For example, if [min_backoff_duration][google.cloud.scheduler.v1.RetryConfig.min_backoff_duration] is 10s, [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] is 300s, and `max_doublings` is 3, then the a job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] until the job has been attempted [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count] times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5.
int32 max_doublings = 5;getMaxDoublings in interface RetryConfigOrBuilderpublic RetryConfig.Builder setMaxDoublings(int value)
The time between retries will double `max_doublings` times. A job's retry interval starts at [min_backoff_duration][google.cloud.scheduler.v1.RetryConfig.min_backoff_duration], then doubles `max_doublings` times, then increases linearly, and finally retries retries at intervals of [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] up to [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count] times. For example, if [min_backoff_duration][google.cloud.scheduler.v1.RetryConfig.min_backoff_duration] is 10s, [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] is 300s, and `max_doublings` is 3, then the a job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] until the job has been attempted [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count] times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5.
int32 max_doublings = 5;value - The maxDoublings to set.public RetryConfig.Builder clearMaxDoublings()
The time between retries will double `max_doublings` times. A job's retry interval starts at [min_backoff_duration][google.cloud.scheduler.v1.RetryConfig.min_backoff_duration], then doubles `max_doublings` times, then increases linearly, and finally retries retries at intervals of [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] up to [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count] times. For example, if [min_backoff_duration][google.cloud.scheduler.v1.RetryConfig.min_backoff_duration] is 10s, [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] is 300s, and `max_doublings` is 3, then the a job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] until the job has been attempted [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count] times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5.
int32 max_doublings = 5;public final RetryConfig.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
setUnknownFields in interface com.google.protobuf.Message.BuildersetUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>public final RetryConfig.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
mergeUnknownFields in interface com.google.protobuf.Message.BuildermergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<RetryConfig.Builder>Copyright © 2020 Google LLC. All rights reserved.