public static final class WindowsBasedSli.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<WindowsBasedSli.Builder> implements WindowsBasedSliOrBuilder
A `WindowsBasedSli` defines `good_service` as the count of time windows for which the provided service was of good quality. Criteria for determining if service was good are embedded in the `window_criterion`.Protobuf type
google.monitoring.v3.WindowsBasedSli| Modifier and Type | Method and Description |
|---|---|
WindowsBasedSli.Builder |
addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) |
WindowsBasedSli |
build() |
WindowsBasedSli |
buildPartial() |
WindowsBasedSli.Builder |
clear() |
WindowsBasedSli.Builder |
clearField(com.google.protobuf.Descriptors.FieldDescriptor field) |
WindowsBasedSli.Builder |
clearGoodBadMetricFilter()
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
specifying a `TimeSeries` with `ValueType = BOOL`.
|
WindowsBasedSli.Builder |
clearGoodTotalRatioThreshold()
A window is good if its `performance` is high enough.
|
WindowsBasedSli.Builder |
clearMetricMeanInRange()
A window is good if the metric's value is in a good range, averaged
across returned streams.
|
WindowsBasedSli.Builder |
clearMetricSumInRange()
A window is good if the metric's value is in a good range, summed across
returned streams.
|
WindowsBasedSli.Builder |
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) |
WindowsBasedSli.Builder |
clearWindowCriterion() |
WindowsBasedSli.Builder |
clearWindowPeriod()
Duration over which window quality is evaluated.
|
WindowsBasedSli.Builder |
clone() |
WindowsBasedSli |
getDefaultInstanceForType() |
static com.google.protobuf.Descriptors.Descriptor |
getDescriptor() |
com.google.protobuf.Descriptors.Descriptor |
getDescriptorForType() |
String |
getGoodBadMetricFilter()
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
specifying a `TimeSeries` with `ValueType = BOOL`.
|
com.google.protobuf.ByteString |
getGoodBadMetricFilterBytes()
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
specifying a `TimeSeries` with `ValueType = BOOL`.
|
WindowsBasedSli.PerformanceThreshold |
getGoodTotalRatioThreshold()
A window is good if its `performance` is high enough.
|
WindowsBasedSli.PerformanceThreshold.Builder |
getGoodTotalRatioThresholdBuilder()
A window is good if its `performance` is high enough.
|
WindowsBasedSli.PerformanceThresholdOrBuilder |
getGoodTotalRatioThresholdOrBuilder()
A window is good if its `performance` is high enough.
|
WindowsBasedSli.MetricRange |
getMetricMeanInRange()
A window is good if the metric's value is in a good range, averaged
across returned streams.
|
WindowsBasedSli.MetricRange.Builder |
getMetricMeanInRangeBuilder()
A window is good if the metric's value is in a good range, averaged
across returned streams.
|
WindowsBasedSli.MetricRangeOrBuilder |
getMetricMeanInRangeOrBuilder()
A window is good if the metric's value is in a good range, averaged
across returned streams.
|
WindowsBasedSli.MetricRange |
getMetricSumInRange()
A window is good if the metric's value is in a good range, summed across
returned streams.
|
WindowsBasedSli.MetricRange.Builder |
getMetricSumInRangeBuilder()
A window is good if the metric's value is in a good range, summed across
returned streams.
|
WindowsBasedSli.MetricRangeOrBuilder |
getMetricSumInRangeOrBuilder()
A window is good if the metric's value is in a good range, summed across
returned streams.
|
WindowsBasedSli.WindowCriterionCase |
getWindowCriterionCase() |
com.google.protobuf.Duration |
getWindowPeriod()
Duration over which window quality is evaluated.
|
com.google.protobuf.Duration.Builder |
getWindowPeriodBuilder()
Duration over which window quality is evaluated.
|
com.google.protobuf.DurationOrBuilder |
getWindowPeriodOrBuilder()
Duration over which window quality is evaluated.
|
boolean |
hasGoodBadMetricFilter()
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
specifying a `TimeSeries` with `ValueType = BOOL`.
|
boolean |
hasGoodTotalRatioThreshold()
A window is good if its `performance` is high enough.
|
boolean |
hasMetricMeanInRange()
A window is good if the metric's value is in a good range, averaged
across returned streams.
|
boolean |
hasMetricSumInRange()
A window is good if the metric's value is in a good range, summed across
returned streams.
|
boolean |
hasWindowPeriod()
Duration over which window quality is evaluated.
|
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable |
internalGetFieldAccessorTable() |
boolean |
isInitialized() |
WindowsBasedSli.Builder |
mergeFrom(com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
WindowsBasedSli.Builder |
mergeFrom(com.google.protobuf.Message other) |
WindowsBasedSli.Builder |
mergeFrom(WindowsBasedSli other) |
WindowsBasedSli.Builder |
mergeGoodTotalRatioThreshold(WindowsBasedSli.PerformanceThreshold value)
A window is good if its `performance` is high enough.
|
WindowsBasedSli.Builder |
mergeMetricMeanInRange(WindowsBasedSli.MetricRange value)
A window is good if the metric's value is in a good range, averaged
across returned streams.
|
WindowsBasedSli.Builder |
mergeMetricSumInRange(WindowsBasedSli.MetricRange value)
A window is good if the metric's value is in a good range, summed across
returned streams.
|
WindowsBasedSli.Builder |
mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields) |
WindowsBasedSli.Builder |
mergeWindowPeriod(com.google.protobuf.Duration value)
Duration over which window quality is evaluated.
|
WindowsBasedSli.Builder |
setField(com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) |
WindowsBasedSli.Builder |
setGoodBadMetricFilter(String value)
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
specifying a `TimeSeries` with `ValueType = BOOL`.
|
WindowsBasedSli.Builder |
setGoodBadMetricFilterBytes(com.google.protobuf.ByteString value)
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
specifying a `TimeSeries` with `ValueType = BOOL`.
|
WindowsBasedSli.Builder |
setGoodTotalRatioThreshold(WindowsBasedSli.PerformanceThreshold.Builder builderForValue)
A window is good if its `performance` is high enough.
|
WindowsBasedSli.Builder |
setGoodTotalRatioThreshold(WindowsBasedSli.PerformanceThreshold value)
A window is good if its `performance` is high enough.
|
WindowsBasedSli.Builder |
setMetricMeanInRange(WindowsBasedSli.MetricRange.Builder builderForValue)
A window is good if the metric's value is in a good range, averaged
across returned streams.
|
WindowsBasedSli.Builder |
setMetricMeanInRange(WindowsBasedSli.MetricRange value)
A window is good if the metric's value is in a good range, averaged
across returned streams.
|
WindowsBasedSli.Builder |
setMetricSumInRange(WindowsBasedSli.MetricRange.Builder builderForValue)
A window is good if the metric's value is in a good range, summed across
returned streams.
|
WindowsBasedSli.Builder |
setMetricSumInRange(WindowsBasedSli.MetricRange value)
A window is good if the metric's value is in a good range, summed across
returned streams.
|
WindowsBasedSli.Builder |
setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field,
int index,
Object value) |
WindowsBasedSli.Builder |
setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields) |
WindowsBasedSli.Builder |
setWindowPeriod(com.google.protobuf.Duration.Builder builderForValue)
Duration over which window quality is evaluated.
|
WindowsBasedSli.Builder |
setWindowPeriod(com.google.protobuf.Duration value)
Duration over which window quality is evaluated.
|
getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMutableMapField, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toStringaddAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, 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<WindowsBasedSli.Builder>public WindowsBasedSli.Builder clear()
clear in interface com.google.protobuf.Message.Builderclear in interface com.google.protobuf.MessageLite.Builderclear in class com.google.protobuf.GeneratedMessageV3.Builder<WindowsBasedSli.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<WindowsBasedSli.Builder>public WindowsBasedSli getDefaultInstanceForType()
getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuildergetDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilderpublic WindowsBasedSli build()
build in interface com.google.protobuf.Message.Builderbuild in interface com.google.protobuf.MessageLite.Builderpublic WindowsBasedSli buildPartial()
buildPartial in interface com.google.protobuf.Message.BuilderbuildPartial in interface com.google.protobuf.MessageLite.Builderpublic WindowsBasedSli.Builder clone()
clone in interface com.google.protobuf.Message.Builderclone in interface com.google.protobuf.MessageLite.Builderclone in class com.google.protobuf.GeneratedMessageV3.Builder<WindowsBasedSli.Builder>public WindowsBasedSli.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<WindowsBasedSli.Builder>public WindowsBasedSli.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
clearField in interface com.google.protobuf.Message.BuilderclearField in class com.google.protobuf.GeneratedMessageV3.Builder<WindowsBasedSli.Builder>public WindowsBasedSli.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
clearOneof in interface com.google.protobuf.Message.BuilderclearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<WindowsBasedSli.Builder>public WindowsBasedSli.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<WindowsBasedSli.Builder>public WindowsBasedSli.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<WindowsBasedSli.Builder>public WindowsBasedSli.Builder mergeFrom(com.google.protobuf.Message other)
mergeFrom in interface com.google.protobuf.Message.BuildermergeFrom in class com.google.protobuf.AbstractMessage.Builder<WindowsBasedSli.Builder>public WindowsBasedSli.Builder mergeFrom(WindowsBasedSli other)
public final boolean isInitialized()
isInitialized in interface com.google.protobuf.MessageLiteOrBuilderisInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<WindowsBasedSli.Builder>public WindowsBasedSli.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<WindowsBasedSli.Builder>IOExceptionpublic WindowsBasedSli.WindowCriterionCase getWindowCriterionCase()
getWindowCriterionCase in interface WindowsBasedSliOrBuilderpublic WindowsBasedSli.Builder clearWindowCriterion()
public boolean hasGoodBadMetricFilter()
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if any `true` values appear in the window.
string good_bad_metric_filter = 5;hasGoodBadMetricFilter in interface WindowsBasedSliOrBuilderpublic String getGoodBadMetricFilter()
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if any `true` values appear in the window.
string good_bad_metric_filter = 5;getGoodBadMetricFilter in interface WindowsBasedSliOrBuilderpublic com.google.protobuf.ByteString getGoodBadMetricFilterBytes()
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if any `true` values appear in the window.
string good_bad_metric_filter = 5;getGoodBadMetricFilterBytes in interface WindowsBasedSliOrBuilderpublic WindowsBasedSli.Builder setGoodBadMetricFilter(String value)
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if any `true` values appear in the window.
string good_bad_metric_filter = 5;value - The goodBadMetricFilter to set.public WindowsBasedSli.Builder clearGoodBadMetricFilter()
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if any `true` values appear in the window.
string good_bad_metric_filter = 5;public WindowsBasedSli.Builder setGoodBadMetricFilterBytes(com.google.protobuf.ByteString value)
A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if any `true` values appear in the window.
string good_bad_metric_filter = 5;value - The bytes for goodBadMetricFilter to set.public boolean hasGoodTotalRatioThreshold()
A window is good if its `performance` is high enough.
.google.monitoring.v3.WindowsBasedSli.PerformanceThreshold good_total_ratio_threshold = 2;
hasGoodTotalRatioThreshold in interface WindowsBasedSliOrBuilderpublic WindowsBasedSli.PerformanceThreshold getGoodTotalRatioThreshold()
A window is good if its `performance` is high enough.
.google.monitoring.v3.WindowsBasedSli.PerformanceThreshold good_total_ratio_threshold = 2;
getGoodTotalRatioThreshold in interface WindowsBasedSliOrBuilderpublic WindowsBasedSli.Builder setGoodTotalRatioThreshold(WindowsBasedSli.PerformanceThreshold value)
A window is good if its `performance` is high enough.
.google.monitoring.v3.WindowsBasedSli.PerformanceThreshold good_total_ratio_threshold = 2;
public WindowsBasedSli.Builder setGoodTotalRatioThreshold(WindowsBasedSli.PerformanceThreshold.Builder builderForValue)
A window is good if its `performance` is high enough.
.google.monitoring.v3.WindowsBasedSli.PerformanceThreshold good_total_ratio_threshold = 2;
public WindowsBasedSli.Builder mergeGoodTotalRatioThreshold(WindowsBasedSli.PerformanceThreshold value)
A window is good if its `performance` is high enough.
.google.monitoring.v3.WindowsBasedSli.PerformanceThreshold good_total_ratio_threshold = 2;
public WindowsBasedSli.Builder clearGoodTotalRatioThreshold()
A window is good if its `performance` is high enough.
.google.monitoring.v3.WindowsBasedSli.PerformanceThreshold good_total_ratio_threshold = 2;
public WindowsBasedSli.PerformanceThreshold.Builder getGoodTotalRatioThresholdBuilder()
A window is good if its `performance` is high enough.
.google.monitoring.v3.WindowsBasedSli.PerformanceThreshold good_total_ratio_threshold = 2;
public WindowsBasedSli.PerformanceThresholdOrBuilder getGoodTotalRatioThresholdOrBuilder()
A window is good if its `performance` is high enough.
.google.monitoring.v3.WindowsBasedSli.PerformanceThreshold good_total_ratio_threshold = 2;
getGoodTotalRatioThresholdOrBuilder in interface WindowsBasedSliOrBuilderpublic boolean hasMetricMeanInRange()
A window is good if the metric's value is in a good range, averaged across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_mean_in_range = 6;hasMetricMeanInRange in interface WindowsBasedSliOrBuilderpublic WindowsBasedSli.MetricRange getMetricMeanInRange()
A window is good if the metric's value is in a good range, averaged across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_mean_in_range = 6;getMetricMeanInRange in interface WindowsBasedSliOrBuilderpublic WindowsBasedSli.Builder setMetricMeanInRange(WindowsBasedSli.MetricRange value)
A window is good if the metric's value is in a good range, averaged across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_mean_in_range = 6;public WindowsBasedSli.Builder setMetricMeanInRange(WindowsBasedSli.MetricRange.Builder builderForValue)
A window is good if the metric's value is in a good range, averaged across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_mean_in_range = 6;public WindowsBasedSli.Builder mergeMetricMeanInRange(WindowsBasedSli.MetricRange value)
A window is good if the metric's value is in a good range, averaged across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_mean_in_range = 6;public WindowsBasedSli.Builder clearMetricMeanInRange()
A window is good if the metric's value is in a good range, averaged across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_mean_in_range = 6;public WindowsBasedSli.MetricRange.Builder getMetricMeanInRangeBuilder()
A window is good if the metric's value is in a good range, averaged across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_mean_in_range = 6;public WindowsBasedSli.MetricRangeOrBuilder getMetricMeanInRangeOrBuilder()
A window is good if the metric's value is in a good range, averaged across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_mean_in_range = 6;getMetricMeanInRangeOrBuilder in interface WindowsBasedSliOrBuilderpublic boolean hasMetricSumInRange()
A window is good if the metric's value is in a good range, summed across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_sum_in_range = 7;hasMetricSumInRange in interface WindowsBasedSliOrBuilderpublic WindowsBasedSli.MetricRange getMetricSumInRange()
A window is good if the metric's value is in a good range, summed across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_sum_in_range = 7;getMetricSumInRange in interface WindowsBasedSliOrBuilderpublic WindowsBasedSli.Builder setMetricSumInRange(WindowsBasedSli.MetricRange value)
A window is good if the metric's value is in a good range, summed across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_sum_in_range = 7;public WindowsBasedSli.Builder setMetricSumInRange(WindowsBasedSli.MetricRange.Builder builderForValue)
A window is good if the metric's value is in a good range, summed across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_sum_in_range = 7;public WindowsBasedSli.Builder mergeMetricSumInRange(WindowsBasedSli.MetricRange value)
A window is good if the metric's value is in a good range, summed across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_sum_in_range = 7;public WindowsBasedSli.Builder clearMetricSumInRange()
A window is good if the metric's value is in a good range, summed across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_sum_in_range = 7;public WindowsBasedSli.MetricRange.Builder getMetricSumInRangeBuilder()
A window is good if the metric's value is in a good range, summed across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_sum_in_range = 7;public WindowsBasedSli.MetricRangeOrBuilder getMetricSumInRangeOrBuilder()
A window is good if the metric's value is in a good range, summed across returned streams.
.google.monitoring.v3.WindowsBasedSli.MetricRange metric_sum_in_range = 7;getMetricSumInRangeOrBuilder in interface WindowsBasedSliOrBuilderpublic boolean hasWindowPeriod()
Duration over which window quality is evaluated. Must be an integer fraction of a day and at least `60s`.
.google.protobuf.Duration window_period = 4;hasWindowPeriod in interface WindowsBasedSliOrBuilderpublic com.google.protobuf.Duration getWindowPeriod()
Duration over which window quality is evaluated. Must be an integer fraction of a day and at least `60s`.
.google.protobuf.Duration window_period = 4;getWindowPeriod in interface WindowsBasedSliOrBuilderpublic WindowsBasedSli.Builder setWindowPeriod(com.google.protobuf.Duration value)
Duration over which window quality is evaluated. Must be an integer fraction of a day and at least `60s`.
.google.protobuf.Duration window_period = 4;public WindowsBasedSli.Builder setWindowPeriod(com.google.protobuf.Duration.Builder builderForValue)
Duration over which window quality is evaluated. Must be an integer fraction of a day and at least `60s`.
.google.protobuf.Duration window_period = 4;public WindowsBasedSli.Builder mergeWindowPeriod(com.google.protobuf.Duration value)
Duration over which window quality is evaluated. Must be an integer fraction of a day and at least `60s`.
.google.protobuf.Duration window_period = 4;public WindowsBasedSli.Builder clearWindowPeriod()
Duration over which window quality is evaluated. Must be an integer fraction of a day and at least `60s`.
.google.protobuf.Duration window_period = 4;public com.google.protobuf.Duration.Builder getWindowPeriodBuilder()
Duration over which window quality is evaluated. Must be an integer fraction of a day and at least `60s`.
.google.protobuf.Duration window_period = 4;public com.google.protobuf.DurationOrBuilder getWindowPeriodOrBuilder()
Duration over which window quality is evaluated. Must be an integer fraction of a day and at least `60s`.
.google.protobuf.Duration window_period = 4;getWindowPeriodOrBuilder in interface WindowsBasedSliOrBuilderpublic final WindowsBasedSli.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
setUnknownFields in interface com.google.protobuf.Message.BuildersetUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<WindowsBasedSli.Builder>public final WindowsBasedSli.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
mergeUnknownFields in interface com.google.protobuf.Message.BuildermergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<WindowsBasedSli.Builder>Copyright © 2023 Google LLC. All rights reserved.